OKD/OpenshiftクラスタのOpenLDAP認証の構成
6182 ワード
前言
Linuxオペレーティングシステムのインストールが完了した後、管理者がアプリケーションのために異なるユーザーを作成する必要があるように、K 8 S/OKD/Openshiftクラスタも同様に必要ですが、OKD/Openshiftクラスタでは、以下に示すようにOpenLDAPディレクトリシステムを統合できます.
OpenLDAPインストール
この文書ではhelmを使用してopenldapをインストールし、まずcharsをダウンロードして表示します.git clone https://github.com/helm/charts
オプション.ミラーリングはまず私有倉庫に送ることができる(PS:テストでlatestミラーリングに問題があることを発見した):docker pull osixia/openldap:1.2.1
docker tag docker.io/osixia/openldap:1.2.1 okd-lr.zyl.io:5001/osixia/openldap:1.2.1
docker push okd-lr.zyl.io:5001/osixia/openldap:1.2.1
ミラーはrootユーザーで実行し(gosudo切り替え)、権限を付与します.oc new-project auth-openshift
oc adm policy add-scc-to-user anyuid -z default
Openldap charパラメータをカスタマイズします.cd charts/stable/openldap
cp values.yaml values_cs.yaml
vi values_cs.yaml
...
env:
# LDAP dc=zyl,dc=io , Zyl Inc.
LDAP_ORGANISATION: "Zyl Inc."
LDAP_DOMAIN: "zyl.io"
...
# Ldap (cn=admin,dc=zyl,dc=io) config (cn=admin,cn=config)
adminPassword: admin
configPassword: config
# , glusterfs , 。
persistence:
enabled: true
storageClass: "glusterfs-app"
accessMode: ReadWriteOnce
size: 8Gi
helmコマンドのインストールを実行します.helm install --name openldap -f values_cs.yaml .
Ldapが起動すると、ドメインdc=zyl、dc=ioおよびhdb管理者アカウントcn=admin、dc=zyl、dc=ioが作成されます.次のように、このドメインの下にユーザーとグループ情報を作成します.% oc rsh deploy/openldap
% cat > users.ldif <
Masterの構成Ldap認証の使用
OKD初期インストール時にopenshift_が設定されていない場合master_identity_providersの場合、OKDはデフォルトで次の認証を使用します.この認証方式では、任意のユーザーがクラスタにログインできます.% vi /etc/origin/master/master-config.yaml
...
oauthConfig:
...
identityProviders:
- challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
...
すべてのMaster構成の次のセグメントを削除します. - challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
次のように置き換えます. - challenge: true
login: true
mappingMethod: claim
name: ldap_auth
provider:
apiVersion: v1
attributes:
email:
- mail
id:
- dn
name:
- cn
preferredUsername:
- uid
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
insecure: true
kind: LDAPPasswordIdentityProvider
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
注意:TLS、すなわちinsecure:falseを有効にするには、ca:my-ldap-ca.crtを追加し、Master:/etc/origin/master/my-ldap-ca.crtにコピーするなど、OpenLDAPの証明書を提供する必要があります.
AnsibleプロファイルのOSEv 3.yamlは以下のセグメントを加えて、アップグレード時に復元されないようにします.##### Auth
openshift_master_identity_providers:
- name: ldap_auth
challenge: true
login: true
kind: LDAPPasswordIdentityProvider
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
attributes:
id: ['dn']
email: ['mail']
name: ['cn']
preferredUsername: ['uid']
insecure: true
その後、Masterノードをそれぞれ再起動します.master-restart api
master-restart controllers
oc get pod -n kube-system
master-logs api api #
master-logs controllers controllers
LDAPグループ情報をOKDに同期する
次のファイルを作成します.cat > rfc2307_config_user_defined.yaml <
次のコマンドを実行して同期します.% oc adm groups sync --sync-config=rfc2307_config_user_defined.yaml --confirm
group/zyl
group/admin
group/openshift_user
group/openshift_admin
openshift_adminは管理者グループとしてopenshift_userは通常のユーザーグループであり、権限を付与します.oc adm policy add-cluster-role-to-group cluster-admin openshift_admin
oc adm policy add-cluster-role-to-group basic-user openshift_user
ログインユーザー:oc login -uadmin -pchangeme
ユーザーがログインすると、OKDは自分のユーザーとLDAPの対応を生成します.% oc get groups
NAME USERS
admin admin
openshift_admin admin
openshift_user zyl
zyl zyl
% oc get users
NAME UID FULL NAME IDENTITIES
admin 3c4ae0bf-338c-11e9-b2f8-52540042814f admin ldap_auth:uid=admin,ou=People,dc=zyl,dc=io
% oc get identities
NAME IDP NAME IDP USER NAME USER NAME USER UID
ldap_auth:uid=admin,ou=People,dc=zyl,dc=io ldap_auth uid=admin,ou=People,dc=zyl,dc=io admin 3c4ae0bf-338c-11e9-b2f8-52540042814f
リファレンスドキュメント
この文書ではhelmを使用してopenldapをインストールし、まずcharsをダウンロードして表示します.
git clone https://github.com/helm/charts
オプション.ミラーリングはまず私有倉庫に送ることができる(PS:テストでlatestミラーリングに問題があることを発見した):
docker pull osixia/openldap:1.2.1
docker tag docker.io/osixia/openldap:1.2.1 okd-lr.zyl.io:5001/osixia/openldap:1.2.1
docker push okd-lr.zyl.io:5001/osixia/openldap:1.2.1
ミラーはrootユーザーで実行し(gosudo切り替え)、権限を付与します.
oc new-project auth-openshift
oc adm policy add-scc-to-user anyuid -z default
Openldap charパラメータをカスタマイズします.
cd charts/stable/openldap
cp values.yaml values_cs.yaml
vi values_cs.yaml
...
env:
# LDAP dc=zyl,dc=io , Zyl Inc.
LDAP_ORGANISATION: "Zyl Inc."
LDAP_DOMAIN: "zyl.io"
...
# Ldap (cn=admin,dc=zyl,dc=io) config (cn=admin,cn=config)
adminPassword: admin
configPassword: config
# , glusterfs , 。
persistence:
enabled: true
storageClass: "glusterfs-app"
accessMode: ReadWriteOnce
size: 8Gi
helmコマンドのインストールを実行します.
helm install --name openldap -f values_cs.yaml .
Ldapが起動すると、ドメインdc=zyl、dc=ioおよびhdb管理者アカウントcn=admin、dc=zyl、dc=ioが作成されます.次のように、このドメインの下にユーザーとグループ情報を作成します.
% oc rsh deploy/openldap
% cat > users.ldif <
Masterの構成Ldap認証の使用
OKD初期インストール時にopenshift_が設定されていない場合master_identity_providersの場合、OKDはデフォルトで次の認証を使用します.この認証方式では、任意のユーザーがクラスタにログインできます.% vi /etc/origin/master/master-config.yaml
...
oauthConfig:
...
identityProviders:
- challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
...
すべてのMaster構成の次のセグメントを削除します. - challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
次のように置き換えます. - challenge: true
login: true
mappingMethod: claim
name: ldap_auth
provider:
apiVersion: v1
attributes:
email:
- mail
id:
- dn
name:
- cn
preferredUsername:
- uid
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
insecure: true
kind: LDAPPasswordIdentityProvider
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
注意:TLS、すなわちinsecure:falseを有効にするには、ca:my-ldap-ca.crtを追加し、Master:/etc/origin/master/my-ldap-ca.crtにコピーするなど、OpenLDAPの証明書を提供する必要があります.
AnsibleプロファイルのOSEv 3.yamlは以下のセグメントを加えて、アップグレード時に復元されないようにします.##### Auth
openshift_master_identity_providers:
- name: ldap_auth
challenge: true
login: true
kind: LDAPPasswordIdentityProvider
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
attributes:
id: ['dn']
email: ['mail']
name: ['cn']
preferredUsername: ['uid']
insecure: true
その後、Masterノードをそれぞれ再起動します.master-restart api
master-restart controllers
oc get pod -n kube-system
master-logs api api #
master-logs controllers controllers
LDAPグループ情報をOKDに同期する
次のファイルを作成します.cat > rfc2307_config_user_defined.yaml <
次のコマンドを実行して同期します.% oc adm groups sync --sync-config=rfc2307_config_user_defined.yaml --confirm
group/zyl
group/admin
group/openshift_user
group/openshift_admin
openshift_adminは管理者グループとしてopenshift_userは通常のユーザーグループであり、権限を付与します.oc adm policy add-cluster-role-to-group cluster-admin openshift_admin
oc adm policy add-cluster-role-to-group basic-user openshift_user
ログインユーザー:oc login -uadmin -pchangeme
ユーザーがログインすると、OKDは自分のユーザーとLDAPの対応を生成します.% oc get groups
NAME USERS
admin admin
openshift_admin admin
openshift_user zyl
zyl zyl
% oc get users
NAME UID FULL NAME IDENTITIES
admin 3c4ae0bf-338c-11e9-b2f8-52540042814f admin ldap_auth:uid=admin,ou=People,dc=zyl,dc=io
% oc get identities
NAME IDP NAME IDP USER NAME USER NAME USER UID
ldap_auth:uid=admin,ou=People,dc=zyl,dc=io ldap_auth uid=admin,ou=People,dc=zyl,dc=io admin 3c4ae0bf-338c-11e9-b2f8-52540042814f
リファレンスドキュメント
% vi /etc/origin/master/master-config.yaml
...
oauthConfig:
...
identityProviders:
- challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
...
- challenge: true
login: true
mappingMethod: claim
name: allow_all
provider:
apiVersion: v1
kind: AllowAllPasswordIdentityProvider
- challenge: true
login: true
mappingMethod: claim
name: ldap_auth
provider:
apiVersion: v1
attributes:
email:
- mail
id:
- dn
name:
- cn
preferredUsername:
- uid
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
insecure: true
kind: LDAPPasswordIdentityProvider
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
##### Auth
openshift_master_identity_providers:
- name: ldap_auth
challenge: true
login: true
kind: LDAPPasswordIdentityProvider
bindDN: cn=admin,dc=zyl,dc=io
bindPassword: admin
url: ldap://openldap.auth-openshift.svc.cluster.local./ou=People,dc=zyl,dc=io?uid
attributes:
id: ['dn']
email: ['mail']
name: ['cn']
preferredUsername: ['uid']
insecure: true
master-restart api
master-restart controllers
oc get pod -n kube-system
master-logs api api #
master-logs controllers controllers
次のファイルを作成します.
cat > rfc2307_config_user_defined.yaml <
次のコマンドを実行して同期します.
% oc adm groups sync --sync-config=rfc2307_config_user_defined.yaml --confirm
group/zyl
group/admin
group/openshift_user
group/openshift_admin
openshift_adminは管理者グループとしてopenshift_userは通常のユーザーグループであり、権限を付与します.
oc adm policy add-cluster-role-to-group cluster-admin openshift_admin
oc adm policy add-cluster-role-to-group basic-user openshift_user
ログインユーザー:
oc login -uadmin -pchangeme
ユーザーがログインすると、OKDは自分のユーザーとLDAPの対応を生成します.
% oc get groups
NAME USERS
admin admin
openshift_admin admin
openshift_user zyl
zyl zyl
% oc get users
NAME UID FULL NAME IDENTITIES
admin 3c4ae0bf-338c-11e9-b2f8-52540042814f admin ldap_auth:uid=admin,ou=People,dc=zyl,dc=io
% oc get identities
NAME IDP NAME IDP USER NAME USER NAME USER UID
ldap_auth:uid=admin,ou=People,dc=zyl,dc=io ldap_auth uid=admin,ou=People,dc=zyl,dc=io admin 3c4ae0bf-338c-11e9-b2f8-52540042814f