Azure ad b2c azure ad b2c图形api权限

Azure ad b2c azure ad b2c图形api权限,azure-ad-b2c,Azure Ad B2c,我有一个关于用户通过Azure Ad B2C登录后访问Microsoft Graph Api的问题。我正在尝试将我的应用程序迁移到通过b2clogin.com而不是login.microsoft.com登录,并且大部分情况下它都可以工作,只是我无法再调用microsoft Graph Api来获取登录的用户配置文件 我已经在我的B2C租户中将Postman设置为一个应用程序,并使用配置了api权限,但是当我尝试使用范围获取令牌时,我得到了以下错误 AADB2C90205:此应用程序对此web资源

我有一个关于用户通过Azure Ad B2C登录后访问Microsoft Graph Api的问题。我正在尝试将我的应用程序迁移到通过b2clogin.com而不是login.microsoft.com登录,并且大部分情况下它都可以工作,只是我无法再调用microsoft Graph Api来获取登录的用户配置文件

我已经在我的B2C租户中将Postman设置为一个应用程序,并使用配置了api权限,但是当我尝试使用范围获取令牌时,我得到了以下错误

AADB2C90205:此应用程序对此web资源没有足够的权限来执行该操作

我不确定这个错误意味着什么,但当我在门户中查看用户的登录时,我看到了3个登录

第一个状态为中断,故障原因为

应用程序尝试执行静默登录,用户无法静默登录。应用程序需要启动一个交互流,为用户提供登录选项。联系应用程序所有者

第二个具有中断状态,故障原因为

应用程序X没有访问应用程序Y的权限,或者该权限已被吊销。或者用户或管理员未同意使用ID为X的应用程序。请为此用户和资源发送交互式授权请求。或者用户或管理员未同意使用ID为X的应用程序。请向您的租户管理员发送授权请求,以代表资源为Z的应用程序:Y

第三个是成功的状态

几天来,我一直在查阅文档,试图弄明白这一点


我缺少访问B2C用户的Microsoft Graph Api所需的一些配置

您描述的设置实际上是不可能的。 您已经在AAD刀片服务器中创建了一个应用程序注册,并分配了Ms graph权限。 然后,您收到的错误是针对AAD B2C端点的,而不是针对为其制作应用程序的AAD端点的(因为无法为AAD B2C应用程序分配Graph api的权限)。因此,您使用了AAD应用程序并尝试针对B2C端点进行身份验证-这将无法正常工作

您无法通过B2C端点认证的B2C用户访问ms graph

您可以通过AAD或AAD B2C目录的AAD端点,通过B2C目录中的AAD用户或AAD用户访问ms graph


在B2C场景中,通常的模式是根据B2C端点对用户进行身份验证,并使用客户端凭据对AAD端点进行API身份验证,以获得对Graph API的访问权并代表用户进行操作。

您通常不应该使用客户端凭据流来调用Graph API吗?我不确定。我有一个Angular应用程序,正在使用msal.js,因此无法使用客户端凭据流。我设置了Postman应用程序,以确认msal.js没有问题。我正在调用graph api中的“me”端点,以便在从angular应用程序登录后获取用户配置文件和图片。一切都很顺利,直到我把权限转到了b2clogin。之后我就不能调用graph api了。我目前正在将Graph Api调用移动到我的Api,并使用客户端凭据流。我希望这能解决问题。我已经知道我可以从angular应用程序调用我的api。在做了更多的研究后,我发现它是这样的。您知道Microsoft是否正在通过b2clogin端点支持Graph Api吗?我问这个问题的原因是因为我正在构建一个SaaS应用程序,并将我的租户作为组存储在B2C中。我有一个管理应用程序,只是用来管理这些组,我在Angular应用程序中做了所有这些。移动到b2clogin意味着我必须创建一个新的api来代理图形api。我真的不想这么做,除非我必须在2020年12月之前,当login.onmicrosoft.com被否决用于B2C应用程序时。这与login.msonline.com被否决无关。B2C登录端点(无法访问graph api)而非AAD auth端点不推荐使用它,因为在AAD auth端点中可以通过访问graph api。这个问题与转到b2clogin.com无关。除了在B2C期间通过自定义策略使用流调用API,让该API通过B2C租户的AAD端点进行图形API调用并获得组成员资格之外,实际上没有其他解决方法。或者让您的SaaS应用程序在验证B2C用户后进行api调用。听起来您在B2C租户中使用的是纯AAD功能。现在你正试图转移到B2C功能。。。当你不需要的时候。否则,在进行更改之前,您描述的任何内容都不会起作用。