C# Azure AD B2C-通过REST API获取登录用户的缩略图
我正在尝试为我登录的Azure AD B2C用户获取缩略图/个人资料图片 我一直在阅读,但到目前为止没有任何帮助 这是针对Azure Active Directory图形客户端的,但我希望通过Rest为当前登录的用户获取它。我不想要求管理员帐户才能获得它 看起来真正有希望的是这个端点,但考虑到它是C# Azure AD B2C-通过REST API获取登录用户的缩略图,c#,azure,azure-active-directory,azure-ad-b2c,C#,Azure,Azure Active Directory,Azure Ad B2c,我正在尝试为我登录的Azure AD B2C用户获取缩略图/个人资料图片 我一直在阅读,但到目前为止没有任何帮助 这是针对Azure Active Directory图形客户端的,但我希望通过Rest为当前登录的用户获取它。我不想要求管理员帐户才能获得它 看起来真正有希望的是这个端点,但考虑到它是graph.windows.net,我不确定它是否能工作,因为我以后的权限设置为graph.microsoft.com https://graph.windows.net/[tenant]/user
graph.windows.net
,我不确定它是否能工作,因为我以后的权限设置为graph.microsoft.com
https://graph.windows.net/[tenant]/users/[objectid]/thumbnailPhoto?api-version=1.6
我最好调用这样的端点来获取当前登录用户的图片,但是上面的端点当然可以
https://graph.microsoft.com/v1.0/me/photo/$value
然而,这叫什么
这两种方法都需要有效的承载令牌
我这样做的目的是访问我的Azure广告B2C
,然后应用注册
。选择我的应用程序,然后选择API权限。选择添加权限
单击Microsoft Graph,然后添加profile
,如下图所示:
如果我按照Microsoft Graph文档中的代表用户访问指南进行操作,这将导致出现如下Microsoft登录页面:
如果我登录,我将收到预期的错误:
登录抱歉,您登录时遇到问题
AADSTS50020:来自身份提供商“”的用户帐户“oscar.andersson@”
租户“”中不存在,无法访问中的应用程序“”()
那个房客。该帐户需要作为外部用户添加到
租户优先。注销并使用其他Azure Active Directory重新登录
目录用户帐户
当我登录到我的应用程序时,通常我会看到这样一个屏幕。工作正常,可连接到域名为:https://.b2clogin.com/tfp/
资料来源:
如果我使用我的管理员帐户登录,代表用户获得访问权限,我会在没有获得同意的情况下返回代码
但是,当我发出POST请求以获取令牌时,我会得到以下响应:
根据文件:
Microsoft identity platform v2.0端点还将确保
用户已同意范围查询中指示的权限
参数如果用户未同意任何这些权限
如果管理人之前没有代表所有人同意
组织中的用户将被要求同意
所需权限
已授予以下权限的管理员同意:
如果我将工作登录更改为使用范围https://graph.microsoft.com/profile
而不是https://.onmicrosoft.com//read
我将获得代码,但不是令牌。错误:
{“error”:“invalid_grant”,“error_description”:“AADB2C90205:此
应用程序对此网站没有足够的权限
用于执行该操作的资源。\r\n相关ID:\r\nTimestamp:
2020-08-21 13:36:44Z\r\n“}
如果我尝试呼叫https://graph.microsoft.com/profile
使用范围内的令牌https://.onmicrosoft.com//read
我将得到错误信息:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token validation failure.",
"innerError": {
"date": "2020-08-21T14:02:14",
"request-id": ""
}
}
}
我真的没想到要把个人资料拍出来会这么难。获取给定的名称和姓氏没有问题,因为此信息是从注册和登录(标准)
用户流中返回的
我已经读过如何使用Microsoft Graph管理Azure广告B2C,但这不是我不想看到的。我不想创建一个新的应用注册,因为我不想获取一个已经登录的用户缩略图
Azure B2C不支持。您可以创建一个自定义API来使用、和/或和来存储和检索它们。好的,但我该如何访问呢?对于API权限
->Microsoft Graph
->委托权限
->配置文件
它表示“允许应用程序查看用户的基本配置文件(名称、图片、用户名)”。B2C用户流或旅程不使用配置文件声明。您可以通过获取用户帐户资源或“配置文件”(与配置文件端点不同),但为此,您必须使用标准AAD(非B2C)应用程序注册。
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token validation failure.",
"innerError": {
"date": "2020-08-21T14:02:14",
"request-id": ""
}
}
}