【问题标题】:Azure AD How to pass userextension attributes to multitenant appAzure AD 如何将用户扩展属性传递给多租户应用程序
【发布时间】:2020-07-23 13:05:19
【问题描述】:

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

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

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

【问题讨论】:

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


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

    【讨论】:

    • 我设置了一个单独的 Azure 帐户进行测试,但是当我使用 login.microsoftonline.com/[customerTenant]/v2.0/adminconsent?client_id=... url 允许组织同意时,我可以看到客户租户中的企业应用程序,但在任何选项卡中都没有“设置单点登录”部分。是否需要在某处启用? sso 屏幕在拥有租户的应用程序中可见。
    • 浏览 Microsoft 文档并发现“导航中缺少单点登录的其他情况包括应用程序托管在另一个租户中或您的帐户没有所需的权限(全局管理员、云应用程序管理员、应用程序管理员或服务主体的所有者)。”。因此,如果您拥有该应用程序,您似乎只能编辑单点登录属性。这是一个死胡同吗?
    • 嗯,虽然你是对的,但这并不是一个死胡同。显然它不会,因为默认情况下它会创建支持 oidc 的应用程序,如果是这种情况,那么您将不得不删除它并手动创建一个非图库企业应用程序,然后您将拥有 SSO 选项,但随后您将拥有在客户端租户中手动设置 SAML 配置文件
    • 有没有办法配置应用程序来创建支持 SAML 的服务主体?如果我删除客户端租户中的服务主体,他们将不得不经历整个配置过程,这很痛苦
    【解决方案2】:

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

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

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

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

    然后使用 adminconsent 链接(https://login.microsoftonline.com/[guesttenant domain]/v2.0/adminconsent?client_id=[app registration id]...)在来宾租户中重新创建服务主体,门户在来宾。

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

    总结一下:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      相关资源
      最近更新 更多