如何解决使用 Azure AD 从外部 API 向 JWT 添加自定义声明
除了添加可选声明之外,还有其他方法可以向 JWT(访问令牌)添加自定义声明吗?
我们的情况是,我们收到来自外部客户端的请求,这些请求带有由受信任方签署的访问令牌。我们需要验证令牌,然后在将请求路由到受保护的 API 之前添加一些额外的声明。附加声明的值需要从外部 API 获取,因此无法使用令牌配置设置中提供的“可选声明”。
有谁知道这是否可以通过 Azure AD 实现?我们已经能够使用 IdentityServer 做到这一点,这当然非常灵活。但是,通过仅将 Azure AD 作为我们的 IDP/STS 来简化我们的架构/设计会很棒。
解决方法
你可以customize claims emitted in tokens for a specific app in a tenant。 (这是使用 PowerShell cmdlet)
这是使用 Microsoft Graph 的另一种方式:
-
创建一个 extensionProperty。
-
更新用户的扩展属性。
-
创建一个 claimsMappingPolicy。
-
将 claimMappingPolicy 分配给 servicePrincipal。此处的 servicePrincipal 是企业应用程序,代表受 AAD 保护的 API。
-
在 API 应用注册的清单文件中。将
acceptMappedClaims
设置为 true,将accessTokenAcceptedVersion
设置为 2。
之后,您可以在 JWT 令牌中获取自定义声明。
有关详细信息,请参阅我的 previous answer。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。