如何上传多租户企业应用程序的自定义签名密钥?

问题描述 投票:0回答:1

背景:我想在 Azure 身份令牌中提供自定义声明。我在租户“BaseTenant”中注册了一个应用程序。我还在另外两个租户中注册了此应用程序:“客户 1”和“客户 2”。

问题:为了在 ID 令牌中提供自定义声明,我需要为每个客户租户创建一个自定义签名密钥。我正在遵循有关如何上传密钥的 Microsoft 教程,但是当我为客户租户调用:https://graph.microsoft.com/v1.0/applications/$appObjId 时,我收到一条错误消息,指出资源丢失。我唯一可以设置密钥的地方是“应用程序注册”下的 BaseTenant 中。

azure microsoft-entra-id
1个回答
0
投票

注意:要在多租户场景中的 Azure 身份令牌中提供自定义声明,请在基本租户应用程序中将

acceptMappedClaims
设置为 True,并将
requestedAccessTokenVersion
设置为 2。

创建了一个 Microsoft Entra ID 应用程序,并在清单中更新了值:

"acceptMappedClaims": true,
"requestedAccessTokenVersion": 2

enter image description here

在客户租户中,应用程序将创建为 企业应用程序/服务主体

enter image description here

客户租户中的应用程序在应用程序注册边栏选项卡中将不可见。

要获取客户租户中的服务主体,使用以下查询:

GET https://graph.microsoft.com/v1.0/servicePrincipals/ServicePrincipalObjID

enter image description here

  • 随着清单在基本租户应用程序中更新,您可以直接在客户租户中存在的应用程序中添加自定义声明,如下所示:

enter image description here

生成代币

GET https://login.microsoftonline.com/organizations/oauth2/v2.0/token

client_id : BaseTenantClientID
grant_type : authorization_code
scope : scope
redirect_uri : RedirectURL
code : Code
client_secret : BaseTenantClientSecret

enter image description here

在 ID 令牌中,显示声明(客户租户):

enter image description here

  • 声明也将显示在访问令牌中。

参考:

azure Active Directory - 多租户 Microsoft Entra 应用程序中的自定义声明 - Stack Overflow 由我

© www.soinside.com 2019 - 2024. All rights reserved.