開発者向けの接続アプリケーション

Anypoint Platform には、開発者が機能を拡張するために使用できる​一連の API​ が用意されています。 接続アプリケーション機能では、開発者は API を使用してプログラムで Anypoint Platform とやりとりするアプリケーションにアクセスを委任できます。 接続アプリケーション機能を使用して CI/CD パイプラインをビルドしたり、Anypoint Platform で追加のサードパーティユースケースを製品化したりできます。

ユーザを認証する新しいフローの有効化に加えて、開発者はクライアントを有効または無効にし、クライアントの使用状況を表示できます。 たとえば、開発者はアプリケーションを使用している組織数とアクセス権を持つユーザ数を確認できます。

接続アプリケーション機能は、OAuth 2.0 と OpenID Connect をサポートします。そのため、開発者はアプリケーションでトークンを使用してユーザデータへのアクセスを要求できるようにする必要があります。 サポートされる具体的な OpenID Connect の機能を確認するには、​検出エンドポイント​で提供されている情報を参照してください。 エンドポイントのすべてのスコープは、Anypoint Platform で使用可能な権限に直接マップされますが、いくつかの例外が​「エンドポイントのスコープ」​セクションに記載されています。

エンドユーザに一貫した認証環境を提供するため、独自の Web サイトまたは Web アプリケーションを使用するサードパーティの開発者は、[Sign in with Anypoint Platform (Anypoint Platform でサインイン)]​ オプションを使用したサインインをユーザに許可できます。

組織のシステム管理者ロールを持つ開発者は、Anypoint Platform でアプリケーションを作成してアクセススコープを指定できます。

トークンフロー

開発者が作成したアプリケーションは、ユーザデータへのアクセスを要求します。 エンドユーザがその要求を受信し、アプリケーションによるデータへのアクセスを認証すると、アプリケーションはアクセストークンを受信します。これにより、アプリケーションがユーザの代わりに Anypoint Platform をコールできます。 アクセストークンにより、アプリケーションはユーザの Anypoint Platform ログイン情報を使用してユーザが誰であるかを確認できます。

エンドポイントのスコープ

検出ポイント​のほとんどのスコープは、Anypoint Platform の既存の権限に直接マップされます。その他の使用可能なスコープは次のように定義されます。

  • full​: ユーザが可能なすべてのものへのフルアクセス。

  • read:full​: ユーザが参照可能なすべてのものへの参照のみアクセス。

  • openid​: ユーザのユーザ名と一意の Anypoint ID への参照のみアクセス。

  • profile​: ユーザの Anypoint プロファイルへの参照のみアクセス。

  • email​: ユーザのメールへの参照のみアクセス。

  • offline_access​: ユーザがログインしていない場合のユーザのデータへのアクセス。

client_credentials​ 許可種別を使用するアプリケーションには、常に暗黙的に profile​ スコープが割り当てられます。スコープを使用したクエリによって返されるデータは、接続アプリケーションを作成したユーザに対応します。

OIDC エンドポイントとトークン

OpenID Connect を使用する場合、ユーザがログインしていないときにユーザデータへのアクセスを必要とするアプリケーションは、更新トークンを新しいアクセストークンにエクスチェンジする必要があります。 更新トークンは 90 日後に期限切れになります。ユーザのセッションの有効期限が切れると、アクセストークンは期限切れになります。アプリケーションが認証コード許可種別を使用している場合、元のアクセストークンが期限切れになった後に offline_access​ スコープは更新トークンを使用する必要があります。 新しいアクセストークンを要求するには、refresh_token​ 許可種別を使用してトークンエンドポイントに要求を送信する必要があります。 認証に成功すると、更新トークンがアクセストークンとエクスチェンジされます。

次の例は、既存の refresh_token が指定されたトークン要求の構造を示しています。

POST /api/v2/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&client_id=<your_client_id>&client_secret=<your_client_secret>&refresh_token=<your_refresh_token>

トークン要求が満たされている場合、エンドポイント応答で受信した更新トークンは通常のトークン応答に似ていますが、id_token​ が含まれない可能性があります。

[Sign in with Anypoint Platform (Anypoint Platform でサインイン)] ウィジェット

シームレスな実装のために、開発者は事前作成済みのテンプレートとコンポーネントセットを使用して、アプリケーションのフロントエンドにボタンを統合できます。次のコードを使用して、このウィジェットを追加できます。

<anypoint-signin scopes="full"
redirecturi="...."
clientid="….">
</anypoint-signin>

ボタンを埋め込む方法についての詳細は、​開発者プレイグラウンド​を参照してください。

アプリケーションの作成

組織のシステム管理者としてアプリケーションを作成する前に、次の要件と制限事項に注意してください。

  • 組織が所有できる接続アプリケーションは 200 個までです。

  • 一意の clientID​ が自動的に割り当てられ、変更できません。 ただし、[Application Settings (アプリケーションの設定)]​ ページでクライアントシークレットを変更できます。

  • アプリケーションは組織が所有し、組織のシステム管理者が制御できます。

また、ユースケースを判断し、アプリケーションが会社の内部にあるか、組織の外部に配布できるサードパーティのアプリケーションであるかを判断する必要があります。 アプリケーションを作成する手順は、次のとおりです。

  1. [Access Management (アクセス管理)]​ ホームページから、[Connected Apps (接続アプリケーション)]​ タブをクリックします。

  2. [Create App (アプリケーションを作成)]​ をクリックします。

  3. [Create App (アプリケーションを作成)]​ ページの項目に入力してアプリケーションを作成します。

  4. [Save (保存)]​ をクリックします。

アプリケーションホワイトリスト

組織のシステム管理者はホワイトリストを有効にして、ユーザのデータにアクセス可能なアプリケーションを制御できます。 アプリケーションがホワイトリストに登録されている場合、そのアプリケーションに関連付けられたスコープのセットのみがシステム管理者によって確認および承認されます。 後日アプリケーションに新しいスコープを追加した場合、システム管理者がアプリケーションを再承認するまで、ユーザからそれらのスコープを要求することはできません。 ホワイトリストにすでに登録されているスコープのセットを使用した既存の認証と新規認証は引き続き機能します。 詳細は、「システム管理者向けの接続アプリケーション」​を参照してください。

Was this article helpful?

💙 Thanks for your feedback!