JavaScript için Azure SDK ile Azure'da barındırılan uygulamaların Azure kaynaklarına kimliğini doğrulama
Bir uygulama Azure'da barındırıldığında (Azure Uygulaması Hizmeti, Azure Sanal Makineler veya Azure Container Instances gibi bir hizmet kullanıldığında), azure kaynaklarında bir uygulamanın kimliğini doğrulamak için önerilen yaklaşım yönetilen kimlik kullanmaktır.
Yönetilen kimlik, uygulamanızın gizli dizi (anahtar bağlantı dizesi gibi) kullanmaya gerek kalmadan diğer Azure kaynaklarına bağlanması için bir kimlik sağlar. Azure, uygulamanızın kimliğini ve bağlanmasına izin verilen kaynakları dahili olarak bilir. Azure, kimlik doğrulama gizli dizilerini yönetmek (oluşturmak veya döndürmek) zorunda kalmadan uygulamanın diğer Azure kaynaklarına bağlanmasına izin vermek üzere otomatik olarak Microsoft Entra belirteçlerini almak için bu bilgileri kullanır.
Yönetilen kimlik türleri
İki tür yönetilen kimlik vardır:
- Sistem tarafından atanan yönetilen kimlikler - tek Azure kaynağı
- Kullanıcı tarafından atanan yönetilen kimlikler - birden çok Azure kaynağı
Bu makale, bir uygulama için sistem tarafından atanan yönetilen kimliği etkinleştirme ve kullanma adımlarını kapsar. Kullanıcı tarafından atanan yönetilen kimlik kullanmanız gerekiyorsa, kullanıcı tarafından atanan yönetilen kimliğin nasıl oluşturulacağını görmek için Kullanıcı tarafından atanan yönetilen kimlikleri yönetme makalesine bakın.
Tek kaynak için sistem tarafından atanan yönetilen kimlikler
Sistem tarafından atanan yönetilen kimlikler tarafından sağlanır ve doğrudan bir Azure kaynağına bağlanır. Bir Azure kaynağında yönetilen kimliği etkinleştirdiğinizde, bu kaynak için sistem tarafından atanan bir yönetilen kimlik alırsınız. Azure kaynağının yaşam döngüsüne bağlıdır. Kaynak silindiğinde Azure sizin için kimliği otomatik olarak siler. Tek yapmanız gereken kodunuzu barındıran Azure kaynağı için yönetilen kimliği etkinleştirmek olduğundan, bu kullanımı en kolay yönetilen kimlik türüdür.
Birden çok kaynak için kullanıcı tarafından atanan yönetilen kimlikler
Kavramsal olarak bu kimlik tek başına bir Azure kaynağıdır. Bu en sık, çözümünüzde aynı kimliği ve aynı izinleri paylaşması gereken birden çok Azure kaynağı üzerinde çalışan birden çok iş yükü olduğunda kullanılır. Örneğin, çözümünüz birden çok App Service ve sanal makine örneğinde çalışan bileşenlere sahipse ve bunların tümünün aynı Azure kaynakları kümesine erişmesi gerekiyorsa, bu kaynaklar arasında kullanıcı tarafından atanan yönetilen kimlik oluşturma ve kullanma mantıklı olacaktır.
1 - Sistem tarafından atanan: Barındırılan uygulamada etkinleştirme
İlk adım, uygulamanızı barındıran Azure kaynağında yönetilen kimliği etkinleştirmektir. Örneğin, Azure Uygulaması Hizmeti kullanarak bir Django uygulaması barındırlıyorsanız, bu App Service web uygulaması için yönetilen kimliği etkinleştirmeniz gerekir. Uygulamanızı barındırmak için bir sanal makine kullanıyorsanız VM'nizin yönetilen kimliği kullanmasını sağlarsınız.
Yönetilen kimliğin Azure portalı veya Azure CLI kullanarak Bir Azure kaynağı için kullanılmasını etkinleştirebilirsiniz.
2 - Yönetilen kimliğe rol atama
Ardından, uygulamanızın hangi rollere (izinlere) ihtiyacı olduğunu belirlemeniz ve yönetilen kimliği Azure'daki bu rollere atamanız gerekir. Yönetilen kimliğe kaynak, kaynak grubu veya abonelik kapsamında roller atanabilir. Bu örnekte, çoğu uygulama tüm Azure kaynaklarını tek bir kaynak grubunda gruplandırdığından kaynak grubu kapsamında rollerin nasıl atandığı gösterilmektedir.
3 - Uygulamanızda DefaultAzureCredential uygulama
DefaultAzureCredential
sınıfı, yönetilen kimliğin kullanıldığını otomatik olarak algılar ve yönetilen kimliği kullanarak diğer Azure kaynaklarında kimlik doğrulaması yapar. JavaScript kimlik doğrulaması için Azure SDK'ya genel bakış makalesinde açıklandığı gibi, DefaultAzureCredential
birden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında kullanılan kimlik doğrulama yöntemini belirler. Bu şekilde uygulamanız, ortama özgü kod uygulamadan farklı ortamlarda farklı kimlik doğrulama yöntemleri kullanabilir.
İlk olarak uygulamanıza @azure/kimlik paketini ekleyin.
npm install @azure/identity
Ardından, uygulamanızda Azure SDK istemci nesnesi oluşturan tüm JavaScript kodları için şunları yapmak istiyorsunuz:
- sınıfını
DefaultAzureCredential
modülden içeri aktarın@azure/identity
. - Bir
DefaultAzureCredential
nesne oluşturun. DefaultAzureCredential
Nesnesini Azure SDK istemci nesnesi oluşturucusna geçirin.
Bunun bir örneği aşağıdaki kod kesiminde gösterilmiştir.
// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);
Yukarıdaki kod yerel geliştirme sırasında yerel iş istasyonunuzda çalıştırıldığında DefaultAzureCredential() SDK yöntemi, yerel geliştirme sırasında uygulamanın Kimliğini Doğrulamak için kullanılabilecek bir geliştirici kimlik bilgileri kümesi için bir uygulama hizmet sorumlusunun veya VS Code, Azure CLI veya Azure PowerShell'in ortam değişkenlerine bakın. Bu şekilde, bu kod hem yerel geliştirme sırasında hem de Azure'a dağıtıldığında uygulamanızın Kimliğini Azure kaynaklarına doğrulamak için kullanılabilir.