提取身份验证方法时出现401未经授权的错误

时间:2020-07-09 11:59:42

标签: asp.net-core azure-active-directory microsoft-graph-api

我是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-授权”并显示“用户未通过身份验证”错误的原因,因为尚不支持从“应用程序”中提取“身份验证方法”? 或者可能是缺少我尚未考虑的权限。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Daemon应用程序,则此处的401状态码Authentication错误主要是由于不支持应用程序权限,即使您指定了委派权限,也请参考此similar issue,因为不会如果是要在守护程序场景中登录的任何用户,您将面临此问题。如果使用委派权限方案,则将获得如下所示的详细信息。

enter image description here

在这里Graph资源管理器充当应用程序,并且用户登录并设置所需的权限和角色并调用端点,则成功,如上所示。

显示这些操作所需的权限here

如果要检查其他用户的身份验证方法,则需要具有以下角色之一。

  • 全局管理员
  • 全球读者
  • 特权身份验证管理员
  • 身份验证管理员(仅看到被屏蔽的电话号码)