🔐

OpenShiftでHTPasswdを使った認証管理

2024/11/24に公開

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
  • alicebob はユーザー名、redhat123 はパスワードです。必要に応じて変更してください。

2. HTPasswdプロバイダーの構成

2.1 Webコンソールを使った構成

  1. 管理者権限でWebコンソールにログインします。
  2. 「管理」→「クラスター管理」→「設定」タブを開きます。
  3. 「OAuth」をクリックし、「アイデンティティープロバイダーを追加」 を選択。
  4. 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. 設定の確認とテスト

  1. WebコンソールやCLIを使用して、新しいユーザーアカウント(alicebobなど)でログインを試みます。
  2. ユーザー認証が成功することを確認してください。

4.おわりに

今回はOpenShiftのHTPasswdを使った認証管理について理解を深めるために、以下を学びました。

手順 CLI Webコンソール
パスワードファイルの作成と管理 htpasswdコマンドを使用 不適用
シークレットの作成 oc create secret 不適用
OAuth設定の変更 oc replaceを使用 「OAuth」→「IDプロバイダーを追加」
設定確認とPod監視 oc get pods 「クラスター管理」→「認証」

HTPasswd IDプロバイダーを使用すると、シンプルかつ柔軟にユーザー管理が行えるため、小規模環境や開発用クラスターで便利です。

1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。

今後もOpenShiftについて解説していきます。

おわりっ!

参考サイト

Discussion