【问题标题】:Getting 401 Unauthorized Error when pulling Authentication Methods提取身份验证方法时出现 401 未经授权的错误
【发布时间】:2020-07-09 11:59:42
【问题描述】:

我是 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 的应用注册中提供了适当的 API 权限。

Type: Delegated
Permission: UserAuthenticationMethod.Read, UserAuthenticationMethod.Read.All

我在这个documentation 中遇到了“应用程序”不受支持。

截图: Permission

问题:

我能否知道这是否是我遇到“401 - 已授权”并显示“用户未经身份验证”错误的原因,因为尚不支持从应用程序中提取身份验证方法? 或者可能缺少我尚未考虑的权限。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    如果您使用的是Daemon应用程序,那么这里的401状态码身份验证错误主要是由于不支持的应用程序权限并参考这个similar issue,即使您指定了委托权限,因为不会有任何用户登录守护程序场景,您都将面临此问题。如果您使用委派权限方案,那么您将获得如下所示的详细信息。

    这里Graph explorer作为一个应用程序,用户登录并设置所需的权限和角色并调用端点,如上所示成功。

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

    如果您想检查其他用户的身份验证方法,您需要拥有这些角色之一。

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

    【讨论】:

    • 感谢湿婆的回复。由于我们的应用程序允许用户登录并且设计上让应用程序获取身份验证方法(鉴于上述权限已授予用户),因此它不被视为守护程序应用程序,对吗?我还尝试在您提到的具有适当权限的图形资源管理器中直接查询,并能够获得结果。如果同一个用户登录到我们的应用程序,应用程序也可以得到它?不过我会试试这个。谢谢。
    • 是的,如果同一用户登录具有这些适当的权限,那么它应该成功。是的,Graph Explorer 在您登录后充当租户中的应用程序。您可以在企业应用程序中搜索 Graph Explorer :)
    猜你喜欢
    • 2018-07-09
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2016-04-15
    相关资源
    最近更新 更多