使用 Azure AD 的 Azure Web App 身份验证——如何获取用户组
Azure Web App Authentication using Azure AD – how to get user’s groups
我们正在尝试使用来自 Azure Web 应用程序的 built-in 身份验证。它的第一部分看起来很简单和轻松,但是在用户通过身份验证后,我们无法成功读取他们的组成员身份,因此我们的应用程序无法呈现正确的体验。
我们的工作
- Azure Web 应用程序 – 身份验证
o 向 AAD 进行身份验证 – 使用“快速”设置来配置
- 我们从 header 得到 X-MS-X-MS-TOKEN-AAD-ACCESS-TOKEN(和它的朋友)并且可以解码我们想要的声明(电子邮件地址)并在应用程序中使用它
我们还没有弄清楚的是:
- 如何使用这些 header 从 Azure AD 请求他们的记录以确定他们的组成员身份和其他未在令牌中传递的声明(出于安全原因)
- 如何(或是否?)刷新他们的令牌,以便他们在令牌过期时不会在完成之前被踢出应用程序。 header 中有一个 X-MS-TOKEN-AAD-REFRESH-TOKEN。我们不知道的是 Azure Web App 身份验证是否为我们处理刷新,或者我们是否必须自己做一些事情。
到目前为止,身份验证比我们一直在努力的“自己动手”要简单得多,所以我希望内置的 Azure Web 应用程序身份验证是一个简单的解决方案。
(Web 应用程序包含一个用 ColdFusion 编写的应用程序,部署在容器中的 Lucee 上。但我怀疑对此的任何解决方案都可能非常跨平台。)
有什么建议吗?
你可以configure the Azure AD Application Registration for group attributes。修改应用程序清单中的“groupMembershipClaims”字段:
"groupMembershipClaims": "SecurityGroup"
然后令牌将包含用户所属组的 ID,如下所示:
{
"groups": ["group id"]
}
您还可以使用 Microsoft Graph user: getMemberGroups 检查用户所属的组 用户通过身份验证后。
您可以使用 MSAL 方法刷新令牌 AcquireTokenSilentAsync
。有关详细信息,请参阅此 answer。
我们正在尝试使用来自 Azure Web 应用程序的 built-in 身份验证。它的第一部分看起来很简单和轻松,但是在用户通过身份验证后,我们无法成功读取他们的组成员身份,因此我们的应用程序无法呈现正确的体验。
我们的工作
- Azure Web 应用程序 – 身份验证 o 向 AAD 进行身份验证 – 使用“快速”设置来配置
- 我们从 header 得到 X-MS-X-MS-TOKEN-AAD-ACCESS-TOKEN(和它的朋友)并且可以解码我们想要的声明(电子邮件地址)并在应用程序中使用它
我们还没有弄清楚的是:
- 如何使用这些 header 从 Azure AD 请求他们的记录以确定他们的组成员身份和其他未在令牌中传递的声明(出于安全原因)
- 如何(或是否?)刷新他们的令牌,以便他们在令牌过期时不会在完成之前被踢出应用程序。 header 中有一个 X-MS-TOKEN-AAD-REFRESH-TOKEN。我们不知道的是 Azure Web App 身份验证是否为我们处理刷新,或者我们是否必须自己做一些事情。
到目前为止,身份验证比我们一直在努力的“自己动手”要简单得多,所以我希望内置的 Azure Web 应用程序身份验证是一个简单的解决方案。
(Web 应用程序包含一个用 ColdFusion 编写的应用程序,部署在容器中的 Lucee 上。但我怀疑对此的任何解决方案都可能非常跨平台。)
有什么建议吗?
你可以configure the Azure AD Application Registration for group attributes。修改应用程序清单中的“groupMembershipClaims”字段:
"groupMembershipClaims": "SecurityGroup"
然后令牌将包含用户所属组的 ID,如下所示:
{
"groups": ["group id"]
}
您还可以使用 Microsoft Graph user: getMemberGroups 检查用户所属的组 用户通过身份验证后。
您可以使用 MSAL 方法刷新令牌 AcquireTokenSilentAsync
。有关详细信息,请参阅此 answer。