向 Azure Key Vault 進行驗證
使用 Key Vault 的驗證可搭配 Microsoft Entra ID 運作,此標識碼負責驗證任何指定安全性主體的身分識別。 安全性主體是可要求存取 Azure 資源的任何項目。 這包括:
- 使用者 – 具有Microsoft Entra 標識符中帳戶的實際人員。
- 群組 – 使用者集合。 提供給群組的許可權會套用至其所有成員。
- 服務主體 – 代表應用程式或服務(而非人員)。 請將它想像成應用程式的用戶帳戶。
針對應用程式,有兩個主要方法可取得服務主體:
使用受控識別(建議):Azure 會為您建立和管理服務主體。 應用程式可以安全地存取其他 Azure 服務,而不需要儲存認證。 使用 App Service、Azure Functions 和虛擬機等服務。
在 Microsoft Entra ID 手動註冊應用程式。 這會建立服務主體和應用程式物件,以識別所有租用戶的應用程式。
注意
建議使用系統指派的受控識別。
應用程式程式碼中對 Key Vault 的驗證
Key Vault SDK 使用 Azure 身分識別用戶端程式庫,使密鑰保存庫能夠在不同環境中使用相同程式碼順暢地進行驗證。 下表提供 Azure 身分識別用戶端連結庫的相關信息:
| .NET | Python | JAVA | JavaScript |
|---|---|---|---|
| Azure Identity SDK .NET | Azure 身分識別 SDK Python | Azure 身分識別 SDK Java | Azure Identity SDK JavaScript |
使用 REST 向 Key Vault 進行驗證
存取權杖必須使用 HTTP 授權標頭傳送至服務:
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)。