OpenID Connect クライアント管理の設定

MuleSoft は、OpenID Connect 動的クライアント登録オープン標準を実装する ID プロバイダーによるクライアント管理をサポートします。 MuleSoft は Anypoint Platform で Salesforce、Okta、OpenAM v14 の動的クライアント登録のサポートを明示的に検証します。

次のテーブルで、登録中にプロバイダーに応じて指定する必要がある URL の例を示します。

URL 名

Okta の URL 例

OpenAM の URL 例

Salesforce の URL 例

Base (ベース)

https://example.okta.com/oauth2/v1

https://example.com/openam/oauth2

https://example.salesforce.com/services/oauth2

Client Registration (クライアント登録)

{BASE URL}/clients

{BASE URL}/connect/register

{BASE URL}/register

Authorize (承認)

{BASE URL}/authorize

{BASE URL}/authorize

{BASE URL}/authorize

Token (トークン)

{BASE URL}/token

{BASE URL}/access_token

{BASE URL}/token

Token Introspection (トークンイントロスペクション)

{BASE URL}/introspect

{BASE URL}/introspect

{BASE URL}/introspect

  1. 組織のシステム管理者権限を持つアカウントを使用して Anypoint Platform にログインします。

  2. ナビゲーションバーまたは Anypoint Platform のメインページで、​[Access Management (アクセス管理)]​ をクリックします。

  3. [Access Management (アクセス管理)] ナビゲーションメニューで、​[Client Providers (クライアントプロバイダー)]​ をクリックします。

  4. [Add Client Provider (クライアントプロバイダーを追加)]​ をクリックして、​[OpenID Connect Dynamic Client Registration (OpenID Connect 動的クライアント登録)]​ を選択します。

    [Add OIDC client provider (OIDC クライアントプロバイダーを追加)]​ ページが表示されます。

  5. ID プロバイダーの設定から値を取得したら、各セクションの次の必須項目にそれらの値を入力します。

    • 動的クライアント登録

      • Issuer (発行者)​: OpenID プロバイダーアサートがその信頼される発行者である URL。

      • Client Registration URL (クライアント登録 URL)​: クライアントアプリケーションを ID プロバイダーのクライアントアプリケーションとして動的に登録するための URL。

      • Authorization Header (認証ヘッダー)​: サーバーで認証するためのログイン情報を表示するヘッダー。このヘッダーは、プロバイダーが承認済みのクライアントに対する登録要求を制限している場合に必須です。

        • Okta の場合、この値は ​SSWS ${api_token}​ です。ここで、​api_token​ は Okta を通じて作成される API トークンです。

        • ForgeRock の場合、この値は ​Bearer ${api_token}​ です。ここで、​api_token​ は ForgeRock を通じて作成される API トークンです。

        • Salesforce の場合、この値は ​Bearer ${api_token}​ です。ここで、​api_token​ は Salesforce を通じて作成される API トークンです。 ​[Advanced Settings (詳細設定)]​ では、以下のオプションを選択することもできます。

        • Disable server certificate validation (サーバー証明書の検証を無効化)​: OpenID クライアント管理インスタンスで自己署名証明書、または内部認証機関によって署名される証明書が表示される場合、サーバー証明書の検証を無効にします。

        • Enable client deletion in Anypoint Platform (Anypoint Platform でクライアントの削除を有効化)​: このインテグレーションで作成されたクライアントの削除を有効にします。

        • Enable client deletion and updates in IdP (IdP でクライアントの削除および更新を有効化)​: このオプションを使用するには、​[Enable client deletion in Anypoint Platform (Anypoint Platform でクライアントの削除を有効化)]​ オプションも選択する必要があります。このオプションにより、Anypoint Platform によって ​{clientRegistrationUrl}/{clientID}​ に対して行われたアウトバウンドコールを通じて設定済みの IdP で外部クライアントの更新および削除が可能になります。​clientRegistrationUrl​ は ​[Client Registration URL (クライアント登録 URL)]​ で設定した値です。たとえば、​https://identity.example.com/oauth2/connect/register/6779ef20e75817b79602​ のようにします。

          • Authorization:​ ヘッダーは、​[Advanced settings (詳細設定)]​ の ​Authorization Header​ が設定されている場合のみ要求に含まれます。

          • 渡される ​client_id​ 要求パラメーターは、​PUT​ 要求ペイロードで渡される ​client_id​ と同じです。

          • ペイロードで渡される ​token_endpoint_auth_method​ は常に ​client_secret_basic​ です。

          • OIDC の ​[Client Provider (クライアントプロバイダー)]​ で設定した内容から取得されるのは、​Client Registration URL​ と ​Authorization Header​ のみです。
            PUT (更新) 要求のペイロードの例を次に示します。

            PUT /oauth2/connect/register/{{client_id}}
            Accept: application/json
            Host: identity.example.com
            Authorization: Bearer access-token
             {
                 "client_id": "client_id",
                 "client_secret": "some-secret",
                 "redirect_uris": [
                      "https://example.com/"
                  ],
                 "grant_types": [ "authorization_code" ],
                 "token_endpoint_auth_method": "client_secret_basic",
                 "response_types": [ "code" ],
                 "client_name": "test-client-name"
            }
            要求の ​client_name​ はインバウンド側の ​name​ にマップされます。
            認証方法は許可種別によって異なります。たとえば、許可種別が ​implicit​ の場合、​id_token​ と ​token​ が返されます。

            DELETE リクエストヘッダーの例を次に示します。

            DELETE /oauth2/connect/register/{{client_id}}
            Host: identity.example.com
            Authorization: Bearer access-token
            コールが直接 IDP に対して使用されている場合、​PUT​ と ​DELETE​ のどちらもが機能しないことが予期されます。自分で管理しているアプリケーションを参照することによる捕捉を目的としているため、特定のプロバイダー用に適切な削除および更新の API を実装できます。
      • Client Request Timeout (seconds) (クライアント要求のタイムアウト (秒))​: クライアントプロバイダーの要求がタイムアウトするまでの時間。最小値は 5 秒です。最大値は 20 秒です。

    • Token Introspection Client (トークンイントロスペクションクライアント)

      • Client ID (クライアント ID)​: すべてのクライアントの​すべて​のトークンのイントロスペクションが可能な IdP の既存のクライアントのクライアント ID。

        • Okta の場合、この値は「Confidential (機密)」クライアントである必要があります。

        • ForgeRock の場合、この値は「Confidential (機密)」クライアントである必要があります。

        • Salesforce の場合、この値は「Confidential (機密)」クライアントである必要があります。

      • Client Secret (クライアントシークレット)​: クライアント ID に対応するクライアントシークレット。

    • OpenID Connect Authorization URLs (OpenID Connect 認証 URL)

      • Authorize URL (認証 URL)​: ユーザーが OpenID Connect クライアントアプリケーションを認証してユーザーの ID へのアクセスを許可する URL。

      • Token URL (トークン URL)​: 安全な JSON Web トークンでエンコードされたユーザーの ID を提供する URL。

  6. [Create (作成)]​ をクリックします。

