29.4. OpenShift OAuth サーバーと組み合わせてサービスディスカバリーを設定する
3scale のシステム管理者は、ユーザーが OpenShift の組み込み OAuth サーバーを使用して、個別に認証、3scale を承認して API を検出するのを許可します。
前提条件
- OpenShift クラスター (バージョン 3.11 以降) に 3scale 2.10 をデプロイしている必要があります。
- 3scale を OpenShift にデプロイするには、3scale-amp-openshift-templates を使用する必要があります。
- 3scale でサービスディスカバリーを使用する 3scale ユーザーは、OpenShift クラスターにアクセスできる必要があります。
手順
3scale 用の OpenShift OAuth クライアントを作成します。詳細は、OpenShift の認証に関するドキュメント を参照してください。以下の例で、
<provide-a-client-secret>
を生成するシークレットに、<3scale-master-domain-route>
を 3scale マスター管理ポータルにアクセスするための URL に、それぞれ置き換えます。$ oc project default $ cat <<-EOF | oc create -f - kind: OAuthClient apiVersion: v1 metadata: name: 3scale secret: "<provide-a-client-secret>" redirectURIs: - "<3scale-master-domain-route>" grantMethod: prompt EOF
3scale サービスディスカバリーの設定ファイルを開きます。
$ oc project <3scale-project> $ oc edit configmap system
以下のように設定します。
service_discovery.yml: production: enabled: true authentication_method: oauth oauth_server_type: builtin client_id: '3scale' client_secret: '<choose-a-client-secret>'
ユーザーが適切なアクセス権限を持ち、検出可能なサービスが含まれるクラスタープロジェクトを表示できるようにしてください。
<user> で表される管理ユーザーに、検出されるサービスが含まれる <namespace> プロジェクトを表示する権限を付与するには、以下のコマンドを使用します。
oc adm policy add-role-to-user view <user> -n <namespace>
configmap
を変更したら、system-app
およびsystem-sidekiq
Pod を再デプロイし、変更を適用する必要があります。oc rollout latest dc/system-app oc rollout latest dc/system-sidekiq
ロールアウトのステータスを表示し、読み込みが完了したことを確認します。
oc rollout status dc/system-app oc rollout status dc/system-sidekiq
関連情報
- OpenShift OAuth トークンについての詳細は、内部 OAuth サーバーの設定 を参照してください。