選擇適當的角色(例如: Key Vault Secrets User 或 Key Vault Secrets Officer)
在 成員 頁面,選擇 受控識別
搜尋並選擇您的 App Service 或使用者指派的受控識別
點擊 檢閱 + 指派
存取 Azure Storage
導航到您的 儲存體帳戶
選擇 存取控制 (IAM)
點擊 + 新增角色指派
選擇適當的角色(例如: Storage Blob Data Reader 或 Storage Blob Data Contributor)
選擇您的受控識別並完成指派
存取 Azure SQL Database
在 SQL Database 中執行以下 T-SQL 指令:
-- 建立使用者(使用受控識別的名稱)
CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
-- 授予權限
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
// 系統指派的受控識別
var credential = new DefaultAzureCredential();
// 使用者指派的受控識別(需指定 Client ID)
// var credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = "<user-assigned-client-id>"
// });
var client = new SecretClient(
new Uri("https://<your-key-vault-name>.vault.azure.net/"),
credential);
KeyVaultSecret secret = await client.GetSecretAsync("<secret-name>");
string secretValue = secret.Value;
存取 Azure Storage:
using Azure.Identity;
using Azure.Storage.Blobs;
var credential = new DefaultAzureCredential();
var blobServiceClient = new BlobServiceClient(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
credential);
var containerClient = blobServiceClient.GetBlobContainerClient("<container-name>");
存取 Azure SQL Database:
using Azure.Identity;
using Microsoft.Data.SqlClient;
var credential = new DefaultAzureCredential();
var connectionString =
"Server=<server-name>.database.windows.net;" +
"Database=<database-name>;" +
"Authentication=Active Directory Default;";
using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();