4.7. GitLab アイデンティティープロバイダーの設定
gitlab アイデンティティープロバイダーを、GitLab.com またはその他の GitLab インスタンスをアイデンティティープロバイダーとして使用するように設定します。GitLab バージョン 7.7.0 から 11.0 を使用する場合、OAuth 統合を使用して接続します。GitLab バージョン 11.1 以降の場合、OAuth ではなく OpenID Connect (OIDC) を使用して接続します。
4.7.1. OpenShift Container Platform のアイデンティティープロバイダーについて リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、kubeadmin ユーザーのみがクラスターに存在します。アイデンティティープロバイダーを指定するには、アイデンティティープロバイダーを記述し、これをクラスターに追加するカスタムリソース (CR、Custom Resource) を作成する必要があります。
/、:、および % を含む OpenShift Container Platform ユーザー名はサポートされません。
4.7.2. シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
アイデンティティープロバイダーは openshift-config namespace で OpenShift Container Platform シークレットを使用して、クライアントシークレット、クライアント証明書およびキーをこれに組み込みます。
以下のコマンドを使用して、OpenShift Container Platform シークレットを定義できます。
oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、証明書ファイルなどのファイルの内容を含む OpenShift Container Platform シークレットを定義できます。
oc create secret generic <secret_name> --from-file=/path/to/file -n openshift-config
$ oc create secret generic <secret_name> --from-file=/path/to/file -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.3. ConfigMap の作成 リンクのコピーリンクがクリップボードにコピーされました!
アイデンティティープロバイダーは、openshift-config namespace で OpenShift Container Platform ConfigMap を使用し、認証局バンドルをこれに組み込みます。これらは、主にアイデンティティープロバイダーで必要な証明書バンドルを組み込むために使用されます。
以下のコマンドを使用して、認証局が含まれる OpenShift Container Platform ConfigMap を定義します。認証局は ConfigMap の
ca.crtキーに保存する必要があります。oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-config
$ oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.4. GitLab CR のサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下のカスタムリソース (CR) は、GitLab アイデンティティープロバイダーのパラメーターおよび許可される値を示します。
GitLab CR
- 1
- このプロバイダー名は GitLab 数字ユーザー ID にプレフィックスとして付加され、アイデンティティー名が作成されます。これはコールバック URL を作成するためにも使用されます。
- 2
- このプロバイダーのアイデンティティーとユーザーオブジェクト間にマッピングが確立される方法を制御します。
- 3
- 登録済みの GitLab OAuth アプリケーションのクライアント ID です。アプリケーションは、
https://oauth-openshift.apps.<cluster-name>.<cluster-domain>/oauth2callback/<idp-provider-name>のコールバック URL を使用して設定する必要があります。 - 4
- GitLab で発行されるクライアントシークレットが含まれる OpenShift Container Platform シークレットへの参照。
- 5
- GitLab プロバイダーのホスト URL です。これは
https://gitlab.com/か、または他の GitLab の自己ホストインスタンスのいずれかになります。 - 6
- オプション: 設定済みの URL のサーバー証明書を検証するために使用する PEM エンコードされた認証局バンドルを含む OpenShift Container Platform ConfigMap への参照。
4.7.5. アイデンティティープロバイダーのクラスターへの追加 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのインストール後に、アイデンティティープロバイダーをそのクラスターに追加し、ユーザーの認証を実行できるようにします。
前提条件
- OpenShift Container Platform クラスターを作成します。
- アイデンティティープロバイダーのカスタムリソース (CR) を作成します。
- 管理者としてログインしている必要があります。
手順
定義された CR を適用します。
oc apply -f </path/to/CR>
$ oc apply -f </path/to/CR>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記CR が存在しない場合、
oc applyは新規 CR を作成し、さらに以下の警告をトリガーする可能性があります。Warning: oc apply should be used on resources created by either oc create --save-config or oc applyこの場合は、この警告を無視しても問題ありません。アイデンティティープロバイダーのユーザーとしてクラスターにログインし、プロンプトが出されたらパスワードを入力します。
oc login -u <username>
$ oc login -u <username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーが正常にログインされていることを確認し、ユーザー名を表示します。
oc whoami
$ oc whoamiCopy to Clipboard Copied! Toggle word wrap Toggle overflow