第4章 アイデンティティープロバイダーの設定


4.1. HTPasswd アイデンティティープロバイダーの設定

4.1.1. OpenShift Container Platform のアイデンティティープロバイダーについて

デフォルトでは、kubeadmin ユーザーのみがクラスターに存在します。アイデンティティープロバイダーを指定するには、アイデンティティープロバイダーを記述し、これをクラスターに追加するカスタムリソース (CR、Custom Resource) を作成する必要があります。

注記

/:、および % を含む OpenShift Container Platform ユーザー名はサポートされません。

HTPasswd アイデンティティープロバイダーを定義するには、以下の手順を実行する必要があります。

  1. ユーザーおよびパスワード情報を保存するために htpasswd ファイルを作成します。Linux および Windows用の手順が説明されます。
  2. htpasswd ファイルを表すために OpenShift Container Platform シークレットを作成します 。
  3. HTPasswd アイデンティティープロバイダーリソースを定義します
  4. リソースをデフォルトの OAuth 設定に適用します

4.1.2. Linux を使用した HTPasswd ファイルの作成

HTPasswd アイデンティティープロバイダーを使用するには、htpasswdを使用してクラスターのユーザー名およびパスワードを含むフラットファイルを生成する必要があります。

前提条件

  • htpasswd ユーティリティーへのアクセスがあること。Red Hat Enterprise Linux では、これは httpd-tools パッケージをインストールして利用できます。

手順

  1. ユーザー名およびハッシュされたパスワードを含むフラットファイルを作成します。

    Copy to Clipboard Toggle word wrap
    $ htpasswd -c -B -b </path/to/users.htpasswd> <user_name> <password>

    コマンドにより、ハッシュされたバージョンのパスワードが生成されます。

    例:

    Copy to Clipboard Toggle word wrap
    $ htpasswd -c -B -b users.htpasswd user1 MyPassword!
    
    Adding password for user user1
  2. ファイルに対する認証情報の追加またはその更新を継続します。

    Copy to Clipboard Toggle word wrap
    $ htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>

4.1.3. Windows を使用した HTPasswd ファイルの作成

HTPasswd アイデンティティープロバイダーを使用するには、htpasswdを使用してクラスターのユーザー名およびパスワードを含むフラットファイルを生成する必要があります。

前提条件

  • htpasswd.exe へのアクセスがあること。このファイルは、数多くの Apache httpd ディストリビューションの \bin ディレクトリーに含まれます。

手順

  1. ユーザー名およびハッシュされたパスワードを含むフラットファイルを作成します。

    Copy to Clipboard Toggle word wrap
    > htpasswd.exe -c -B -b <\path\to\users.htpasswd> <user_name> <password>

    コマンドにより、ハッシュされたバージョンのパスワードが生成されます。

    例:

    Copy to Clipboard Toggle word wrap
    > htpasswd.exe -c -B -b users.htpasswd user1 MyPassword!
    
    Adding password for user user1
  2. ファイルに対する認証情報の追加またはその更新を継続します。

    Copy to Clipboard Toggle word wrap
    > htpasswd.exe -b <\path\to\users.htpasswd> <user_name> <password>

4.1.4. HTPasswd シークレットの作成

HTPasswd アイデンティティープロバイダーを使用するには、HTPasswd ユーザーファイルが含まれるシークレットを定義する必要があります。

前提条件

  • HTPasswd ファイルを作成します。

手順

  • HTPasswd ユーザーファイルが含まれる OpenShift Container Platform シークレットを作成します。

    Copy to Clipboard Toggle word wrap
    $ 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

Copy to Clipboard Toggle word wrap
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

1
このプロバイダー名は、プロバイダーのユーザー名にプレフィックスとして付加され、アイデンティティー名が作成されます。
2
このプロバイダーのアイデンティティーとユーザーオブジェクト間にマッピングが確立される方法を制御します。
3
htpasswdを使用して生成されたファイルが含まれる既存のシークレットです。