これを正常に設定すると、API Manager を通じて OpenID Connect OAuth トークン適用ポリシーを API ゲートウェイに適用できます。API Portal を通じて API アクセスを要求すると、トークンプロバイダーとして機能する設定済みの IDP でクライアントアプリケーションが動的に生成されます。

Okta の場合、Okta システム管理者は動的に生成されたクライアントをユーザーまたはユーザーのグループに割り当てて、クライアント ID およびクライアントシークレットを送信することでアクセストークンを受信できるようにする必要があります。
Anypoint Platform が設定済みの OIDC エンドポイントに対して HTTP コールを行った 5 秒後に応答がない場合、HTTP コールはタイムアウトになります。

サポートされる許可種別

API Portal で事前入力される許可種別

OIDC 動的クライアント登録プロバイダーのセットアップ中に省略可能な ​[Issuer (発行者)]​ 項目を設定すると、Anypoint Platform はその UI に、プロバイダーでサポートされるすべての OIDC 許可種別 (​client credentials​、​password​ など) を自動的に入力します。プロバイダーでサポートされる許可種別を確認するには、​$ISSUER​/.well-known/openid-configuration​ を使用してプロバイダーの検出エンドポイントを確認します。ここで、​$ISSUER​ はプロバイダーとして設定された発行者です。クライアントプロバイダーの ​$ISSUER​/.well-known/oauth-authorization-server​ エンドポイントで この仕様​がサポートされている場合、許可種別を ​$ISSUER​/.well-known/openid-configuration​ とマージする前に、エンドポイントが検出されて検証されます。このプロセスで、Okta ユーザーのクライアントログイン情報許可種別も使用できるようになります。

許可種別の更新

[Issuer (発行者)]​ が設定されており、​/.well-known​ URL を使用可能な場合、既存のクライアントプロバイダーに移動してそれを再度保存すると、​/.well-known​ メタデータからの ​grant_types_supported​ に基づいて許可種別が更新されます。クライアントプロバイダーを作成または更新すると、システムによって ​/.well-known​ メタデータが取得されます。

デフォルトの許可種別

[Issuer (発行者)]​ 項目が設定されていない場合、またはプロバイダーの検出エンドポイントを使用できない場合は、​Anypoint Exchange API ポータル​で API クライアントアプリケーションを作成するときに Anypoint Platform UI にデフォルトで次の許可種別が表示されます。

  • 暗黙的

  • Authorization (認証)

  • Refresh Token (更新トークン)

[Refresh Token (更新トークン)] 許可種別を選択できるのは、認証認可種別も選択している場合のみです。