0

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

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

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

4

2 回答 2

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 设置中并不重要。那是给你的租户的,不是他们的。

于 2020-07-24T04:42:58.080 回答
0

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

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

在应用程序注册清单中,我设置:

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

然后使用 adminconsent 链接(https://login.microsoftonline.com/[guest tenant domain]/v2.0/adminconsent?client_id=[app registration id]...)在来宾租户中重新创建服务主体,门户显示来宾租户中的单点登录设置。

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

总结一下:

  • 在应用程序注册清单中设置 WindowsAzureActiveDirectoryCustomSingleSignOnApplication 标记。
  • 如果您还没有这样做,请在拥有租户中创建一个服务主体。
  • 使用 adminconsent url 在来宾租户中创建服务主体。
  • 让来宾租户管理员填写单点登录属性以添加所需的属性。

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

于 2020-07-26T11:40:25.867 回答