跳转到内容
搜索文档

Active Directory (SAML)

最后更新 查看 MarkdownAgent 设置

Active Directory 是 Microsoft 为 Windows 域网络开发的目录服务,作为一组进程和服务包含在大多数 Windows Server 操作系统中。Active Directory 通过安全断言标记语言(SAML)与 Cloudflare Access 集成。

开始之前

开始前,您需要:

  • 一个所有用户均具有电子邮件属性的 Active Directory 域控制器。
  • 为您的 Access 身份提供商(IdP)启用通用 SAML。
  • 一台已安装 Active Directory 联合服务(AD FS)的 Microsoft 服务器。本说明中的所有截图均基于 Server 2012R2,更新版本的操作步骤类似。
  • 一份适用于 Active Directory 联合服务(AD FS)的浏览器安全证书。

满足上述要求后,即可开始操作。Active Directory 联合服务(AD FS)的安装和基本配置不在本指南范围内,详细指南可参阅 Microsoft KB

然后,要开始建立 Cloudflare Access 与 AD FS 之间的连接,请在 AD FS 中创建一个信赖方信任。

创建信赖方信任

运行"添加信赖方信任"向导,开始 SAML AD 与 Cloudflare Access 的集成。

创建信赖方信任的步骤:

  1. Windows Server 中,启动 AD FS Management(ADFS 管理) 工具。

  2. 选择 Relying Party Trusts(信赖方信任) 文件夹。

  3. Actions(操作) 侧边栏,选择 Add Relying Party Trust(添加信赖方信任)Add Relying Party Trust Wizard(添加信赖方信任向导) 随即启动。

  4. 在左侧菜单中,选择 Select Data Source(选择数据源)

  5. 选择 Enter data about the relying party manually(手动输入信赖方数据) 选项。

  6. 选择 Next(下一步)

  7. 输入 Display name(显示名称)。建议使用易于识别的名称,并在 Notes(备注) 字段中填写有关此连接的相关信息。

  8. 选择 Next(下一步),将显示 Choose Profile(选择配置文件) 步骤。

  9. 选择 AD FS profile(AD FS 配置文件) 选项。

  10. 选择 Next(下一步),将显示 Configure Certificate(配置证书) 步骤。

  11. 保持 Certificate(证书) 选项的默认设置。

  12. 选择 Next(下一步),将显示 Configure URL(配置 URL) 步骤。

  13. 选择 Enable support for the SAML 2.0 WebSSO protocol(启用对 SAML 2.0 WebSSO 协议的支持) 选项。

  14. Relying party SAML 2.0 SSO service URL(信赖方 SAML 2.0 SSO 服务 URL) 字段中,输入以下 URL:

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

    您可以在 Cloudflare 仪表板Settings(设置)> Team name and domain(团队名称和域名)> **Team name(团队名称)**下找到您的团队名称。

  15. 选择 Next(下一步),将显示 Configure Identifiers(配置标识符) 步骤。

    已将回调 URL 粘贴到开放表单字段的添加信赖方信任向导
  16. 将您的回调 URL 粘贴到 Relying party trust identifier(信赖方信任标识符) 字段中。

  17. 选择 Next(下一步)。在 Configure Multi-factor Authentication Now?(立即配置多重身份验证?) 步骤中,您可以配置多重身份验证。

  18. 选择 Next(下一步),将显示 Choose Issuance Authorization Rules(选择颁发授权规则) 步骤。

  19. 选择 Permit all users to access this relying party(允许所有用户访问此信赖方) 选项。

  20. 选择 Next(下一步),将显示 Ready to Add Trust(准备好添加信任) 步骤。

  21. 检查您的设置。

  22. 选择 Next(下一步)。Cloudflare 现在依赖 AD FS 进行用户身份授权。

将自动显示 Edit Claim Rules for CF Login(CF Login 编辑声明规则) 屏幕。

创建声明规则

现在创建 2 条声明规则,以便 AD FS 可以从 Cloudflare 获取信息并将其返回,以创建 Access 策略

如果您关闭了 Add Relying Party Trust(添加信赖方信任) 向导,请使用资源管理器找到 Relying Party Trusts(信赖方信任) 文件夹,选择新创建的 RPT 文件,然后在 Actions(操作) 侧边栏中选择 Edit Claim Rules(编辑声明规则)

