高度な OAuth 2.0 トピック

サードパーティ OAuth トークンの使用

サードパーティ OAuth トークンの使用をご覧ください。

複数のコールバック URL を指定する

認可コードの付与タイプを使用する場合は、デベロッパー アプリの登録時にコールバック URL を指定する必要があります。コールバック URL は通常、クライアント アプリの代わりに認可コードを受け取るよう指定されているアプリの URL を指定します。また、この URL 文字列は検証に使用されます。クライアントが認可コードとアクセス トークンをリクエストするときは、この URL を Apigee Edge に送信する必要があります。また、redirect_uri パラメータの値が、登録されているリダイレクト URI のいずれかと一致している必要もあります。アクセス トークンと認証コードのリクエストもご覧ください。

例:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

単一のプロキシ アプリケーションで複数のコールバック URL を指定するユースケースがあります。たとえば、複数のドメインに対して認証を行う必要があるとします。次に例を示します。

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

Edge では、デベロッパー アプリの登録時に複数のコールバック URL を指定することも、コールバック URL でワイルドカード文字を使用することもできません。上記のユースケースに対応するには、デベロッパー アプリの登録時に空のコールバック URL を指定したうえで、受信リダイレクト URI を確認するためのロジックを JavaScript ポリシーに含めるという方法を使用できます。

GenerateAuthCode オペレーションがコードを返す際のデフォルト動作を変更する

デフォルトでは、OAuthV2 ポリシーの GenerateAuthCode オペレーションは、認証コードを格納している code クエリ パラメータを含むコールバック URL への 302 リダイレクトを返します。

場合によっては、この動作を変更したいことがあります。たとえば、構造化 JSON にコードを格納した 200 レスポンスを返す必要がある場合などです。

このユースケースに対応するには、ExtractVariable ポリシーを使用してコードを取得し、AssignMessage ポリシーを使用して、取得したコードを格納した JSON ペイロードをステータス 200 で返します。

アプリ エンドユーザーの同意を監査する

場合により、アプリのエンドユーザーがアプリを許可したことを確認する必要があります。これには Apigee Edge Audit APIを使用できます。

送信 OAuth の例

GitHub の Apigee api-platform-samples リポジトリにある outbound-oauth のサンプルをご覧ください。このサンプルのクローンを作成し、デプロイして実行できます。このサンプルでは Microsoft Azure Translator API を使用してツイートを翻訳します。そのために、まず発信呼び出しを行って OAuth アクセス トークンを取得し、取得したトークンを API サービスのキャッシング ポリシーを使用してキャッシュに保存します。以降は、発信呼び出しを行うたびにキャッシュに保存されているトークンを再利用します。このサンプルには、API プロキシの呼び出しに使用するデモ用ブラウザも含まれています。