Skip to main content

外部 API ゲートウェイの認証の提供

学習の目的

この単元を完了すると、次のことができるようになります。
  • OpenID Connect 動的クライアント登録とトークンイントロスペクションについて説明する。
  • Salesforce で接続アプリケーションを使用して、外部 API ゲートウェイの認証を提供する方法を説明する。

OpenID Connect 動的クライアント登録とトークンイントロスペクション

最初の単元で、外部 API ゲートウェイでホストされているリソースを保護するために、Salesforce を独立した OAuth 認証サーバーとして機能させるユースケースについて説明しました。接続アプリケーションのこのユースケースは、動的クライアント登録とトークンイントロスペクションによって実現します。

動的クライアント登録によって、リソースサーバーがクライアントアプリケーションを接続アプリケーションとして動的に作成できるようになります。クライアントアプリケーションは、保護されているリソースへのアクセスを要求する外部アプリケーションです。クライアントアプリケーションを接続アプリケーションとして動的に作成するために、リソースサーバーが認証サーバーに、クライアントアプリケーションの接続アプリケーションを作成する要求を送信します。認証サーバーがリソースサーバーの要求を検証して接続アプリケーションを作成し、一意のクライアント ID とクライアントの秘密を付与します。

トークンイントロスペクションでは、すべての OAuth 接続アプリケーションが、OAuth 2.0 のアクセストークンや更新トークンの現在の状態を確認できます。リソースサーバーまたは接続アプリケーションが、クライアントアプリケーションのクライアント ID と秘密を認証サーバーに送信して、OAuth 認証フローを開始します。このフローの中で、認証サーバーがクライアントアプリケーションのアクセストークンを検証 (または調査) します。アクセストークンが最新で有効な場合は、クライアントアプリケーションにアクセスが許可されます。

外部 API ゲートウェイの認証フロー

OpenID Connect 動的クライアント登録とトークンイントロスペクションは、やや複雑に思えるかもしれません。ですので、次の例に沿ってフローを順に見ていきましょう。

ここでは、Salesforce パートナーが独自に注文状況データにアクセスできるようにしたいと思います。そこで、MuleSoft の Anypoint Platform 上にリリースされている API ゲートウェイでフロントに配置して、注文状況を複数のシステムに公開するサービスを構築します。このデータに対する保護されたアクセスを有効にするには、次の手順を実行します。

  1. OpenID トークン強制適用ポリシーを API ゲートウェイポリシーに適用します。
  2. Mulesoft の Anypoint Platform 上で Salesforce をクライアント管理プロバイダーとして設定します。

この設定では、OpenID Connect 動的クライアント登録とトークンイントロスペクションフローで、API ゲートウェイが Salesforce をその認証プロバイダーとして使用します。

  1. API ゲートウェイがクライアントアプリケーションを Salesforce 動的クライアント登録エンドポイントに登録します。
  2. API ゲートウェイが、関連付けられている認証許可種別に基づいて、クライアントアプリケーションを承認する要求を Salesforce 認証エンドポイントに送信します。
  3. 検証に成功すると、Salesforce がクライアントアプリケーションのアクセストークンを生成します。
  4. API ゲートウェイが、アクセストークンを検証する要求を Salesforce トークンイントロスペクションエンドポイントに送信します。
  5. 検証に成功すると、API ゲートウェイが、クライアントアプリケーションに保護されているデータへのアクセスを許可します。

ここですべてまとめてみましょう。

Order Status (注文状況) API の外部 API ゲートウェイ認証フローを示す画像
  1. MuleSoft の API ポータルで Order Status (注文状況) API を使用できます。
  2. パートナーが MuleSoft にログインし、Order Status (注文状況) API にアクセスするためのクライアントアプリケーションを作成します。
  3. この新しいクライアントアプリケーションが、クライアントアプリケーションの接続アプリケーションを作成する要求を Salesforce 動的クライアント登録エンドポイントに自動的に送信します。
  4. 登録に成功すると、Salesforce がクライアントアプリケーションのクライアント ID とクライアントの秘密を返し、これがパートナーに共有されます。
  5. パートナーが、クライアントを承認する許可種別 (認証コード) を指定して、クライアントのログイン情報を記した要求を API ゲートウェイに送信します。
  6. パートナーがブラウザーにリダイレクトされ、Salesforce にログインしてデータへのアクセスを承認します。この承認は、Salesforce の対応する接続アプリケーションに関連付けられている範囲に基づきます。
  7. 認証コード許可フローに成功すると、Salesforce がアクセストークンをクライアントアプリケーションに送信します。
  8. クライアントアプリケーションがそのアクセストークンを API ゲートウェイに送信し、保護されている注文状況データへのアクセスを要求します。
  9. API ゲートウェイがアクセストークンを抽出し、Salesforce トークンイントロスペクションエンドポイントに送信します。
  10. Salesforce がアクセストークンを検証します。
  11. API ゲートウェイが、MuleSoft でホストされている Order Status (注文状況) API で保護されているデータへのアクセスをクライアントアプリケーションに許可します。

キャンプ地に到着

お疲れさまでした! 「接続アプリケーションの基本」モジュールを修了しました。接続アプリケーションをどのように使用できるのかを知って気が楽になったのではないでしょうか。接続アプリケーションの今後のモジュールやプロジェクトで、こうしたユースケースでの接続アプリケーションの作成方法や設定方法を説明します。それまで、接続アプリケーションの達人への道を着実に歩んでいることを忘れないでください。

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む