【问题标题】:Permission error for Azure Active Directory easy auth /.auth/me returns 401Azure Active Directory easy auth /.auth/me 的权限错误返回 401
【发布时间】:2020-04-20 09:06:15
【问题描述】:

我有一个 Python Flask 应用程序,为此我使用了 Azure Easy Auth (Azure Active Directory) for App Service。登录机制运行良好。但是我想要登录用户的信息,即姓名、电子邮件等。为此,我知道我们可以调用http://xyz.contoso.com/.auth/me,它将返回所需的数据。但是,当我从 Web 应用发送 get 请求时,它不起作用并返回 401,因为您无权查看此目录或页面。如果我用浏览器浏览到同一页面,它会返回有关登录用户的数据。我错过了什么吗?

【问题讨论】:

  • 请添加您的代码以便我们做进一步调查。

标签: azure azure-active-directory azure-web-app-service


【解决方案1】:

您可以通过浏览器访问http://xyz.contoso.com/.auth/me,因为您已通过身份验证会话。但是如果你从 web 应用发送 get 请求,你将没有权限。

但是,您可以从标题中获取用户信息。应用服务使用特殊标头将用户声明传递给您的应用程序。不允许外部请求设置这些标头,因此它们仅在由应用服务设置时才存在。一些示例标题包括:

X-MS-CLIENT-PRINCIPAL-NAME

X-MS-CLIENT-PRINCIPAL-ID

参考:

Access user claims

【讨论】:

  • 谢谢托尼·朱。我想我明白这一点。但是我的应用程序在哪里接收这些标头。我正在研究浏览器检查工具,但找不到这些。如何提取这些标头。我的是一个 Python-Flask 应用程序。我刚开始研究这些东西。再次感谢。
  • @Vijay 你能解决这个问题吗?我在基于 Node.js 的 Azure App Service 应用程序中遇到了与 401 状态相同的问题。我也无法通过浏览器的检查工具或使用请求标头字典找到标头。
猜你喜欢
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
  • 2018-08-06
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
相关资源
最近更新 更多