13.3. アイデンティティープロバイダーの設定
OpenShift Container Platform は、同じアイデンティティープロバイダーを使用した複数の LDAP サーバーの設定をサポートしません。ただし、LDAP フェイルオーバー など、より複雑な設定の Basic 認証を拡張することが可能です。
これらのパラメーターを使用して、インストール時またはインストール後にアイデンティティープロバイダーを定義できます。
13.3.1. Ansible を使用したアイデンティティープロバイダーの設定
初回クラスターインストールでは、Deny All アイデンティティープロバイダーが設定されますが、インベントリーファイルで 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