8.2.2. RH-SSO サーバー (Keycloak) と組み合わせたサービスディスカバリーの設定
システム管理者は、ユーザーが OpenShift 向け Red Hat Single Sign-On を使用して、個別に認証、3scale を承認してサービスを検出するのを許可することができます。
OpenShift の承認ゲートウェイとして RH-SSO デプロイメントを使用する OpenShift の設定例については、この ワークフロー を参照してください。
前提条件
- OpenShift クラスター (バージョン 3.11 以降) に 3scale 2.8 をデプロイしている必要があります。
- 3scale を OpenShift にデプロイするには、3scale-amp-openshift-templates を使用する必要があります。
- 3scale でサービスディスカバリーを使用する 3scale ユーザーは、OpenShift クラスターにアクセスできる必要があります。
手順
Red Hat OAuth サーバー (Keycloak) に、3scale 用の OAuth クライアントを作成します。
注記クライアント設定で、OpenShift がアカウントをリンクすることができるように、
username
がpreferred_username
にマッピングされていることを確認します。3scale サービスディスカバリーの設定を編集します。
$ oc project <3scale-project> $ oc edit configmap system
以下のように設定されていることを確認します。ここで、
<the-client-secret-from-Keycloak>
は、OAuth クライアントの作成時に Keycloak が自動生成した値です。service_discovery.yml: production: enabled: true authentication_method: oauth oauth_server_type: rh_sso client_id: '3scale' client_secret: '<the-client-secret-from-Keycloak>'
ユーザーが適切なアクセス権限を持ち、検出可能なサービスが含まれるクラスタープロジェクトを表示できるようにしてください。
たとえば、
<user>
に<namespace>
プロジェクトを表示する権限を付与するには、以下のコマンドを使用します。oc adm policy add-role-to-user view <user> -n <namespace>
-
configmap
を変更したら、system-app
およびsystem-sidekiq
Pod を再デプロイし、変更を適用する必要があります。
補足説明:
- トークンの有効期限:Keycloak Server Administration Guide の Session and Token Timeouts に記載されるように、デフォルトではセッショントークンの有効期限は 1 分です。ただし、タイムアウトを妥当な値 (たとえば 1 日) に設定することを推奨します。