【问题标题】:Azure Web App Authentication using Azure AD – how to get user’s groupsAzure Web App Authentication using Azure AD – 如何获取用户组
【发布时间】:2021-03-20 00:04:23
【问题描述】:

我们正在尝试使用来自 Azure Web 应用程序的内置身份验证。第一部分看起来如此简单和轻松,但在用户通过身份验证后,我们无法成功读取他们的组成员身份,以便我们的应用能够呈现正确的体验。

我们的工作

  • Azure Web App – 身份验证 o 向 AAD 进行身份验证 - 使用“快速”设置进行配置
  • 我们从标头中获取 X-MS-X-MS-TOKEN-AAD-ACCESS-TOKEN(和它的朋友),并且可以解码我们想要的声明(电子邮件地址)并在应用程序中使用它

我们无法弄清楚的:

  • 如何使用这些标头从 Azure AD 请求他们的记录,以确定他们的组成员身份和未在令牌中传递的其他声明(出于安全原因)
  • 如何(或是否?)刷新他们的令牌,以便他们在令牌到期时完成之前不会被踢出应用程序。标题中有一个 X-MS-TOKEN-AAD-REFRESH-TOKEN 可用。我们不知道 Azure Web App 身份验证是否会为我们处理刷新,或者我们是否必须自己处理它。

到目前为止,身份验证比我们一直在努力的“自己动手”要简单得多,所以我希望内置的 Azure Web 应用身份验证是一个简单的解决方案。

(Web 应用程序包含一个用 ColdFusion 编写的应用程序,部署在容器中的 Lucee 上。但我怀疑任何解决方案都可能是跨平台的。)

有什么建议吗?

【问题讨论】:

  • 您好,您检查我的答案了吗?有用吗?

标签: azure-active-directory azure-webapps azure-authentication


【解决方案1】:

您可以configure the Azure AD Application Registration for group attributes。修改应用清单中的“groupMembershipClaims”字段:

"groupMembershipClaims": "SecurityGroup"

然后令牌将包含使用所属组的 ID,如下所示:

{
  "groups": ["group id"]
}

您还可以使用 Microsoft Graph user: getMemberGroups 检查用户在之后用户通过身份验证后所属的组。

您可以使用 MSAL 方法 AcquireTokenSilentAsync 刷新令牌。有关详细信息,请参阅此answer

【讨论】:

  • 仍在努力。我们现在使用 X-MS-X-MS-TOKEN-AAD-ACCESS-TOKEN。我们对其进行解码,其中包含一个组 ID 列表。我们正在使用它来确定组成员身份。这很好。仍在通过刷新工作。似乎 Azure WebApp 身份验证可能会自动处理刷新。初始令牌的有效期为 65 分钟,当我让它过夜时,页面刷新显示已发出新令牌。我正在处理的问题是 90 分钟后,我有过期的令牌而不是刷新,但 Web 应用程序身份验证仍然让我通过。
  • @Cam 看起来原来的问题现在已经解决了,对吧?如果我的回答对你有帮助,你可以接受它作为答案。谢谢你。对于您的新问题,建议添加一个包含更多详细信息的新帖子以引起更多关注。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
相关资源
最近更新 更多