次の方法で共有


資格情報マネージャーの構成 - GitHub API

適用対象: すべての API Management レベル

この記事では、API Management でマネージド 接続 を作成し、OAuth 2.0 トークンを必要とする GitHub API を呼び出す方法について説明します。 この例では、承認コード許可の種類が使用されています。

次の方法を学びます:

  • GitHub でアプリケーションを登録する
  • API Management で資格情報プロバイダーを構成する
  • 接続を構成する
  • API Management で API を作成し、ポリシーを構成する
  • API Management で GitHub API をテストする

[前提条件]

手順 1: GitHub でアプリケーションを登録する

API 用の GitHub OAuth アプリを作成し、呼び出す要求に適切なアクセス許可を付与します。

  1. GitHub にサインインします。

  2. アカウント プロファイルで、[ 設定] > [開発者向け設定] > OAuth Apps に移動します。 [新しい OAuth アプリ] を選択します

    GitHub で新しい OAuth アプリケーションを登録するスクリーンショット。

    1. アプリケーションのアプリケーション名ホーム ページ URL を入力します。 この例では、 http://localhostなどのプレースホルダー URL を指定できます。
    2. 必要に応じて、 アプリケーションの説明を追加します。
    3. 認証コールバック URL (リダイレクト URL) に、「https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>」と入力し、資格情報プロバイダーを構成する API Management インスタンスの名前を置き換えて入力します。
  3. [ アプリケーションの登録] を選択します。

  4. [ 全般 ] ページで、手順 2 で使用する クライアント ID をコピーします。

  5. [ 新しいクライアント シークレットの生成] を選択します。 シークレットをコピーします。シークレットは再び表示されません。このシークレットは手順 2 で使用します。

    GitHub でアプリケーションのクライアント ID とクライアント シークレットを取得する方法を示すスクリーンショット。

手順 2: API Management で資格情報プロバイダーを構成する

  1. Azure portal にサインインし、API Management インスタンスに移動します。

  2. 左側のメニューで、 API>Credential manager>+ Create を選択します。

    Azure portal で API Management 資格情報を作成するスクリーンショット。

  3. [ 資格情報プロバイダーの作成 ] ページで、次の設定を入力します。

    設定 価値
    資格情報プロバイダー名 github-01 など、選択した名前
    ID プロバイダー GitHub を選択する
    許可の種類 承認コードの選択
    クライアント ID 前にアプリの登録からコピーした値を貼り付けます
    クライアント シークレット 前にアプリの登録からコピーした値を貼り付けます
    Scope この例では、スコープを [ユーザー] に設定します。
  4. を選択してを作成します。

  5. メッセージが表示されたら、表示されている OAuth リダイレクト URL を確認し、[ はい ] を選択して、アプリ登録で入力した URL と一致することを確認します。

手順 3: 接続を構成する

[ 接続 ] タブで、プロバイダーへの接続の手順を完了します。

接続を構成すると、API Management は既定で、インスタンスのシステム割り当てマネージド ID によるアクセスを有効にするアクセス ポリシー を設定します。 この例では、このアクセスで十分です。 必要に応じて、追加のアクセス ポリシーを追加できます。

  1. 接続名を入力し、[保存] を選択します。
  2. [手順 2: 接続にログインする (承認コード許可の種類の場合)] で、[ログイン] ボタンを選択します。 アクセスを承認し、API Management に戻る手順を完了します。
  3. [手順 3: この接続にアクセスできるユーザーを決定する (アクセス ポリシー)]で、マネージド ID メンバーが一覧表示されます。 シナリオによっては、他のメンバーの追加は省略可能です。
  4. [Complete]\(完了\) を選択します。

新しい接続が接続の一覧に表示され、状態が [接続済み] と表示されます。 資格情報プロバイダー用に別の接続を作成する場合は、前の手順を実行します。

ヒント

Azure portal を使用して、資格情報プロバイダーへの接続をいつでも追加、更新、または削除できます。 詳細については、「 複数の接続を構成する」を参照してください。

手順 4: API Management で API を作成し、ポリシーを構成する

  1. Azure portal にサインインし、API Management インスタンスに移動します。

  2. 左側のメニューで、>>追加を選択します。

  3. [HTTP] を選択し、次の設定を入力し、[作成] を選択します。

    Setting 価値
    表示名 githubuser
    Web サービスの URL https://api.github.com
    API URL サフィックス githubuser
  4. 新しく作成した API に移動し、[ 操作の追加] を選択します。 次の設定を入力し、[ 保存] を選択します。

    Setting 価値
    表示名 getauthdata
    GET の URL /user

    ポータルで API に getauthdata 操作を追加するスクリーンショット。

  5. 前の手順に従って、次の設定で別の操作を追加します。

    Setting 価値
    表示名 getauthfollowers
    GET の URL /user/followers
  6. [すべての操作] を選択します。 [ 受信処理 ] セクションで、(</>) (コード エディター) アイコンを選択します。

  7. 次をコピーしてポリシー エディターに貼り付けます。 provider-id ポリシーのauthorization-idget-authorization-contextの値が、前の手順で構成した資格情報プロバイダーと接続の名前にそれぞれ対応していることを確認します。 保存 を選択します。

    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
            <set-header name="Authorization" exists-action="override">
                <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
            </set-header>
            <set-header name="User-Agent" exists-action="override">
                <value>API Management</value>
            </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

上記のポリシー定義は、次の 3 つの部分で構成されています。

  • get-authorization-context ポリシーは、前に作成した資格情報プロバイダーと接続を参照して、承認トークンをフェッチします。
  • 最初のset-headerポリシーでは、フェッチされた承認トークンを使用してHTTPヘッダーを作成します。
  • 2 番目 の set-header ポリシーは、 User-Agent ヘッダー (GitHub API 要件) を作成します。

手順 5: API をテストする

  1. [ テスト ] タブで、構成した操作を 1 つ選択します。

  2. [Send] を選択します。

    ポータルで API を正常にテストするスクリーンショット。

    応答が成功すると、GitHub API からユーザー データが返されます。