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。
注記

issuerEndpoint で提供されるクレデンシャル CLIENT_ID および CLIENT_CREDENTIALS には、レルムで他のクライアントを管理するために十分なパーミッションが必要です。

手順

  1. OpenID プロバイダーの場所を定義するエンドポイント issuerEndpoint を決定し、プロダクトカスタムリソースでこの形式を使用します。

    https://<client_id>:<client_secret>@<host>:<port_number>/auth/realms/<realm_name>`
  2. 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"
  3. 前のステップで定義したリソースを作成します。以下は例になります。

    oc create -f product1.yaml

    この例では、以下のような出力になります。

    product.capabilities.3scale.net/product1 created

関連情報