クライアントアプリケーションの移行

以前に異なる API 管理ソリューションを使用していた場合には、アプリケーションのクライアントログイン情報が Anypoint Platform の外部で管理されていることがあります。Anypoint Platform でログイン情報を使用するためには、これらのクライアントアプリケーションのクライアント ID とクライアントシークレットログイン情報を使用して、事前にクライアントアプリケーションを Anypoint Platform に移行する必要があります。

クライアントアプリケーションでは、組織が Anypoint Platform クライアントプロバイダーまたは外部クライアントプロバイダーに関連付けられている API をコンシュームできます。それぞれのシナリオの手順は異なります。

前提条件

クライアントアプリケーションを移行する前に:

  • 必要なトークンとログイン情報を取得します。

    • 移行するクライアントアプリケーションのクライアント ID とクライアントシークレット

    • Anypoint Platform トークンLeaving the Site

  • スコープと制限​を確認してください。

スコープと制限

クライアントアプリケーションを Anypoint Platform に移行する前に、次のスコープと制限を確認してください。

  • アプリケーションがコンシュームする API の組織で外部クライアントプロバイダー (例: PingFederate や Okta) が登録されている場合は、​「外部クライアントプロバイダーが登録されている組織」​を参照してください。

  • アプリケーションのクライアント ID やクライアントシークレットを更新しようとしないでください。

    この機能はサポートされていません。

  • クライアント ID は、Anypoint Platform 内では一意です。2 つの異なるアカウントで同じクライアント ID を使用しないでください。

    重複を回避するため、アカウントに対しては一意のクライアント ID を指定してください。

  • 同じユーザーを使用して 500 件を超えるアプリケーションを作成しないでください。

  • 重複する名前のアプリケーションを作成しないでください。

  • クライアント ID を変更する場合は、必ず先にクライアントアプリケーションを削除してから再登録してください。

  • クライアントログイン情報がクライアントプロバイダー上の既存の組織 ID のログイン情報と一致する場合、アプリケーションはそのクライアントに関連付けられます。

    反対に、指定したクライアントログイン情報が一致しない場合、クライアントアプリケーションは既存のクライアントには関連付けられずに作成されます。

Anypoint Platform クライアントプロバイダーを使用している API でのクライアントアプリケーションの移行

クライアントアプリケーションを移行するには、次の手順を実行します。

  1. テキストエディターを開いて次のコマンドを貼り付けます。

    curl --location --request POST 'https://anypoint.mulesoft.com/exchange/api/v1/organizations/:orgId/applications' \
    --header 'Authorization: Bearer <omitted>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "clientId": <myClientId>,
        "clientSecret": <myClientSecret>,
        "grantTypes": [],
        "name": <myApplicationName>,
        "redirectUri": []
    }'
    text
  2. orgId​ パラメーターはルート組織の ID に、本文のコンテンツは適切なアプリケーション​プロパティ​に置き換えます。

  3. コマンドプロンプトに対してこのコマンドを実行します。

外部クライアントプロバイダーを使用している API でのクライアントアプリケーションの移行

外部クライアントプロバイダーが登録されている組織に対してアプリケーションを作成する場合は、API インスタンス ID (API Manager UI で取得可能) を使用して、コンシュームする API に直接アプリケーションを関連付けることができます。

PingFederate 外部クライアントプロバイダーまたは Anypoint Platform クライアントプロバイダーを使用している場合は、API の参照時にクライアント ID とクライアントシークレットを含めることができます。OpenID 動的クライアント登録を使用して登録される Okta や Keycloak などのプロバイダーを使用している場合は、クライアント ID とクライアントシークレットログイン情報を定義することはできません。

クライアントアプリケーションを移行するには、次の手順を実行します。

  1. テキストエディターを開いて次のコマンドを貼り付けます。

    curl --location --request POST 'https://anypoint.mulesoft.com/exchange/api/v1/organizations/:orgId/applications?apiInstanceId=:myApiInstanceId' \
    --header 'Authorization: Bearer <omitted>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "clientId": <myIdpClientID>,
        "clientSecret": <myIdpClientSecret>,
        "grantTypes": [
            <grant type item, for example: client_credentials>
        ],
        "name": <myApplicationName>,
        "redirectUri": [
            "https://anypoint.mulesoft.com/apiplatform/:orgId/authentication/oauth2.html",
            "https://anypoint.mulesoft.com/apiplatform/:orgId/admin/authentication/oauth2.html",
            "https://api-notebook.anypoint.mulesoft.com/authenticate/oauth.html"
        ]
    }'
    text
  2. コマンドスニペットの ​orgId​ パラメーターは組織の ID に、​apiInstanceId​ は API インスタンス ID に、本文のコンテンツは適切なアプリケーション​プロパティ​に置き換えます。

  3. コマンドプロンプトに対してこのコマンドを実行します。

移行コマンドプロパティリファレンス

移行コマンドのプロパティには、以下の推奨事項に基づいて値を指定してください。

  • clientId​: <クライアント ID>

  • clientSecret​: <クライアントシークレット>

  • (省略可能)​description​: <アプリケーション情報の説明>

    このプロパティはアプリケーションページに表示されます。

  • name​: <作成するアプリケーションの名前>

    このプロパティは、アクセスを要求する前にアプリケーションを選択するときに表示されます。

  • redirectUri​: <OAuth 2.0 クライアントとして使用するアプリケーションのリダイレクト URI を含む配列>

  • (省略可能) ​url​: <クライアントアプリケーションの URL>

    このプロパティはアプリケーションページに表示されます。

  • grantTypes​: <Anypoint Platform クライアントプロバイダーの場合は空白の配列、外部クライアントプロバイダーの場合は可能な値の配列>

    • Resource Owner Grant​: "password"

    • Implicit Grant​: "implicit"

    • Client Credentials Grant​ "client_credentials"

    • Authorization Code​: "authorization_code"

    • Refresh Token​: "refresh_token" (この許可種別を使用するには認証コードが必要です。)

外部クライアントプロバイダーでサポートされる許可種別については、クライアントプロバイダーのドキュメントを参照してください。