第4章 アイデンティティープロバイダーの設定
4.1. HTPasswd アイデンティティープロバイダーの設定
4.1.1. OpenShift Container Platform のアイデンティティープロバイダーについて
デフォルトでは、kubeadmin
ユーザーのみがクラスターに存在します。アイデンティティープロバイダーを指定するには、アイデンティティープロバイダーを記述し、これをクラスターに追加するカスタムリソース (CR、Custom Resource) を作成する必要があります。
/
、:
、および %
を含む OpenShift Container Platform ユーザー名はサポートされません。
HTPasswd アイデンティティープロバイダーを定義するには、以下の手順を実行する必要があります。
-
ユーザーおよびパスワード情報を保存するために
htpasswd
ファイルを作成します。Linux および Windows用の手順が説明されます。 -
htpasswd
ファイルを表すために OpenShift Container Platform シークレットを作成します 。 - HTPasswd アイデンティティープロバイダーリソースを定義します。
- リソースをデフォルトの OAuth 設定に適用します 。
4.1.2. Linux を使用した HTPasswd ファイルの作成
HTPasswd アイデンティティープロバイダーを使用するには、htpasswd
を使用してクラスターのユーザー名およびパスワードを含むフラットファイルを生成する必要があります。
前提条件
-
htpasswd
ユーティリティーへのアクセスがあること。Red Hat Enterprise Linux では、これはhttpd-tools
パッケージをインストールして利用できます。
手順
ユーザー名およびハッシュされたパスワードを含むフラットファイルを作成します。
$ htpasswd -c -B -b </path/to/users.htpasswd> <user_name> <password>
コマンドにより、ハッシュされたバージョンのパスワードが生成されます。
例:
$ htpasswd -c -B -b users.htpasswd user1 MyPassword! Adding password for user user1
ファイルに対する認証情報の追加またはその更新を継続します。
$ htpasswd -b </path/to/users.htpasswd> <user_name> <password>
4.1.3. Windows を使用した HTPasswd ファイルの作成
HTPasswd アイデンティティープロバイダーを使用するには、htpasswd
を使用してクラスターのユーザー名およびパスワードを含むフラットファイルを生成する必要があります。
前提条件
-
htpasswd.exe
へのアクセスがあること。このファイルは、数多くの Apache httpd ディストリビューションの\bin
ディレクトリーに含まれます。
手順
ユーザー名およびハッシュされたパスワードを含むフラットファイルを作成します。
> htpasswd.exe -c -B -b <\path\to\users.htpasswd> <user_name> <password>
コマンドにより、ハッシュされたバージョンのパスワードが生成されます。
例:
> htpasswd.exe -c -B -b users.htpasswd user1 MyPassword! Adding password for user user1
ファイルに対する認証情報の追加またはその更新を継続します。
> htpasswd.exe -b <\path\to\users.htpasswd> <user_name> <password>
4.1.4. HTPasswd シークレットの作成
HTPasswd アイデンティティープロバイダーを使用するには、HTPasswd ユーザーファイルが含まれるシークレットを定義する必要があります。
前提条件
- HTPasswd ファイルを作成します。
手順
HTPasswd ユーザーファイルが含まれる OpenShift Container Platform シークレットを作成します。
$ oc create secret generic htpass-secret --from-file=htpasswd=</path/to/users.htpasswd> -n openshift-config
注記上記のコマンドが示すように、
--from-file
引数についてのユーザーファイルを含むシークレットキーにはhtpasswd
という名前を指定する必要があります。
4.1.5. HTPasswd CR のサンプル
以下のカスタムリソース (CR) は、HTPasswd アイデンティティープロバイダーのパラメーターおよび許可される値を示します。
HTPasswd CR
apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: my_htpasswd_provider 1 mappingMethod: claim 2 type: HTPasswd htpasswd: fileData: name: htpass-secret 3
4.1.6. アイデンティティープロバイダーのクラスターへの追加
クラスターのインストール後に、アイデンティティープロバイダーをそのクラスターに追加し、ユーザーの認証を実行できるようにします。
前提条件
- OpenShift Container Platform クラスターを作成します。
- アイデンティティープロバイダーのカスタムリソース (CR) を作成します。
- 管理者としてログインしている必要があります。
手順
定義された CR を適用します。
$ oc apply -f </path/to/CR>
注記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 whoami
4.1.7. Web コンソールを使用したアイデンティティープロバイダーの設定
CLI ではなく Web コンソールを使用してアイデンティティープロバイダー (IDP) を設定します。
前提条件
- クラスター管理者として Web コンソールにログインしている必要があります。
手順
-
Administration
Cluster Settings に移動します。 - Global Configuration タブで、OAuth をクリックします。
- Identity Providers セクションで、Add ドロップダウンメニューからアイデンティティープロバイダーを選択します。
既存の IDP を上書きすることなく、Web コンソールで複数の IDP を指定することができます。