検索

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

download PDF

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. ユーザー名およびハッシュされたパスワードを含むフラットファイルを作成します。

    $ htpasswd -c -B -b </path/to/users.htpasswd> <user_name> <password>

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

    例:

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

    $ htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>

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

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

前提条件

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

手順

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

    > 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
  2. ファイルに対する認証情報の追加またはその更新を継続します。

    > 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

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

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

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

前提条件

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

手順

  1. 定義された 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この場合は、この警告を無視しても問題ありません。

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

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

    $ 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 シークレットから取得し、ファイルをお使いのファイルシステムに保存します。

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

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

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

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

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

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

      $ oc delete user <username>
      user.user.openshift.io "<username>" deleted

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

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

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

© 2024 Red Hat, Inc.