7.8. Google アイデンティティープロバイダーの設定
Google OpenID Connect 統合 を使用して google
ID プロバイダーを設定します。
7.8.1. OpenShift Container Platform のアイデンティティープロバイダーについて
デフォルトでは、kubeadmin
ユーザーのみがクラスターに存在します。アイデンティティープロバイダーを指定するには、アイデンティティープロバイダーを記述し、これをクラスターに追加するカスタムリソースを作成する必要があります。
/
、:
、および %
を含む OpenShift Container Platform ユーザー名はサポートされません。
7.8.2. Google 認証について
Google をアイデンティティープロバイダーとして使用することで、Google ユーザーはサーバーに対して認証されます。hostedDomain
設定属性を使用して、特定のホストドメインのメンバーに認証を限定することができます。
Google をアイデンティティープロバイダーとして使用するには、<namespace_route>/oauth/token/request
を使用してトークンを取得し、コマンドラインツールで使用する必要があります。
7.8.3. シークレットの作成
アイデンティティープロバイダーは openshift-config
namespace で OpenShift Container Platform Secret
オブジェクトを使用して、クライアントシークレット、クライアント証明書およびキーをこれに組み込みます。
手順
以下のコマンドを使用して、文字列を含む
Secret
オブジェクトを作成します。$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
ヒントまたは、以下の YAML を適用してシークレットを作成できます。
apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: Opaque data: clientSecret: <base64_encoded_client_secret>
以下のコマンドを使用して、ファイルの内容を含む
Secret
オブジェクトを定義できます。$ oc create secret generic <secret_name> --from-file=<path_to_file> -n openshift-config
7.8.4. Google CR のサンプル
以下のカスタムリソース (CR) は、Google アイデンティティープロバイダーのパラメーターおよび許可される値を示します。
Google CR
apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: googleidp 1 mappingMethod: claim 2 type: Google google: clientID: {...} 3 clientSecret: 4 name: google-secret hostedDomain: "example.com" 5
- 1
- このプロバイダー名は Google の数字のユーザー ID に接頭辞として付加され、アイデンティティー名が作成されます。これはリダイレクト URL を作成するためにも使用されます。
- 2
- このプロバイダーのアイデンティティーと
User
オブジェクト間にマッピングが確立される方法を制御します。 - 3
- 登録済みの Google プロジェクト のクライアント ID です。プロジェクトは、
https://oauth-openshift.apps.<cluster-name>.<cluster-domain>/oauth2callback/<idp-provider-name>
のリダイレクト URI で設定する必要があります。 - 4
- Google で発行されるクライアントシークレットが含まれる OpenShift Container Platform
Secret
オブジェクトへの参照。 - 5
- サインインアカウントを制限するために使用される ホスト型ドメイン です。
lookup
mappingMethod
が使用される場合はオプションになります。空の場合は、すべての Google アカウントの認証が許可されます。
関連情報
-
すべてのアイデンティティープロバイダーに共通するパラメーターの詳細は、アイデンティティープロバイダーのパラメーター (
mappingMethod
など) を参照してください。
7.8.5. アイデンティティープロバイダーのクラスターへの追加
クラスターのインストール後に、アイデンティティープロバイダーをそのクラスターに追加し、ユーザーの認証を実行できるようにします。
前提条件
- 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
この場合は、この警告を無視しても問題ありません。OAuth サーバーからトークンを取得します。
kubeadmin
ユーザーが削除されている限り、oc login
コマンドは、トークンを取得できる Web ページにアクセスする方法に関する情報を提供します。Web コンソールからこのページにアクセスするには、(?)Help
Command Line Tools Copy Login Commandに移動します。 認証するトークンを渡して、クラスターにログインします。
$ oc login --token=<token>
注記このアイデンティティープロバイダーは、ユーザー名とパスワードを使用してログインすることをサポートしません。
ユーザーが正常にログインされていることを確認し、ユーザー名を表示します。
$ oc whoami