我是Microsoft Graph API的新手,我们要求通过Azure AD B2C策略拉动登录用户的身份验证方法。
登录后通过身份验证的用户,但是,从应用程序调用下面的代码时,遇到“ 401-未经授权”并显示“用户未经身份验证”。
图形API
https://graph.microsoft.com/beta/me/authentication/methods/
应用程序中的错误:
AggregateException: One or more errors occurred. (Error Calling the Graph API:
{
"error": {
"code": "unauthenticated",
"message": "The user is unauthenticated.",
"innerError": {
"message": "The user is unauthenticated.",
"date": "2020-07-09T11:07:29",
"request-id": "bea50bdf-28f6-4a67-a5a4-3aacd8f23251"
}
}
})
我还在Azure中的App Registration中提供了正确的API权限。
Type: Delegated
Permission: UserAuthenticationMethod.Read, UserAuthenticationMethod.Read.All
我遇到了这个documentation,其中不支持“应用程序”。
截屏: Permission
问题:
请问这是否是我遇到“ 401-授权”并显示“用户未通过身份验证”错误的原因,因为尚不支持从“应用程序”中提取“身份验证方法”? 或者可能是缺少我尚未考虑的权限。
谢谢。
答案 0 :(得分:0)
如果您使用的是Daemon应用程序,则此处的401状态码Authentication错误主要是由于不支持应用程序权限,即使您指定了委派权限,也请参考此similar issue,因为不会如果是要在守护程序场景中登录的任何用户,您将面临此问题。如果使用委派权限方案,则将获得如下所示的详细信息。
在这里Graph资源管理器充当应用程序,并且用户登录并设置所需的权限和角色并调用端点,则成功,如上所示。
显示这些操作所需的权限here。
如果要检查其他用户的身份验证方法,则需要具有以下角色之一。