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
オブジェクトを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
ヒントまたは、以下の YAML を適用してシークレットを作成できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: Opaque data: clientSecret: <base64_encoded_client_secret>
apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: Opaque data: clientSecret: <base64_encoded_client_secret>
次のコマンドを使用して、ファイルの内容を含む
Secret
オブジェクトを定義できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic <secret_name> --from-file=<path_to_file> -n openshift-config
$ 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 mappingMethod: claim type: Google google: clientID: {...} clientSecret: name: google-secret hostedDomain: "example.com"
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: googleidp
mappingMethod: claim
type: Google
google:
clientID: {...}
clientSecret:
name: google-secret
hostedDomain: "example.com"
- 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 を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f </path/to/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に移動します。 認証するトークンを渡して、クラスターにログインします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc login --token=<token>
$ oc login --token=<token>
注記このアイデンティティープロバイダーは、ユーザー名とパスワードを使用してログインすることをサポートしません。
ユーザーが正常にログインされていることを確認し、ユーザー名を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc whoami
$ oc whoami