配置 keystone 作为联合身份提供者

keystone 的 IdP 配置提供了一个键为 keystone_idp 的字典属性。以下是一个完整的示例

keystone_idp:
  certfile: "/etc/keystone/ssl/idp_signing_cert.pem"
  keyfile: "/etc/keystone/ssl/idp_signing_key.pem"
  self_signed_cert_subject: "/C=US/ST=Texas/L=San Antonio/O=IT/CN={{ external_lb_vip_address }}"
  regen_cert: false
  idp_entity_id: "{{ keystone_service_publicuri }}/v3/OS-FEDERATION/saml2/idp"
  idp_sso_endpoint: "{{ keystone_service_publicuri }}/v3/OS-FEDERATION/saml2/sso"
  idp_metadata_path: /etc/keystone/saml2_idp_metadata.xml
  service_providers:
    - id: "sp_1"
      auth_url: https://example.com:5000/v3/OS-FEDERATION/identity_providers/idp/protocols/saml2/auth
      sp_url: https://example.com:5000/Shibboleth.sso/SAML2/ECP
  organization_name: example_company
  organization_display_name: Example Corp.
  organization_url: example.com
  contact_company: example_company
  contact_name: John
  contact_surname: Smith
  contact_email: jsmith@example.com
  contact_telephone: 555-55-5555
  contact_type: technical

以下列表是允许的设置参考

  • certfile 定义了 IdP 用于签署断言的 SSL 证书的位置和文件名。此文件必须位于 keystone 系统用户可访问的位置。

  • keyfile 定义了 IdP 用于签署断言的 SSL 私钥的位置和文件名。此文件必须位于 keystone 系统用户可访问的位置。

  • self_signed_cert_subject 是 SSL 签名证书中的主题。证书的通用名必须与此 IdP 的服务提供商中的主机名配置匹配。

  • regen_cert 默认设置为 False。当设置为 True 时,下一次 Ansible 运行将用新的证书替换现有的签名证书。此设置作为一种便捷机制添加,用于在证书接近到期日期时更新证书。

  • idp_entity_id 是实体 ID。服务提供商使用此 ID 作为每个 IdP 的唯一标识符。<keystone-public-endpoint>/OS-FEDERATION/saml2/idp 是我们为此设置推荐的值。

  • idp_sso_endpoint 是此 IdP 的单点登录端点。<keystone-public-endpoint>/OS-FEDERATION/saml2/sso> 是我们为此设置推荐的值。

  • idp_metadata_path 是缓存此 IdP 元数据的路径和文件名。keystone 系统用户必须可以访问此位置。

  • service_providers 是使用 keystone 实例作为 IdP 的已知 SP 列表。对于每个 SP,提供三个值:id 作为唯一标识符,auth_url 作为 SP 的身份验证端点,以及 sp_url 用于发布 SAML2 断言的端点。

  • organization_nameorganization_display_nameorganization_urlcontact_companycontact_namecontact_surnamecontact_emailcontact_telephonecontact_type 是描述身份提供商的设置。所有这些设置都是可选的。

配置 ADFS 3.0 作为身份提供商

安装 ADFS

配置 ADFS

  1. 确保 ADFS 服务器信任 SP 的 keystone 证书。我们建议让 ADFS CA(或公共 CA)签署 keystone 服务的证书请求。

  2. 在 ADFS 管理控制台中,选择 添加 依赖方信任

  3. 选择 导入 有关 依赖方 发布 在线 本地网络上 的数据,并输入 SP 元数据的 URL(例如,https://<SP_IP_ADDRESS DNS_NAME>:5000/Shibboleth.sso/Metadata

    注意

    ADFS 可能会显示警告消息。该消息指出 ADFS 跳过了从元数据收集到的一些内容,因为这些内容不受 ADFS 支持

  4. 继续向导,选择 允许 所有用户 访问 此依赖方

  5. 添加 转换声明规则向导 中,选择 传递 筛选 传入声明

  6. 命名规则(例如,传递 UPN),并选择 UPN 传入声明类型。

  7. 单击 确定 以应用规则并完成设置。