12.4.9. OpenShift 4

注記

OpenShift 4 アイデンティティープロバイダーを設定する前に、正しい OpenShift 4 API URL を確認してください。シナリオによっては、その URL はユーザーから非表示にされる可能性があります。このコマンドを取得する最も簡単な方法は、コマンド curl -s -k -H "Authorization: Bearer $(oc whoami -t)" https://<openshift-user-facing-api-url>/apis/config.openshift.io/v1/infrastructures/cluster | jq ".status.apiServerURL" を実行することです (これには jq コマンドを個別にインストールすることが必要になる場合があります)。多くの場合、アドレスは HTTPS によって保護されます。そのため、コンテナーで X509_CA_BUNDLE を設定し、これを /var/run/secrets/kubernetes.io/serviceaccount/ca.crt に設定する必要があります。それ以外の場合は、Red Hat Single Sign-On は API サーバーと通信できません。

OpenShift 4 でログインを有効にするためにには、いくつかの手順を実行する必要があります。まず、左側のメニュー項目 Identity Providers に移動し、Add provider ドロップダウンリストから OpenShift v4 を選択します。これにより、Add identity provider ページが表示されます。

ID プロバイダーの追加

openshift 4 add identity provider

OAuth クライアントの登録

oc コマンドラインツールを使用してクライアントを登録できます。

$ oc create -f <(echo '
kind: OAuthClient
apiVersion: v1
metadata:
 name: keycloak-broker 1
secret: "..." 2
redirectURIs:
 - "<copy pasted Redirect URI from OpenShift 4 Identity Providers page>" 3
grantMethod: prompt 4
')
1
OAuth クライアントの 名前<openshift_master>/oauth/authorize および <openshift_master>/oauth/token への要求の実行時に client_id 要求パラメーターとして渡されます。name パラメーターは、OAuthClient オブジェクトと Red Hat Single Sign-On 設定で同じである必要があります。
2
secretclient_secret 要求パラメーターとして使用されます。
3
<openshift_master>/oauth/authorize および <openshift_master>/oauth/token への要求で指定される redirect_uri パラメーターは、redirectURIs のいずれかの URI と同じ (または接頭辞が付けられた) 必要があります。これを正しく設定する最も簡単な方法は、Red Hat Single Sign-On OpenShift 4 Identity Provider 設定ページから (Redirect URI フィールド) コピーすることです。
4
grantMethod は、このクライアントがトークンを要求し、ユーザーがアクセスを付与していない場合に実行するアクションを判別するために使用されます。

oc create コマンドで定義されるクライアント ID とシークレットを使用して、Red Hat Single Sign-On の Add identity provider ページで再度入力します。Red Hat Single Sign-On に戻り、その項目を指定します。

ヒント

OpenShift API サーバーは、OAuthClientnamesecret 、または redirectURIs が正しくない場合は、The client is not authorized to request a token using this method を返します。クローンした内容を Red Hat Single Sign-On OpenShift 4 Identity Provider ページに正しくコピーしてください。

詳細ガイドは、公式の OpenShift ドキュメントを参照してください。