jwt - 如何在登录时在 JWT token 中从 Azure Active Directory 传递自定义扩展属性?

标签 jwt azure-active-directory openid-connect

我在 Azure Active Directory 中有自定义扩展属性(通过 Azure AD Connect 映射)。 Azure AD 上的扩展属性采用形式 extension_<uniqueid>_<attributename> .

当用户通过 Open ID Connect 登录时,我想向应用程序公开几个扩展属性。这些属性应包含在 JWT token 中。

我尝试使用 Microsoft Page 中的方法创建策略并将其分配给希望在登录时接收 token 的应用程序的服务主体 ID。

这些是我使用的 powershell 命令。

Connect-AzureAD -Confirm

New-AzureADPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true","ClaimsSchema":[{"Source":"user","ID":"extension_uniqueidretracted_extensionAttribute13","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/extensionAttribute13","JwtClaimType":"MyCustomClaim1"},{"Source":"user","ID":"extension_uniqueidretracted_extensionAttribute14","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/extensionAttribute14","JwtClaimType":"MyCustomClaim2"}]}}') -DisplayName "ExtensionAttributeMapping" -Type "ClaimsMappingPolicy"

Add-AzureADServicePrincipalPolicy -Id <ObjectId of the ServicePrincipal> -RefObjectId <ObjectId of the Policy>

创建和分配策略有效,但属性仍未包含在 token 中。

我需要做什么才能完成这项工作?

最佳答案

  • 确保在 Azure AD 的应用程序 list 中将 acceptMappedClaims 设置为 true。
  • 尝试在 ClaimsMappingPolicy 中使用 "ExtensionID":"extension_uniqueidretracted_extensionAttribute13"而不是 "ID":"extension_uniqueidretracted_extensionAttribute13"。
  • 关于jwt - 如何在登录时在 JWT token 中从 Azure Active Directory 传递自定义扩展属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106717/

    相关文章:

    spring-security - 如何在 spring boot 应用程序中使用 spring security 和 Redis 获取当前经过身份验证的用户 Principal

    javascript - 将用户凭据存储在本地存储中 | react 、Redux

    javascript - Chrome关闭标签页后删除localstorage Vuejs

    openid - AspNet.Security.OpenIdConnect.Server token 撤销和注销不起作用

    microservices - 如何构建微服务和 OpenID 连接?

    postgresql - 如何使用 node 和 express 从 JWT 身份验证中获取用户详细信息?

    azure - 如何为 microsoft graph api 更改通知创建通知 URL 端点

    asp.net - 如何使现有的具有简单登录(用户名和密码)的 Web 应用程序与 Azure AD 单点登录兼容?

    azure - 无法使用来自 PostMan 的服务主体访问 token 访问 Datalake

    azure-active-directory - Azure AD 应用注册 : "AADSTS90094: The grant requires admin permission" error for permission that has "REQUIRES ADMIN" set to "No"