Menu Close
8.7.5. OpenID Connect を使用したプロダクト認証の定義
任意の OAuth 2.0 フローの認証に OpenID Connect (OIDC) を使用する 3scale プロダクトの Product
カスタムリソースをデプロイできます。3scale は、OpenID Connect などのサードパーティーアイデンティティープロバイダー (IdP) と統合し、API リクエストを認証します。OpenID Connect についての詳しい情報は、OpenID Connect integration を参照してください。サードパーティ IdP との統合後、プロダクトカスタムリソースに含めるデータが 2 種類あります。
-
issuerType
: Red Hat Single Sign-On (RH-SSO) 使用時のkeycloak
の値およびサードパーティ IdP との統合時のrest
の値。 -
issuerEndpoint
: 必要なクレデンシャルを持つ URL。
前提条件
- RH-SSO を設定する必要があります。Configuring Red Hat Single Sign-On を参照してください。
- サードパーティーアイデンティティープロバイダーとの HTTP インテグレーションを設定している。
注記
issuerEndpoint
で提供されるクレデンシャル CLIENT_ID および CLIENT_CREDENTIALS には、レルムで他のクライアントを管理するために十分なパーミッションが必要です。
手順
OpenID プロバイダーの場所を定義するエンドポイント
issuerEndpoint
を決定し、プロダクトカスタムリソースでこの形式を使用します。https://<client_id>:<client_secret>@<host>:<port_number>/auth/realms/<realm_name>`
OAuth 2.0 フローの OpenID Connect (OIDC) 認証を指定する 3scale
Product
CR を定義または更新します。以下は例になります。apiVersion: capabilities.3scale.net/v1beta1 kind: Product metadata: name: product1 spec: name: "OperatedProduct 1" deployment: <any>: authentication: oidc: issuerType: "keycloak" issuerEndpoint: "https://myclientid:myclientsecret@mykeycloack.example.com/auth/realms/myrealm" authenticationFlow: standardFlowEnabled: false implicitFlowEnabled: true serviceAccountsEnabled: true directAccessGrantsEnabled: true jwtClaimWithClientID: "azp" jwtClaimWithClientIDType: "plain"
前のステップで定義したリソースを作成します。以下は例になります。
oc create -f product1.yaml
この例では、以下のような出力になります。
product.capabilities.3scale.net/product1 created