示例:使用 AD FS 配置基于 SAML/WS 的标识提供者联合
适用于: 员工租户
外部租户(了解详细信息)
注意
Microsoft Entra 外部 ID 中的“直接联合”现在称为“SAML/WS-Fed 标识提供者 (IdP) 联合”。
本文介绍如何使用 Active Directory 联合身份验证服务 (AD FS) 作为 SAML 2.0 或 WS-Fed IdP 来设置 SAML/WS-Fed IdP 联合。 若要支持联合,必须在 IdP 中配置特定属性和声明。 为了说明如何为联合配置 IdP,我们使用 Active Directory 联合身份验证服务 (AD FS) 作为示例。 我们会演示如何将 AD FS 设置为 SAML IdP 以及如何设置为 WS-Fed IdP。
注意
本文介绍如何为 SAML 和 WS-Fed 设置 AD FS,以便进行说明。 对于 IdP 为 AD FS 的联合集成,建议使用 WS-Fed 作为协议。
为 SAML 2.0 联合配置 AD FS
可以将 Microsoft Entra ID B2B 配置为与使用 SAML 协议的 IdP 联合,具体要求如下所列。 为了说明 SAML 配置步骤,本节说明如何为 SAML 2.0 设置 AD FS。
若要建立联合,必须从 IdP 的 SAML 2.0 响应中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。 创建测试 AD FS 实例中的步骤 12 说明了如何查找 AD FS 终结点或如何生成元数据 URL,例如 https://fs.iga.azure-test.net/federationmetadata/2007-06/federationmetadata.xml
。
属性 | 值 |
---|---|
AssertionConsumerService | https://login.microsoftonline.com/login.srf |
读者 | urn:federation:MicrosoftOnline |
颁发者 | 合作伙伴 IdP 的颁发者 URI,例如 http://www.example.com/exk10l6w90DHM0yi... |
以下声明需要在由 IdP 颁发的 SAML 2.0 令牌中进行配置:
Attribute | 值 |
---|---|
NameID 格式 | urn:oasis:names:tc:SAML:2.0:nameid-format:persistent |
emailaddress | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
下一节说明如何用 AD FS 作为 SAML 2.0 IdP 的示例来配置所需的属性和声明。
开始之前
在开始此过程前,必须将 AD FS 服务器设置完毕且保证其正常运行。
添加声明说明
在 AD FS 服务器上,选择“工具”>“AD FS 管理”。
在导航窗格中,选择“服务”>“声明说明”。
在“操作”下,选择“添加声明说明”。
在“添加声明说明”窗口中,指定以下值:
- “显示名称”:永久性标识符
- “声明标识符”:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
- 选择复选框“在联合元数据中发布此声明说明,将其作为此联合身份验证服务可以接受的声明类型”。
- 选择复选框“在联合元数据中发布此声明说明,将其作为此联合身份验证服务可以发送的声明类型”。
选择“确定”。
添加信赖方信任
在 AD FS 服务器上,转到“工具”>“AD FS 管理”。
在导航窗格中,选择“信任方信任”。
在“操作”下,选择“添加信赖方信任”。
在“添加信赖方信任”向导中,选择“声明感知”,然后选择“开始”。
在“选择数据源”部分,选择“导入有关在线或在本地网络上发布的信赖方的数据”的复选框。 指定此联合元数据 URL:
https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml
。 选择“下一步” 。将其他设置保留为其默认选项。 接着选择“下一步”,最后选择“关闭”以关闭向导。
在“AD FS 管理”中的“信赖方信任”下,右键单击刚刚创建的信赖方信任并选择“属性”。
在“监视”中,取消选中“监视信赖方”框。
在“标识符”选项卡中,使用服务合作伙伴的 Microsoft Entra 租户的租户 ID 在“信赖方标识符”文本框中输入
https://login.microsoftonline.com/<tenant ID>/
。 选择 添加 。注意
请确保在租户 ID 后添加斜杠 (/),例如:
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/
。选择“确定”。
创建声明规则
右键单击创建的信赖方信任,然后选择“编辑声明颁发策略”。
在“编辑声明规则”向导中,单击“添加规则”。
在“声明规则模板”中,选择“以声明方式发送 LDAP 特性”。
在“配置声明规则”中,指定以下值:
- “声明规则名称”:电子邮件声明规则
- “属性存储”:Active Directory 域服务
- “LDAP 属性”:电子邮件地址
- “传出声明类型”:电子邮件地址
选择“完成”。
选择“添加规则”。
在“声明规则模板”中,选择“转换传入声明”,然后选择“下一步”。
在“配置声明规则”中,指定以下值:
- “声明规则名称”:电子邮件转换规则
- “传入声明类型”:电子邮件地址
- “传出声明类型”:名称 ID
- “传出名称 ID 格式”:永久性标识符
- 选择“传递所有声明值”。
选择完成。
“编辑声明规则”窗格将显示新规则。 选择应用。
选择“确定”。 现在,AD FS 服务器已配置为使用 SAML 2.0 协议的联合。
为 WS-Fed 联合配置 AD FS
可以将 Microsoft Entra B2B 配置为与使用 WS-Fed 协议的 IdP 联合,具体要求如下。 目前,已通过 Microsoft Entra 外部 ID 对两个 WS-Fed 提供者的兼容性进行测试,包括 AD FS 和 Shibboleth。 在这里,我们会使用 Active Directory 联合身份验证服务 (AD FS) 作为 WS-Fed IdP 的示例。 有关通过 Microsoft Entra 外部 ID 在 WS-Fed 兼容的提供者之间建立信赖方信任的详细信息,请下载 Microsoft Entra 标识提供者兼容性文档。
若要建立联合,必须从 IdP 的 WS-Fed 消息中接收以下属性。 可以通过链接到联机安全令牌服务 XML 文件或手动输入来配置这些属性。 创建测试 AD FS 实例中的步骤 12 说明了如何查找 AD FS 终结点或如何生成元数据 URL,例如 https://fs.iga.azure-test.net/federationmetadata/2007-06/federationmetadata.xml
。
属性 | 值 |
---|---|
PassiveRequestorEndpoint | https://login.microsoftonline.com/login.srf |
读者 | urn:federation:MicrosoftOnline |
颁发者 | 合作伙伴 IdP 的颁发者 URI,例如 http://www.example.com/exk10l6w90DHM0yi... |
IdP 颁发的 WS-Fed 令牌的必需声明:
Attribute | 值 |
---|---|
ImmutableID | http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID |
emailaddress | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
下一节说明如何用 AD FS 作为 WS-Fed IdP 的示例来配置所需的属性和声明。
开始之前
在开始此过程前,必须将 AD FS 服务器设置完毕且保证其正常运行。
添加信赖方信任
在 AD FS 服务器上,转到“工具”>“AD FS 管理”。
在导航窗格中,选择“信任关系”>“信赖方信任”。
在“操作”下,选择“添加信赖方信任”。
在“添加信赖方信任”向导中,选择“声明感知”,然后选择“开始”。
在“选择数据源”部分,选择“手动输入有关依赖方的数据”,然后选择“下一步”。
在“指定显示名称”页面中,在“显示名称”中键入名称。 可以选择在“备注”部分输入此信赖方信任的说明。 选择“下一页”。
(可选)在“配置证书”页面中,如果有令牌加密证书,请选择“浏览”以找到证书文件。 选择“下一页”。
在“配置 URL”页面,选择“启用对 WS 联合身份验证被动协议的支持”复选框。 在“信赖方 WS 联合身份验证被动协议 URL”下,输入以下 URL:
https://login.microsoftonline.com/login.srf
选择“下一步”。
在“配置标识符”页面中,输入以下 URL 并选择“添加”。 在第二个 URL 中,输入服务合作伙伴的 Microsoft Entra 租户的租户 ID。
urn:federation:MicrosoftOnline
https://login.microsoftonline.com/<tenant ID>/
注意
请确保在租户 ID 后添加斜杠 (/),例如:
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/
。选择“下一步”。
在“选择访问控制策略”页面选择一个策略,然后选择“下一步”。
在“准备添加信任”页面,查看设置,然后选择“下一步”来保存信赖方信任信息。
在“完成”页面,选择“关闭”。 选择信赖方信任,并选择“编辑声明颁发策略”。
创建声明规则
选择刚创建的信赖方信任,然后选择“编辑声明颁发策略”。
选择“添加规则”。
选择“将 LDAP 属性作为声明发送”,然后选择“下一步”。
在“配置声明规则”中,指定以下值:
- “声明规则名称”:电子邮件声明规则
- “属性存储”:Active Directory 域服务
- “LDAP 属性”:电子邮件地址
- “传出声明类型”:电子邮件地址
选择“完成”。
同样,在“编辑声明规则”向导中,单击“添加规则”。
选择“使用自定义规则发送声明”,然后选择“下一步”。
在“配置声明规则”中,指定以下值:
- 声明规则名称:颁发不可变 ID
- “自定义规则”:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"), query = "samAccountName={0};objectGUID;{1}", param = regexreplace(c.Value, "(?<domain>[^\\]+)\\(?<user>.+)", "${user}"), param = c.Value);
选择“完成”。
选择“确定” 。 现在,AD FS 服务器已配置为使用 WS-Fed 的联合。
后续步骤
接下来,你将在 Azure 门户中或使用 Microsoft Graph API 在 Microsoft Entra 外部 ID 中配置 SAML/WS-Fed IdP 联合身份验证。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