Azure Key Vault に対する認証
Key Vault での認証は Microsoft Entra ID で動作します。これは、特定のセキュリティ プリンシパルの ID を認証する役割を担います。 セキュリティ プリンシパルは、Azure リソースへのアクセスを要求できるあらゆるものです。 これには次のものが含まれます。
- ユーザー – Microsoft Entra ID のアカウントを持つ実際のユーザー。
- グループ – ユーザーのコレクション。 グループに与えられたアクセス許可は、そのすべてのメンバーに適用されます。
- サービス プリンシパル – アプリまたはサービスを表します (ユーザーではありません)。 アプリのユーザー アカウントと考えてください。
アプリケーションの場合、サービス プリンシパルを取得する主な方法は 2 つあります。
マネージド ID を使用する (推奨): サービス プリンシパルが Azure によって自動的に作成および管理されます。 アプリは、資格情報を格納することなく、他の Azure サービスに安全にアクセスできます。 App Service、Azure Functions、Virtual Machines などのサービスで動作します。
アプリを手動で登録する: Microsoft Entra ID でアプリを登録します。 これにより、サービス プリンシパルと、すべてのテナントでアプリを識別するアプリ オブジェクトが作成されます。
手記
システム割り当てマネージド ID を使用することをお勧めします。
アプリケーション コードでの Key Vault への認証
Key Vault SDK では Azure Identity クライアント ライブラリを使用しています。これにより、同じコードを使用する環境間で Key Vault に対するシームレスな認証が可能になります。 次の表に、Azure ID クライアント ライブラリに関する情報を示します。
.NET | Python | Java | JavaScript |
---|---|---|---|
Azure Identity SDK .NET | Azure Identity SDK Python | Azure Identity SDK Java | Azure Identity SDK JavaScript |
REST を使用した Key Vault への認証
アクセス トークンは、HTTP Authorization ヘッダーを使用してサービスに送信する必要があります。
PUT /keys/MYKEY?api-version=<api_version> HTTP/1.1
Authorization: Bearer <access_token>
アクセス トークンが指定されていない場合、またはサービスがトークンを拒否すると、 HTTP 401
エラーがクライアントに返され、 WWW-Authenticate
ヘッダーが含まれます。次に例を示します。
401 Not Authorized
WWW-Authenticate: Bearer authorization="…", resource="…"
WWW-Authenticate
ヘッダーのパラメーターは次のとおりです。
authorization: 要求のアクセス トークンを取得するために使用できる OAuth2 承認サービスのアドレス。
resource: 承認要求で使用するリソース (
https://vault.azure.net
) の名前。