4.1.6. アイデンティティープロバイダーのクラスターへの追加

クラスターのインストール後に、アイデンティティープロバイダーをそのクラスターに追加し、ユーザーの認証を実行できるようにします。

前提条件

  • OpenShift Container Platform クラスターを作成します。
  • アイデンティティープロバイダーのカスタムリソース (CR) を作成します。
  • 管理者としてログインしている必要があります。

手順

  1. 定義された CR を適用します。

    Copy to Clipboard Toggle word wrap
    $ 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この場合は、この警告を無視しても問題ありません。

  2. アイデンティティープロバイダーのユーザーとしてクラスターにログインし、プロンプトが出されたらパスワードを入力します。

    Copy to Clipboard Toggle word wrap
    $ oc login -u <username>
  3. ユーザーが正常にログインされていることを確認し、ユーザー名を表示します。

    Copy to Clipboard Toggle word wrap
    $ oc whoami

4.1.7. HTPasswd アイデンティティープロバイダーの更新

既存の HTPasswd アイデンティティープロバイダーにユーザーを追加したり、既存の HTPasswd アイデンティティープロバイダーからユーザーを削除したりできます。

前提条件

  • HTPasswd ユーザーファイルが含まれるシークレットを作成している。この手順では、htpass-secret という名前であることを前提としています。
  • HTPasswd アイデンティティープロバイダーを設定している。この手順では、my_htpasswd_provider という名前であることを前提としています。
  • htpasswd ユーティリティーへのアクセスがある。Red Hat Enterprise Linux では、これは httpd-tools パッケージをインストールして利用できます。
  • クラスター管理者の権限がある。

手順

  1. HTPasswd ファイルを htpass-secret シークレットから取得し、ファイルをお使いのファイルシステムに保存します。

    Copy to Clipboard Toggle word wrap
    $ oc get secret htpass-secret -ojsonpath={.data.htpasswd} -n openshift-config | base64 -d > users.htpasswd
  2. users.htpasswd ファイルからユーザーを追加したり、削除したりします。

    • 新規ユーザーを追加するには、以下を実行します。

      Copy to Clipboard Toggle word wrap
      $ htpasswd -bB users.htpasswd <username> <password>
      Adding password for user <username>
    • 既存ユーザーを削除するには、以下を実行します。

      Copy to Clipboard Toggle word wrap
      $ htpasswd -D users.htpasswd <username>
      Deleting password for user <username>
  3. htpass-secret シークレットを、users.htpasswd ファイルの更新されたユーザーに置き換えます。

    Copy to Clipboard Toggle word wrap
    $ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run -o yaml -n openshift-config | oc replace -f -
  4. 複数のユーザーを削除した場合は、追加でユーザーごとに既存のリソースを削除する必要があります。

    1. ユーザーを削除します。

      Copy to Clipboard Toggle word wrap
      $ oc delete user <username>
      user.user.openshift.io "<username>" deleted

      ユーザーを必ず削除してください。削除しない場合、ユーザーは期限切れでない限り、トークンを引き続き使用できます。

    2. ユーザーのアイデンティティーを削除します。

      Copy to Clipboard Toggle word wrap
      $ oc delete identity my_htpasswd_provider:<username>
      identity.user.openshift.io "my_htpasswd_provider:<username>" deleted

4.1.8. Web コンソールを使用したアイデンティティープロバイダーの設定

CLI ではなく Web コンソールを使用してアイデンティティープロバイダー (IDP) を設定します。

前提条件

  • クラスター管理者として Web コンソールにログインしている必要があります。

手順

  1. Administration Cluster Settings に移動します。
  2. Global Configuration タブで、OAuth をクリックします。
  3. Identity Providers セクションで、Add ドロップダウンメニューからアイデンティティープロバイダーを選択します。
注記

既存の IDP を上書きすることなく、Web コンソールで複数の IDP を指定することができます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.