【问题标题】:Azure AD SSO Multi-Tenant App / AD FS Claims Provider IssueAzure AD SSO 多租户应用程序/AD FS 声明提供程序问题
【发布时间】:2016-07-07 17:48:01
【问题描述】:

一些背景:

我的公司(作为 SP)目前通过 AD FS 2.0 与我们的联合合作伙伴 (IdP) 一起处理 SSO。每个合作伙伴都设置为声明提供者,并创建了用于转换将发送到我们的 Web 应用程序的传入声明的规则。

身份验证后,包含声明的令牌将发布到我们的 STS 端点(例如 https://sts.companyname.ca/adfs/ls),声明在此处转换并发送到我们的 Web 应用程序 URL(例如 https://companyname.ca/externalsignin.aspx)并由 OWIN 中间件在帐户查找之前进行处理/创作。

这一切都完美无缺。现在,我们的任务是将 Azure AD SSO 集成到组合中,以帮助简化入职流程。

我已经在 Azure 中创建了一个新目录并在其中创建了一个新应用程序。我已将应用程序标记为多租户并将回复 url 设置为“https://sts.companyname.ca/adfs/ls”。在我们服务器上的 AD FS 2.0 客户端中,我创建了一个名为“AzureAD”的新声明提供程序,并从 Azure 控制台上应用程序的端点部分导入了 metadataurl。使用来自我们租户的电子邮件测试登录效果非常好。问题在于使用来自另一个租户的组织电子邮件进行测试时,身份验证失败并显示错误的请求消息:

经过一些研究,这似乎是因为登录表单是为 login.microsoftonline.com/tenantid 构建的,而 login.microsoftonline.com/common 应该用于多租户应用程序。所以我从https://login.microsoftonline.com/common/federationmetadata/2007-06/federationmetadata.xml 重新导入了元数据并进行了更新。

现在,当我使用另一个租户组织帐户登录时,我实际上可以看到征求同意的请求,但在身份验证后,发送到 sts.companyname.ca/adfs/ls 的帖子失败,因为令牌是为“sts.windows.net”签名的/0000-000000-000000-0000" 但 AD FS 中的声明提供程序由 sts.windows.net/{tenantid} 占位符标识。

我不知道如何仅使用具有模板化端点的单个 Azure 声明提供程序来完成这项工作(我也只能添加 1 个 azure 声明提供程序,因为它们都使用相同的签名证书)。

任何克服这一障碍的帮助将不胜感激。

【问题讨论】:

    标签: azure single-sign-on multi-tenant azure-active-directory adfs2.0


    【解决方案1】:

    这将不起作用,因为 Azure AD 如何颁发令牌(相同的签名密钥但不同的租户颁发者)与 ADFS 中的约束不匹配,该约束不允许多个声明提供程序信任具有相同的签名密钥。

    执行此操作的方法是以下之一

    1. 使用 Azure AD B2B 邀请来自一个或多个 Azure AD 租户的来宾加入您的 Azure AD 租户,然后将 ADFS 作为一个 CP 信任连接到您的租户。
    2. 在 ADFS 2016 中,我们还要求将每个 Azure AD 租户视为不同的 CP 信任,并在声明接受/扩充方面具有不同的策略/规则。为此,我们现在允许将每个 Azure AD 租户建模为唯一的 CP 信任。

    希望能回答您的问题。

    谢谢 //山姆(@MrADFS)

    【讨论】:

    • 谢谢。 Azure AD B2B 看起来可能是要走的路。似乎邀请外部用户的过程依赖于导入最大 2000 行的 csv 文件。这是否需要我们在每次将新用户添加到合作伙伴租户时邀请他们才能访问我们的资源?我们的合作伙伴是学校董事会,其中一些拥有超过 100,000 名用户,需要随时添加新学生才能访问。
    • 我最终编写了一些额外的代码来使用 OpenIdConnectAuthentication 和额外的提供程序,而不是通过 ADFS 进行。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多