Azure AD如何将用户扩展属性传递给多租户应用

时间:2020-07-23 13:05:19

标签: azure-active-directory saml-2.0 multi-tenant

在Azure AD中,我具有通过SAML2访问的多租户企业应用程序和应用程序注册。我收到一组有限的用户属性,包括租户ID,电子邮件,名字,姓氏。但是用户所属的组织已经在我要在我的应用程序中使用的本地AD中定义了扩展属性。我也想在应用程序中收到jobTitle和Department。该组织表示,他们已经将属性从其本地AD同步到Azure。

我已经在企业应用程序->单一登录->用户属性和声明->其他声明下添加了我想要的属性。但是我显然仍然缺少某些配置,因为它们没有出现在SAML2令牌中。

我需要授予哪些API权限才能将这些属性传递给SAML2令牌?我需要添加其他东西来映射这些属性吗?

2 个答案:

答案 0 :(得分:1)

设置多租户应用程序时,当客户的用户/租户登录时,它实际上会在其租户中为您的应用程序创建一个“企业应用程序”(服务主体)。 https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant#understand-user-and-admin-consent

因此,您的客户必须在自己的租户中进入应用程序的SSO(saml)设置屏幕,并自定义它们将向您的应用程序发出的声明。是否将属性声明添加到自己的SSO设置中都没有关系。那是给你的房客,而不是他们的房客。

答案 1 :(得分:0)

事实证明,“单一登录”属性在服务主体中不可见,因为在应用程序注册中未设置正确的标签。

使用Microsoft Graph Explorer查看具有SSO属性的正常工作的服务主体的属性后,我注意到它的标签集在门户网站中没有SSO属性的服务主体中不存在。

在“申请注册”清单中,我设置了:

"signInAudience": "AzureADMultipleOrgs",
"tags": [
        "WindowsAzureActiveDirectoryCustomSingleSignOnApplication",
        "webApp",
        "notApiConsumer"
],

然后使用管理员同意链接(https://login.microsoftonline.com/[guest租户域] /v2.0/adminconsent?client_id= [应用程序注册ID] ...)在来宾租户中重新创建服务主体,门户显示单点登录来宾租户中的设置。

Azure门户似乎显示与具有WindowsAzureActiveDirectoryCustomSingleSignOnApplication标记的应用程序注册关联的服务主体的SSO属性。

总结:

  • 在应用程序注册清单中设置WindowsAzureActiveDirectoryCustomSingleSignOnApplication标记。
  • 如果尚未在所属承租人中创建服务主体,则为
  • 使用管理员同意网址在来宾租户中创建服务主体。
  • 让Guest Tenant Administrator填写单点登录属性以添加所需的属性。

属性以SAML2令牌返回给应用程序