高度な 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 オペレーションが 302 リダイレクトを返すコールバック URL には、?code クエリ パラメータに認可コードが格納されます。

場合によっては、この動作を変更したいことがあります。たとえば、構造化 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 プロキシの呼び出しに使用するデモ用ブラウザも含まれています。