配置 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_name、organization_display_name、organization_url、contact_company、contact_name、contact_surname、contact_email、contact_telephone和contact_type是描述身份提供商的设置。所有这些设置都是可选的。
配置 ADFS 3.0 作为身份提供商¶
安装 ADFS
配置 ADFS¶
确保 ADFS 服务器信任 SP 的 keystone 证书。我们建议让 ADFS CA(或公共 CA)签署 keystone 服务的证书请求。
在 ADFS 管理控制台中,选择
添加 依赖方信任。选择
导入 有关 依赖方 发布 在线 或 在 本地网络上 的数据,并输入 SP 元数据的 URL(例如,https://<SP_IP_ADDRESS 或 DNS_NAME>:5000/Shibboleth.sso/Metadata)注意
ADFS 可能会显示警告消息。该消息指出 ADFS 跳过了从元数据收集到的一些内容,因为这些内容不受 ADFS 支持
继续向导,选择
允许 所有用户 访问 此依赖方。在
添加 转换声明规则向导中,选择传递 或 筛选 传入声明。命名规则(例如,
传递 UPN),并选择UPN传入声明类型。单击 确定 以应用规则并完成设置。