OpenShiftでHTPasswdを使った認証管理
0.はじめに
OpenShift Container Platform(以下、OCP)入門者向けに、HTPasswd IDプロバイダーを構成し、クラスターにアクセスするユーザーを管理する方法を解説します。
HTPasswd IDプロバイダーは、OpenShift環境でクラスターへのユーザーアクセス管理を行うための認証方法の1つです。
管理者が独自に作成したパスワードファイルを利用し、ユーザーの認証を簡単に設定できます。
CLIとWebコンソールの両方を使用した構成方法を説明します。
では、次の章から具体的な解説を進めます!
1. パスワードファイルの作成と管理
HTPasswd形式のパスワードファイルを作成し、ユーザー情報を登録します。
1.1 初回のパスワードファイル作成
次のコマンドで、ユーザー alice
を作成し、パスワードファイル htpasswd
を生成します。
htpasswd -c -B -b htpasswd alice redhat123
1.2 既存ファイルへのユーザー追加
すでに存在する htpasswd
ファイルに他のユーザー(bob
, charlie
, ted
)を追加します。
htpasswd -B -b htpasswd bob redhat123
htpasswd -B -b htpasswd charlie redhat123
htpasswd -B -b htpasswd ted redhat123
-
alice
やbob
はユーザー名、redhat123
はパスワードです。必要に応じて変更してください。
2. HTPasswdプロバイダーの構成
2.1 Webコンソールを使った構成
- 管理者権限でWebコンソールにログインします。
- 「管理」→「クラスター管理」→「設定」タブを開きます。
- 「OAuth」をクリックし、「アイデンティティープロバイダーを追加」 を選択。
-
HTPasswd
を選択し、作成したhtpasswd
ファイルをアップロードして追加します。
2.2 CLIを使った構成
CLIを使用して、HTPasswd IDプロバイダーを設定します。
手順1: シークレットの作成
HTPasswdファイルを基に、OpenShiftで利用するシークレットを作成します。
oc create secret generic my-htpass-secret --from-file=htpasswd=htpasswd -n openshift-config
手順2: OAuth設定のエクスポート
現在のOAuth構成をYAMLファイルにエクスポートします。
oc get oauth cluster -o yaml > oauth.yaml
手順3: OAuth仕様の確認
OAuth設定項目の構造を確認し、正しい構成を理解します。
oc explain oauth.spec
oc explain oauth.spec.identityProviders
手順4: OAuth設定の修正
エクスポートした oauth.yaml
ファイルを編集します。
identityProviders
の項目を以下のように追記します(例)。
identityProviders:
- name: htpasswd-idp
mappingMethod: claim
type: HTPasswd
htpasswd:
fileData:
name: my-htpass-secret
ファイルを保存後、変更を適用します。
oc replace -f oauth.yaml
手順5: 認証Podの状態を確認
設定変更後、openshift-authentication
名前空間のPodが再起動し、正常に動作していることを確認します。
oc get pods -n openshift-authentication
実行結果の例:
NAME READY STATUS RESTARTS AGE
oauth-openshift-7d9c8bfcc-2zw8 1/1 Running 0 2m
3. 設定の確認とテスト
- WebコンソールやCLIを使用して、新しいユーザーアカウント(
alice
、bob
など)でログインを試みます。 - ユーザー認証が成功することを確認してください。
4.おわりに
今回はOpenShiftのHTPasswdを使った認証管理について理解を深めるために、以下を学びました。
手順 | CLI | Webコンソール |
---|---|---|
パスワードファイルの作成と管理 |
htpasswd コマンドを使用 |
不適用 |
シークレットの作成 | oc create secret |
不適用 |
OAuth設定の変更 |
oc replace を使用 |
「OAuth」→「IDプロバイダーを追加」 |
設定確認とPod監視 | oc get pods |
「クラスター管理」→「認証」 |
HTPasswd IDプロバイダーを使用すると、シンプルかつ柔軟にユーザー管理が行えるため、小規模環境や開発用クラスターで便利です。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion