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 プロバイダーの追加
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
secret
はclient_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 サーバーは、OAuthClient
の name
、secret
、または redirectURIs
が正しくない場合は、The client is not authorized to request a token using this method
を返します。クローンした内容を Red Hat Single Sign-On OpenShift 4 Identity Provider ページに正しくコピーしてください。
詳細ガイドは、公式の OpenShift ドキュメントを参照してください。