13.3. 配置身份提供程序
OpenShift Container Platform 不支持为同一身份提供程序配置多个 LDAP 服务器。但是,您可以为更复杂的配置(如 LDAP 故障转移 )扩展基本身份验证。
您可以使用这些参数在安装过程中或安装后定义身份提供程序。
13.3.1. 使用 Ansible 配置身份提供程序
对于初始集群安装,但 Deny All identity provider 被默认配置,但可在安装过程中配置 openshift_master_identity_providers
参数。OAuth 配置中的会话选项也可在清单文件中配置。
使用 Ansible 的用户身份供应商配置示例
# htpasswd auth openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}] # Defining htpasswd users #openshift_master_htpasswd_users={'user1': '<pre-hashed password>', 'user2': '<pre-hashed password>'} # or #openshift_master_htpasswd_file=/etc/origin/master/htpasswd # Allow all auth #openshift_master_identity_providers=[{'name': 'allow_all', 'login': 'true', 'challenge': 'true', 'kind': 'AllowAllPasswordIdentityProvider'}] # LDAP auth #openshift_master_identity_providers=[{'name': 'my_ldap_provider', 'challenge': 'true', 'login': 'true', 'kind': 'LDAPPasswordIdentityProvider', 'attributes': {'id': ['dn'], 'email': ['mail'], 'name': ['cn'], 'preferredUsername': ['uid']}, 'bindDN': '', 'bindPassword': '', 'insecure': 'false', 'url': 'ldap://ldap.example.com:389/ou=users,dc=example,dc=com?uid'}] # Configuring the ldap ca certificate 1 #openshift_master_ldap_ca=<ca text> # or #openshift_master_ldap_ca_file=<path to local ca file to use> 2 # Available variables for configuring certificates for other identity providers: #openshift_master_openid_ca #openshift_master_openid_ca_file 3 #openshift_master_request_header_ca #openshift_master_request_header_ca_file 4
- 1
- 如果您只为 LDAP 身份提供程序在
openshift_master_identity_providers
参数中指定了'insecure': 'true'
,您可以省略 CA 证书。 - 2 3 4
- 如果您在运行 playbook 的主机上指定一个文件,则其内容将复制到 /etc/origin/master/<identity_provider_name>_<identity_provider_type>_ca.crt 文件中。身份供应商的名称是
openshift_master_identity_providers
参数的值,ldap
,openid
, 或request_header
。如果您没有指定 CA 文本或本地 CA 文件的路径,您必须将 CA 证书放在该位置。如果指定多个身份提供程序,则必须手动放置每个供应商的 CA 证书。您无法更改此位置。
您可以指定多个身份提供程序。如果这样做,您必须将每个身份提供程序的 CA 证书放在 /etc/origin/master/ 目录中。例如,您可以在 openshift_master_identity_providers
值中包含以下供应商:
openshift_master_identity_providers: - name: foo provider: kind: OpenIDIdentityProvider ... - name: bar provider: kind: OpenIDIdentityProvider ... - name: baz provider: kind: RequestHeaderIdentityProvider ...
您必须将这些身份提供程序的 CA 证书放在以下文件中:
- /etc/origin/master/foo_openid_ca.crt
- /etc/origin/master/bar_openid_ca.crt
- /etc/origin/master/baz_requestheader_ca.crt