演習 - サブスクリプション キーを使って API を呼び出す

サブスクリプション キーを使って、API へのアクセスを制限できます。

靴の会社の例では、NorthWind Shoes は連携しているサプライヤーが直接 Inventory API にアクセスできるようにしたいと考えています。 パートナーのアクセスはセキュリティで保護され、すべての API の呼び出しでサブスクリプション キーが使われる必要があります。

ここでは、自分の API 用のサブスクリプション キーを探します。 次に、サブスクリプション キーがある場合とない場合での API へのアクセスをテストします。

サブスクリプション キーを取得する

パートナーは、オンボード プロセスの一部として各自のキーを付与されます。 この演習では、管理者キーを使用します。 キーを受け取ったら、API 呼び出しでキーを使用する場合と同じプロセスに従います。

  1. サンドボックスをアクティブ化したときと同じアカウントを使用して、Azure portal にサインインします。
  2. Azure portal のメニューまたは [ホーム] ページで [すべてのリソース] を選択し、お使いの API ゲートウェイをクリックします。
  3. [API Management] の下で、[サブスクリプション] をクリックします。
  4. [Built-in all-access subscription](組み込みの全アクセス サブスクリプション) のコンテキスト メニュー (...) をクリックしてから、[キーの表示/非表示] をクリックします。
  5. [主キー][クリックしてコピー] ボタンをクリックします。
  6. メモ帳などの場所に、このキーを保存します。

API 呼び出しでサブスクリプション キーを使う

次の手順は、サブスクリプション キーを使って、公開した API への開発者のアクセスをテストすることです。

  1. Cloud Shell で次のコマンドを実行して、API の Products 操作にアクセスします。<apim gateway> はゲートウェイの名前に置き換えます。
  2. curl https://<apim gateway>.azure-api.net/api/Products
    
  3. 401、サブスクリプション キーがないため、アクセスが拒否されました」というメッセージが表示されます。
  4. 今度は、サブスクリプション キーを含めて curl 要求を再実行します。
  5. Cloud Shell で次のコマンドを実行します。<primary key> は前に保存したキーに置き換え、<apim gateway> はゲートウェイの名前に置き換えます。
    curl --header "Ocp-Apim-Subscription-Key: <primary key>" https://<apim gateway>.azure-api.net/api/Products
    
  6. これで API にアクセスできるようになり、コンソールに返された製品の一覧が表示されるはずです。