创建声明规则的步骤:

  1. Edit Claim Rules for CF Login(CF Login 编辑声明规则) 窗口中,选择 Add Rule(添加规则)。将显示 Choose Rule Type(选择规则类型) 步骤。

  2. Claim rule template(声明规则模板) 字段中,从下拉列表中选择 Send LDAP Attributes as Claims(以声明方式发送 LDAP 属性)

  3. 选择 Next(下一步),将显示 Edit Rule — Send Email(编辑规则 - 发送电子邮件) 步骤。

  4. 输入描述性的 Claim rule name(声明规则名称)

  5. Attribute store(属性存储) 下拉列表中选择 Active Directory

  6. LDAP Attribute(LDAP 属性)Outgoing Claim Type(传出声明类型) 下拉列表中选择 E-mail-Addresses(电子邮件地址)

  1. 选择 OK(确定),返回 Choose Rule Type(选择规则类型) 步骤。

  2. Claim rule template(声明规则模板) 下拉列表中选择 Transform an Incoming Claim(转换传入声明) 以创建第二条规则。

  3. 选择 Next(下一步),将显示 Edit Rule — Create Transient Name Identifier(编辑 - 创建临时名称标识符) 窗口。

  4. 输入描述性的 Claim rule name(声明规则名称)

  5. Incoming claim type(传入声明类型) 下拉列表中选择 E-Mail Address(电子邮件地址)

  6. Outgoing claim type(传出声明类型) 下拉列表中选择 Name ID(名称 ID)

  7. Outgoing name ID format(传出名称 ID 格式) 下拉列表中选择 Transient Identifier(临时标识符)

  8. 确保已选中 Pass through all claim values(传递所有声明值) 选项。

  9. 选择 OK(确定)

两条声明规则现已可供导出到您的 Cloudflare Access 账户。

导出证书

现在,您需要从 AD FS 中提取令牌签名证书,以配置 Cloudflare 识别 AD FS。

导出证书的步骤:

  1. 在 AD FS 管理控制台中,选择 AD FS 下的 Service(服务),然后选择包含要导出证书的 Certificates(证书) 文件夹。

  2. Certificates(证书) 卡片中,右键单击 Token-signing(令牌签名) 下的条目,然后选择 View Certificate(查看证书)。将显示 Certificate(证书) 窗口。

    已选中令牌签名证书的证书窗口
  3. 选择 Details(详细信息) 选项卡,然后选择 Copy to File(复制到文件) 选项。

  4. 将显示 Certificate Export Wizard(证书导出向导)

  5. 选择 Next(下一步),将显示 Export File Format(导出文件格式) 窗口。

  6. 选择 Base-64 encoded X.509 (.CER)(Base-64 编码的 X.509 (.CER)) 选项。

  7. 选择 Next(下一步)

  8. 输入文件名。

  9. 选择 Next(下一步)

  10. 选择 Finish(完成)

    请记录文件路径,以备后用。

配置 AD FS 以签名 SAML 响应

为确保 AD FS 在与 Cloudflare 通信时对完整响应进行签名,请打开本地 PowerShell 并输入以下命令:

Set-ADFSRelyingPartyTrust -TargetName "Name of RPT Display Name" -SamlResponseSignature "MessageAndAssertion"

配置 Cloudflare One

要使 Cloudflare One 能够接受来自 AD FS 的声明和断言,请按以下步骤操作:

  1. Cloudflare 仪表板中,前往 Zero Trust > Integrations(集成) > Identity providers(身份提供商)

  2. Your identity providers(您的身份提供商) 下,选择 Add new identity provider(添加新的身份提供商)

  3. 选择 SAML

  4. 输入 IdP Name(名称)

  5. Single Sign-On URL(单点登录 URL) 下输入:

    https://hostnameOfADFS/adfs/ls/

    这是默认位置。您可以在 AD FS 中找到您的联合服务标识符。

  6. IdP Entity ID or Issuer URL(IdP 实体 ID 或颁发者 URL) 字段中,输入您的 Cloudflare Zero Trust 团队域,并在路径末尾添加以下回调:/cdn-cgi/access/callback。例如:

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback
  7. Signing certificate(签名证书) 下,粘贴导出的证书。

    文本字段中不能有空格或回车符。

  8. 选择 Save(保存)

要测试连接是否正常,请前往 Integrations(集成) > Identity providers(身份提供商),然后选择要测试的身份提供商旁边的 Test(测试)

下载 SP 元数据(可选)

某些 IdP 允许管理员上传来自其 SP(服务提供商)的元数据文件。

获取 Cloudflare 元数据文件的步骤:

  1. 通过以下 URL 下载您唯一的 SAML 元数据文件:

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/saml-metadata

    在 Cloudflare Access 中,您可以在编辑 SAML 身份提供商对话框中找到指向此 URL 的链接。该链接返回一个包含 XML 格式 SAML SP 数据的网页。

  2. 将文件保存为 XML 格式。

  3. 将 XML 文档上传到您的 Active Directory 账户。

API 配置示例

{
	"config": {
		"issuer_url": "https://<your-team-name>.cloudflareaccess.com/",
		"sso_target_url": "https://adfs.example.com/adfs/ls/",
		"attributes": ["email"],
		"email_attribute_name": "",
		"sign_request": false,
		"idp_public_cert": "MIIDpDCCAoygAwIBAgIGAV2ka+55MA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEG\nA1UEC.....GF/Q2/MHadws97cZg\nuTnQyuOqPuHbnN83d/2l1NSYKCbHt24o"
	},
	"type": "saml",
	"name": "adfs saml example"
}

这篇文档对您有帮助吗?