Microsoft Entra yönetilen kimliklerini kullanarak uygulama derleme

Tamamlandı

Halihazırda bir Azure sanal makinesi oluşturdunuz ve sistem tarafından yönetilen kimliği atadınız. Bu sanal makinede çalıştırılan uygulamaların, Azure kaynaklarına yönelik isteklerde kimlik doğrulaması yapması gerekiyor. Parola veya paylaşılan anahtar kullanmak yerine sistem tarafından atanan yönetilen kimliği kullanacaksınız.

Bu ünitede, uygulamaların kimlik doğrulaması için yönetilen kimlikleri nasıl kullanılabileceği hakkında daha fazla bilgi edineceksiniz. Yetkilendirme ilkesi tanımlamak için Azure Key Vault'u nasıl kullanacağınızı göreceksiniz ve gizli dizi bilgilerini okumak için kimliği doğrulanmış bir kimliği etkinleştireceksiniz.

Yönetilen kimlikler

Önceki bir ünitede Azure desteği sistem tarafından atanan yönetilen kimlikler ve kullanıcı tarafından atanan yönetilen kimlikler olduğunu öğrendinsiniz. Azure, sistem tarafından atanan yönetilen kimliği oluşturur ve yönetir. Belirli bir kaynağa yakından bağlıdır. Örneğin, sistem tarafından atanan yönetilen kimliğe sahip bir VM oluşturursanız Azure, kimliği otomatik olarak oluşturur. Azure, kimliği sanal makine ile ilişkilendirir. Sanal makine silinirse kimlik de silinir.

Kullanıcı tarafından atanan yönetilen kimlikler tüm kaynaklardan bağımsızdır. Kullanıcı tarafından atanan yönetilen kimliği el ile oluşturur, ardından bunu stok izleme uygulamanız gibi bir kaynağa veya hizmete atarsınız. Uygulama çalıştırıldığında, kullanıcı tarafından atanan yönetilen kimliği kullanır. Bu kimliğe, uygulamanın erişmesi gereken Azure kaynakları için erişim hakları atarsınız. Uygulamanızı birden çok sanal makineye dağıtırken bu yaklaşımı kullanabilirsiniz. Uygulama, her VM için sistem tarafından atanan yönetilen kimliği ayarlamak yerine bu kullanıcı tarafından atanan yönetilen kimliği kullanır.

Kullanıcı tarafından atanan yönetilen kimlik oluşturma ve yönetme

Kullanıcı tarafından atanan yönetilen kimliği Azure portalında veya komut isteminden oluşturabilirsiniz. Aşağıdaki komut Azure CLI'yi kullanır:

az identity create \
  --name <identity name>
  --resource-group <resource group>

Sistem tarafından atanan yönetilen kimlikler de dahil olmak üzere kimlik listesini görüntülemek için aşağıdaki komutu çalıştırın. Kimliğinizin sorumlu kimliğini not alın. Azure ayrıcalıkları atamak ve doğrulamak için bu kimliği kullanır.

az identity list \
  --resource-group <resource group>

Bir kimlik oluşturduktan sonra kimliği kaynaklarınızla ilişkilendirmek için sorumlu kimliğini kullanabilirsiniz.

Kimliği bir Azure işlev uygulamasıyla kullanmak için aşağıdaki komutu çalıştırın:

az functionapp identity assign \
  --name <function app name> \
  --resource-group <resource group> \
  --role <principal id>

İşlev uygulaması, çalıştırmak için bu kimliği kullanır. Kimliğin kullanımına sunulan kaynaklara erişebilir.

Gerekli komutlar bir kaynaktan diğerine değişiklik gösterir. Örneğin, kimliğe Azure Key Vault'tan anahtarları okuma ve listeleme olanağı vermek için aşağıdaki komutu çalıştırın:

az keyvault set-policy \
    --name <key vault name> \
    --object-id <principal id> \
    --secret-permissions get list

Kullanıcı tarafından atanan yönetilen kimliği silmek için aşağıdaki komutu çalıştırın:

az identity delete \
  --name <identity name>
  --resource-group <resource group>

Azure Key Vault ile yönetilen kimlik kullanma

DefaultAzureCredential sağlayıcısı, uygulamamız Azure'a dağıtıldığında kimlik doğrulaması için yönetilen kimlikleri kullanmanıza ve geliştirme sırasında yerel geliştirici kimlik bilgilerini kullanmanıza olanak tanır. DefaultAzureCredential'ı kullanmak için Azure.Identity paketini yüklemeniz gerekir:

dotnet install Azure.Identity

kullanarak DefaultAzureCredentialartık kimliği doğrulanmış SecretClientbir oluşturabiliriz.

var client = new SecretClient(new Uri(keyVaultUrl), new DefaultAzureCredential());

İstemcinizi oluşturduktan sonra adlandırılmış bir gizli dizi alacaksınız.

KeyVaultSecret secretWithValue = await client.GetSecretAsync(secret.Name).ConfigureAwait(false);