API センターで API へのアクセスを承認するように設定を構成します。 これらの設定:
- API キー、OAuth 2.0 承認、または別の HTTP セキュリティ スキームを使用して API の認証と承認を有効にする
- インベントリ内の API バージョンに認証構成を関連付ける
- アクセス ポリシーを使用して、指定されたユーザーまたはグループの API バージョンへのアクセスを管理する
- 承認されたユーザーが API センター ポータルで API をテストできるようにする
注
この機能は現在プレビュー段階です。
[前提条件]
Azure サブスクリプション内の API センター。 作成していない場合は、「クイック スタート: API Center を作成する」を参照してください。
API センターに少なくとも 1 つの API が登録されています。 「チュートリアル: API インベントリに API を登録する」を参照してください。
API 用に構成された環境とデプロイ。 「チュートリアル: API の環境とデプロイを追加する」を参照してください。
API センター ポータルの設定。 「API センター ポータルのセットアップ」を参照してください。
API キーまたは OAuth 2.0 クライアント シークレットを格納するための Azure キー コンテナー。 「Key Vault の作成」を参照してください。 キー ボールトでは、Azure ロールベースのアクセス制御 (RBAC) アクセス許可モデルを採用する必要があります。
(Microsoft Entra ID を使用した OAuth 2.0 の場合)サブスクリプションに関連付けられている Microsoft Entra テナントでアプリ登録を作成するためのアクセス許可。
オプション 1: API キー認証を構成する
API キー認証をサポートする API の場合は、次の手順を実行します。
1. Azure Key Vault に API キーを格納する
API キーをシークレットとしてキー コンテナーに格納するには、「 Key Vault でのシークレットの設定と取得」を参照してください。
API センターのマネージド ID を使用してキー コンテナーにアクセスします。
API Center においてマネージド ID を有効にする
このシナリオでは、API Center はマネージド ID を使用して Azure リソースにアクセスします。 ニーズに応じて、1 つのシステム割り当て、または 1 つ以上のユーザー割り当てのマネージド ID を有効にします。
次の例は、Azure portal または Azure CLI を使用して、システム割り当てマネージド ID を有効にする方法を示しています。 大まかに言うと、構成手順はユーザー割り当てマネージド ID の場合も同様です。
- ポータルで、API Center に移動します。
- 左側のメニューの [セキュリティ] で、[マネージド ID] を選択します。
- [システム割り当て済み] を選択し、状態を [オン] に設定します。
- 保存 を選択します。
マネージド ID に Key Vault シークレット ユーザー ロールを割り当てる
API のインポートを許可するには、API センターのマネージド ID に、Azure キー コンテナー内の Key Vault シークレット ユーザー ロールを割り当てます。 Azure portal か、Azure CLI を使用できます。
- ポータルで、キー コンテナーに移動します。
- 左側のメニューで [アクセス制御 (IAM)] を選択します。
- [ロールの割り当ての追加] を選択します。
-
[ロールの割り当ての追加] ペインで、次のように値を設定します。
- [ロール] タブで [キー コンテナー シークレット ユーザー] を選択します。
- [メンバー] タブの [アクセスの割り当て先] で、[マネージド ID]>[+ メンバーの選択] を選びます。
- [マネージド ID の選択] ページ上で、前のセクション内で追加した API Center のシステム割り当てマネージド ID を選択します。 [選択] をクリックします。
- レビュー + 割り当て を選択します。
2. API キーの構成を追加する
ポータルで、API センターに移動します。
[ ガバナンス] で、[ 承認 (プレビュー)]>+ [構成の追加] を選択します。
[ 構成の追加] ページで、次の値を設定します。
設定 説明 タイトル 承認の名前を入力します。 説明 必要に応じて、承認の説明を入力します。 セキュリティ スキーム [API キー] を選択します。 API キーの場所 API 要求でのキーの表示方法を選択します。 使用可能な値は 、Header (要求ヘッダー) と Query (クエリ パラメーター) です。 API キー パラメーター名 API キーを含む HTTP ヘッダーまたはクエリ パラメーターの名前を入力します。 例: x-api-keyAPI キー Key Vault シークレットの参照 [ 選択 ] を選択し、保存したサブスクリプション、キー コンテナー、シークレットを選択します。 例: https://<key-vault-name>.vault.azure.net/secrets/<secret-name>を選択してを作成します。
この構成を完了したら、「 API バージョンへの認証構成の追加 」セクションに移動して、API キー構成を API バージョンに関連付けます。
オプション 2: OAuth 2.0 承認を構成する
OAuth 2.0 承認をサポートする API の場合は、次の手順を実行します。 次のフローのいずれかまたは両方を構成できます。
- PKCE を使用した認証コード フロー (Code Exchange の証明キー) - API センター ポータルなどのブラウザーでユーザーを認証します。
- クライアント資格情報フロー - 特定のユーザーのアクセス許可を必要としないアプリケーションの場合。
1. OAuth 2.0 アプリを作成する
サブスクリプションに関連付けられている Microsoft Entra テナントなど、ID プロバイダーでアプリ登録を作成します。 手順は、ID プロバイダーによって異なります。
次の例は、Microsoft Entra ID でアプリ登録を作成する方法を示しています。
- テナントで十分なアクセス許可を持つ Azure portal にサインインします。
- Microsoft Entra ID>+ New registration に移動します。
- [ アプリケーションの登録] ページで、次の手順を実行 します。
- [ 名前] に、わかりやすい名前を入力します。
- [サポートされているアカウントの種類] で、適切なオプション (たとえば、この組織のディレクトリ内のアカウントのみ (シングル テナント) など) を選択します。
- (承認コード フローの場合) [リダイレクト URI] で、[ シングルページ アプリケーション (SPA)] を選択し、API センター ポータルの URI (
https://<service-name>.portal.<location>.azure-api-center.ms) を入力します。<service-name>と<location>を API センターの名前とデプロイの場所に置き換えます。 例:https://myapicenter.portal.eastus.azure-api-center.ms - 登録 を選択します。
- [ 管理] で、[ 証明書とシークレット>+ 新しいクライアント シークレット] を選択します。
- [Description]\(説明\) を入力します。
- [有効期限] のオプションを選択します。
- [] を選択し、[] を追加します。
- ページを離れる前に、クライアント シークレット の値 をコピーします。 これは次のセクションで必要になります。
- 必要に応じて、アプリの登録に API スコープを追加します。 Web API を公開するようにアプリケーションを構成するを参照してください。
API センターで OAuth 2.0 を構成する場合は、アプリ登録から次の値が必要です。
- [概要] ページのアプリケーション (クライアント) ID と、コピーしたクライアント シークレット。
-
概要>Endpoints の次のエンドポイント URL:
- OAuth2.0 承認エンドポイント (v2)
- OAuth 2.0 トークン エンドポイント (v2) ( トークン更新エンドポイントとしても使用)
- 構成したすべての API スコープ。
2. クライアント シークレットを Azure Key Vault に格納する
クライアント シークレットをキー コンテナーに格納するには、「 Key Vault でのシークレットの設定と取得」を参照してください。
API センターのマネージド ID を使用してキー コンテナーにアクセスします。
API Center においてマネージド ID を有効にする
このシナリオでは、API Center はマネージド ID を使用して Azure リソースにアクセスします。 ニーズに応じて、1 つのシステム割り当て、または 1 つ以上のユーザー割り当てのマネージド ID を有効にします。
次の例は、Azure portal または Azure CLI を使用して、システム割り当てマネージド ID を有効にする方法を示しています。 大まかに言うと、構成手順はユーザー割り当てマネージド ID の場合も同様です。
- ポータルで、API Center に移動します。
- 左側のメニューの [セキュリティ] で、[マネージド ID] を選択します。
- [システム割り当て済み] を選択し、状態を [オン] に設定します。
- 保存 を選択します。
マネージド ID に Key Vault シークレット ユーザー ロールを割り当てる
API のインポートを許可するには、API センターのマネージド ID に、Azure キー コンテナー内の Key Vault シークレット ユーザー ロールを割り当てます。 Azure portal か、Azure CLI を使用できます。
- ポータルで、キー コンテナーに移動します。
- 左側のメニューで [アクセス制御 (IAM)] を選択します。
- [ロールの割り当ての追加] を選択します。
-
[ロールの割り当ての追加] ペインで、次のように値を設定します。
- [ロール] タブで [キー コンテナー シークレット ユーザー] を選択します。
- [メンバー] タブの [アクセスの割り当て先] で、[マネージド ID]>[+ メンバーの選択] を選びます。
- [マネージド ID の選択] ページ上で、前のセクション内で追加した API Center のシステム割り当てマネージド ID を選択します。 [選択] をクリックします。
- レビュー + 割り当て を選択します。
3. OAuth 2.0 構成を追加する
ポータルで、API センターに移動します。
[ ガバナンス] で、[ 承認 (プレビュー)]>+ [構成の追加] を選択します。
[ 構成の追加] ページで、次の値を設定します。
注
前に作成したアプリ登録の値を使用します。 Microsoft Entra ID の場合は、アプリ登録の [概要] ページでクライアント ID、>Endpoints で URL エンドポイントを見つけます。
設定 説明 タイトル 承認の名前を入力します。 説明 必要に応じて、承認の説明を入力します。 セキュリティ スキーム [OAuth2] を選択します。 クライアント ID ID プロバイダーで作成したアプリのクライアント ID (GUID) を入力します。 クライアント シークレット 保存したサブスクリプション、キー コンテナー、クライアント シークレットを選択します。
例:https://<key-vault-name>.vault.azure.net/secrets/<secret-name>Authorization URL (承認 URL) ID プロバイダーの OAuth 2.0 承認エンドポイントを入力します。
Microsoft Entra ID の例:https://login.microsoftonline.com/<tenant>/oauth2/v2.0/authorizeToken URL (トークン URL) ID プロバイダーの OAuth 2.0 トークン エンドポイントを入力します。
Microsoft Entra ID の例:https://login.microsoftonline.com/<tenant>/oauth2/v2.0/tokenURL の更新 ID プロバイダーの OAuth 2.0 トークン更新エンドポイントを入力します。 ほとんどのプロバイダーでは、トークン URL と同じです
Microsoft Entra ID の例:https://login.microsoftonline.com/<tenant>/oauth2/v2.0/tokenOAuth2 フロー 認証 コード (PKCE) と クライアント資格情報のいずれかまたは両方の OAuth 2.0 フローを選択します。 スコープ API 用に構成された 1 つ以上の API スコープをスペースで区切って入力します。 スコープが構成されていない場合は、「 .default」と入力します。[作成] を選択して構成を保存します。
この構成を完了したら、「 API バージョンへの認証構成の追加 」セクションに移動して、OAuth 2.0 構成を API バージョンに関連付けます。
オプション 3: 別の HTTP セキュリティ スキームの設定を構成する
OAuth 2.0 を使用しない基本認証やベアラー トークンなど、別の HTTP セキュリティ スキームを使用する API の場合は、次の手順を実行します。 レガシ API では、このオプションを選択することが必要になる場合があります。
ポータルで、API センターに移動します。
[ ガバナンス] で、[ 承認 (プレビュー)]>+ [構成の追加] を選択します。
[ 構成の追加] ページで、次の値を設定します。
設定 説明 タイトル 承認の名前を入力します。 説明 必要に応じて、承認の説明を入力します。 セキュリティ スキーム [HTTP] を選択します。 認証スキーム API で使用される認証スキームを選択します。 次の表には、例が含まれています。 認証スキーム 説明 Basic username:passwordヘッダーで Base64 でエンコードされた文字列としてAuthorization: Basic <credentials>を送信します。ベアラー Authorization: Bearer <token>ヘッダーで OAuth 2.0 アクセス トークン以外のトークンを送信します。ダイジェスト サーバーが nonce を送信するチャレンジ応答メカニズム。クライアントは、資格情報のハッシュ + nonce で応答します。 カスタム 例えばベンダー固有の方式のような別のメカニズム。
この構成を完了したら、次のセクションに進み、 構成を API バージョンに関連付けます。
API バージョンに認証構成を追加する
認証スキームを構成した後、構成を API バージョンに関連付けます。
ポータルで、API センターに移動します。
[ インベントリ] で [資産] を選択 します。
構成を関連付ける API を選択します。
[ 詳細] で [ バージョン] を選択し、ターゲット API のバージョンを選択します。
API バージョンのコンテキスト メニューで、[ アクセスの管理 (プレビュー)]を選択します。
[ アクセスの管理 ] ページで、[ + 認証の追加] を選択します。
使用可能な 認証構成を選択します。
を選択してを作成します。
注
API でサポートされている場合は、API バージョン (API キーと OAuth 2.0 の両方など) に複数の認証構成を追加できます。 同じ構成を複数の API バージョンに追加することもできます。
特定のユーザーまたはグループのアクセスを管理する
API バージョンの特定の認証構成をスコープとする API Center 資格情報アクセス閲覧者 ロールをユーザーまたはグループに割り当てるアクセス ポリシーを構成します。 このロールでは、指定されたユーザーのみが API センター ポータルで API をテストできます。
ポータルで、API センターに移動します。
認証構成を使用して API バージョンに移動します。
[ アクセスの管理 (プレビュー)]を選択します。
管理する認証構成を選択します。
ドロップダウン メニューで、[ アクセス ポリシーの編集] を選択します。
[ アクセスの管理 ] ページで、[ + > ユーザーの追加 ] または [ + > グループの追加] を選択します。
ユーザーまたはグループを検索して選択します。 複数の項目を選択できます。
[選択]
ヒント
ユーザーまたはグループを削除するには、[アクセスの管理] ページのコンテキスト メニューで [削除] を選択します。
API センター ポータルで API をテストする
認証とユーザー アクセス用に構成した API をテストします。
ヒント
また、 可視性の設定 を構成して、ポータルにサインインしているすべてのユーザーに表示される API を制御することもできます。
ポータルで、API センターに移動します。
[API センター ポータル] で、[ポータルの設定]>[API センター ポータルの表示] を選択します。
API を選択し、認証方法が構成されているバージョンを選択します。
操作を選択し、[ この API を試す] を選択します。
操作が成功すると、
200 OK応答コードと応答本文が返されます。 失敗した操作はエラー メッセージを返します。