Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bulut uygulamaları geliştirirken geliştiriciler genellikle kodlarını Azure'a dağıtmadan önce yerel olarak derler, test eder ve hatalarını ayıklar. Ancak yerel geliştirme sırasında bile uygulamanın Key Vault, Depolama veya veritabanları gibi etkileşimde bulunduğu tüm Azure hizmetleriyle kimlik doğrulaması yapması gerekir.
Bu makalede, uygulamanızı yerel geliştirme sırasında kimlik doğrulaması için geliştiricinin Azure kimlik bilgilerini kullanacak şekilde yapılandırma adımları gösterilmektedir. Bu yaklaşım, gizli dizileri eklemeden veya ortama özgü mantık yazmadan sorunsuz ve güvenli bir geliştirme deneyimi sağlar.
Geliştirici hesaplarını kullanarak yerel geliştirme kimlik doğrulamasına genel bakış
Python için Azure Kimlik kitaplığını kullanan bir uygulama geliştirirken, yerel geliştirme sırasında geliştiricinin Azure hesabını kullanarak Azure hizmetlerinde kimlik doğrulaması yapabilirsiniz. Bu yaklaşım genellikle yerel geliştirme sırasında Azure hizmetlerinde kimlik doğrulaması yapmanın en kolay yoludur çünkü hizmet sorumluları veya gizli dizileri oluşturma ve yönetmeyi gerektirmez.
Bir uygulamanın yerel geliştirme sırasında geliştiricinin kendi Azure kimlik bilgilerini kullanarak Azure'da kimlik doğrulaması yapmasını sağlamak için, geliştiricinin önce desteklenen komut satırı araçlarından birini kullanarak oturum açması gerekir:
- Azure CLI (
az login) - Azure Geliştirici CLI'sı (
azd login) - Azure PowerShell (
Connect-AzAccount)
Oturum açıldıktan sonra Python için Azure Kimlik kitaplığı etkin oturumu otomatik olarak algılayabilir ve kimlik bilgileri önbelleğinden gerekli belirteçleri alabilir. Bu özellik, uygulamanın ek yapılandırmaya veya sabit kodlanmış gizli dizilere gerek kalmadan oturum açmış kullanıcı olarak Azure hizmetlerinde kimlik doğrulaması yapmasına olanak tanır.
Bu davranış, yerel ortamda kullanılırken CLI tabanlı kimlik bilgilerine saydam bir şekilde geri dönen DefaultAzureCredential etkinleştirilir.
Bir geliştiricinin oturum açmış Azure kimlik bilgilerini kullanmak, yerel geliştirme için en kolay kurulumdur. Her ekip üyesinin mevcut Azure hesabından yararlanarak ek yapılandırma gerektirmeden Azure hizmetlerine sorunsuz erişim sağlar.
Ancak geliştirici hesapları genellikle uygulamanın üretim ortamında sahip olması gerekenden daha geniş izinlere sahiptir. Bu daha geniş izinler testte tutarsızlıklara yol açabilir veya istemeden uygulamanın üretim ortamında gerçekleştirme yetkisi olmayan işlemlere izin verebilir. Üretim izinlerini yakından yansıtmak ve güvenlik duruşunu geliştirmek için bunun yerine yerel geliştirme için uygulamaya özgü hizmet sorumluları oluşturabilirsiniz. Bu kimlikler:
- Yalnızca uygulamanın ihtiyaç duyduğu roller ve izinler atanabilir
- En az ayrıcalık için destek ilkesi
- Ortamlar arasında erişimle ilgili davranışın tutarlı testini sunma
Geliştiriciler, yerel ortamı ortam değişkenleri aracılığıyla hizmet sorumlusunu kullanacak şekilde yapılandırabilir ve DefaultAzureCredential bunu otomatik olarak algılar. Daha fazla bilgi için hizmet sorumlularını kullanarak yerel geliştirme sırasında Azure hizmetlerinde Python uygulamalarının kimliğini doğrulama makalesine bakın.
1 - Yerel geliştirme için Microsoft Entra güvenlik grubu oluşturma
Çoğu geliştirme senaryosunda, birden çok geliştirici aynı uygulamaya katkıda bulunur. Erişim denetimini kolaylaştırmak ve ekip genelinde tutarlı izinler sağlamak için öncelikle uygulamanın yerel geliştirme gereksinimlerine özel olarak bir Microsoft Entra güvenlik grubu oluşturmanızı öneririz.
Azure rollerini tek tek kullanıcılara atamak yerine grup düzeyinde atamak çeşitli temel avantajlar sunar:
Tutarlı Rol Atamaları
Gruptaki tüm geliştiriciler aynı rolleri ve izinleri otomatik olarak devralarak tekdüzen bir geliştirme ortamı sağlar.
Basitleştirilmiş Rol Yönetimi
Uygulama yeni bir rol gerektirdiğinde, gruba yalnızca bir kez eklemeniz gerekir. Kullanıcı izinlerini tek tek güncelleştirmeniz gerekmez.
Kolay Başlangıç
Yeni geliştiricilere gerekli izinler yalnızca gruba eklenerek verilebilir. Elle rol ataması gerekli değildir.
Kuruluşunuzun geliştirme ekibi için uygun bir Microsoft Entra güvenlik grubu zaten varsa, yeniden kullanabilirsiniz. Aksi takdirde, özellikle uygulama için yeni bir grup oluşturabilirsiniz.
Microsoft Entra ID'de bir güvenlik grubu oluşturmak için az ad group createe Azure CLI komutunu kullanın.
Bu komut aşağıdaki parametreleri gerektirir:
--display-name: Grup için kullanıcı dostu bir ad
--mail-nickname: E-posta ve iç başvuru için kullanılan benzersiz tanımlayıcı
Grup adını uygulama adına dayandırmanızı ve amacını açıkça belirtmek için -local-dev gibi bir sonek eklemenizi öneririz.
#!/bin/bash
az ad group create \
--display-name MyDisplay \
--mail-nickname MyDisplay \
--description "<group-description>"
# PowerShell syntax
az ad group create `
--display-name MyDisplay `
--mail-nickname MyDisplay `
--description "<group-description>"
az ad group create komutunu çalıştırdıktan sonra, komut çıkışından id özelliğinin değerini kopyalayın. Bu makalenin sonraki adımlarında rol atamak için Microsoft Entra güvenlik grubuna ihtiyacınız vardır Object ID .
Object ID öğesini daha sonra yeniden almak için aşağıdaki az ad group show komutunu kullanın: az ad group show --group "my-app-local-dev" --query id --output tsv.
Gruba bir kullanıcı eklemek için öncelikle eklemek istediğiniz Azure kullanıcı hesabının değerini almanız Object ID gerekir. Belirli bir kullanıcıyı görünen adına göre aramak için parametresiyle --filter komutunu kullanın.
--query parametresi, çıkışın ilgili alanlarla sınırlandırılmasında yardımcı olur:
#!/bin/bash
az ad user list \
--filter "startswith(displayName, 'Bob')" \
--query "[].{objectId:id, displayName:displayName}" \
--output table
# PowerShell syntax
az ad user list `
--filter "startswith(displayName, 'Bob')" `
--query "[].{objectId:id, displayName:displayName}" `
--output table
Kullanıcının kullanıcısına Object ID sahip olduktan sonra , az ad group member add komutunu kullanarak bunları gruba ekleyebilirsiniz .
#!/bin/bash
az ad group member add \
--group <group-name> \
--member-id <object-id>
# PowerShell syntax
az ad group member add `
--group <group-name> `
--member-id <object-id>
Not
Varsayılan olarak, Microsoft Entra güvenlik gruplarının oluşturulması bir dizindeki belirli ayrıcalıklı rollerle sınırlıdır. Grup oluşturamıyorsanız dizininizin yöneticisine başvurun. Mevcut bir gruba üye ekleyemiyorsanız, grup sahibine veya dizin yöneticisine başvurun. Daha fazla bilgi edinmek için bkz . Microsoft Entra gruplarını ve grup üyeliğini yönetme.
2 - Microsoft Entra grubuna rol atama
Microsoft Entra güvenlik grubunuzu oluşturduktan ve üye ekledikten sonra, bir sonraki adım uygulamanızın hangi rolleri (izinleri) gerektirdiğini belirlemek ve bu rolleri uygun kapsamda gruba atamaktır.
Gerekli Rolleri Belirleme
Uygulamanızın çalışması için gereken rolleri belirleyin. Bazı yaygın örnekler aşağıdakileri içermektedir:
- Key Vault Gizli Bilgiler Kullanıcısı – Azure Key Vault'tan gizli bilgileri okumak için
- Bir Depolama Kuyruğu Veri Katkıcısı – Azure Kuyruk Depolama'ya mesaj göndermek amacıyla
Daha fazla seçenek için yerleşik rol tanımlarına bakın.
Rol Ataması için Kapsam Seçme
Roller farklı kapsamlarda atanabilir:
- Kaynak düzeyi (örneğin, tek bir Key Vault veya Depolama hesabı)
- Kaynak grubu düzeyi (çoğu uygulama için önerilir)
- Abonelik düzeyi (dikkatli kullanın— en geniş erişim)
Bu örnekte, tüm uygulama kaynakları tek bir kaynak grubu altında gruplandırıldığında tipik olan kaynak grubu kapsamında roller atarız.
Azure'da bir kullanıcıya, gruba veya uygulama hizmet sorumlusuna bir rol, az role assignment create komutu kullanılarak atanır.
Object ID ile bir grup belirleyebilirsiniz.
#!/bin/bash
az role assignment create --assignee <objectId> \
--scope /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName> \
--role "<roleName>"
# PowerShell syntax
az role assignment create `
--assignee <objectId> `
--scope /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName> `
--role "<roleName>"
Atanabilecek rol adlarını almak için az role definition list komutunu kullanın.
#!/bin/bash
az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table
# PowerShell syntax
az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table
Belirli bir kaynak grubundaki tüm depolama hesapları için Azure Depolama blob kapsayıcılarına ve verilerine okuma, yazma ve silme erişimi sağlamak amacıyla Microsoft Entra güvenlik grubunuza Depolama Blobu Veri Katkıda Bulunan rolünü atayın.
#!/bin/bash
az role assignment create --assignee bbbbbbbb-1111-2222-3333-cccccccccccc \
--scope /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-python-sdk-auth-example \
--role "Storage Blob Data Contributor"
# PowerShell syntax
az role assignment create --assignee bbbbbbbb-1111-2222-3333-cccccccccccc `
--scope /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-python-sdk-auth-example `
--role "Storage Blob Data Contributor"
Azure CLI kullanarak kaynak veya abonelik düzeyinde izin atama hakkında bilgi için Azure CLI kullanarak Azure rolleri atama makalesine bakın.
3 - Azure CLI, Azure PowerShell, Azure Geliştirici CLI'sını kullanarak veya tarayıcıda Azure'da oturum açma
Azure hesabınızla kimlik doğrulaması yapmak için aşağıdaki yöntemlerden birini seçin:
Geliştirici iş istasyonunuzda bir terminal açın ve Azure CLI'dan Azure'da oturum açın.
az login
4 - Uygulamanıza DefaultAzureCredential'i entegre edin
Azure SDK istemci nesnelerinin kimliğini Azure ile doğrulamak için uygulamanız paketteki DefaultAzureCredentialazure-identity sınıfını kullanmalıdır. Bu, hem yerel geliştirme hem de üretim dağıtımları için önerilen kimlik doğrulama yöntemidir.
Yerel bir geliştirme senaryosunda, DefaultAzureCredential kullanılabilir kimlik doğrulama kaynaklarını sırayla denetleyerek çalışır. Özellikle, aşağıdaki araçlarda etkin oturumları arar:
- Azure CLI (az login)
- Azure PowerShell (Connect-AzAccount)
- Azure Geliştirici CLI'sı (azd auth login)
Geliştirici bu araçlardan herhangi birini kullanarak Azure'da oturum açtıysa oturumu DefaultAzureCredential otomatik olarak algılar ve uygulamanın kimliğini Azure hizmetleriyle doğrulamak için bu kimlik bilgilerini kullanır. Bu, geliştiricilerin gizli dizileri depolamadan veya farklı ortamlar için kod değiştirmeden güvenli bir şekilde kimlik doğrulaması yapmasına olanak tanır.
Uygulamanıza azure.identity paketini ekleyerek başlayın.
pip install azure-identity
Ardından, uygulamanızda Azure SDK istemci nesnesi oluşturan tüm Python kodları için şunları yapmak istiyorsunuz:
-
DefaultAzureCredentialsınıfınıazure.identitymodülünden içeri aktarın. - Bir
DefaultAzureCredentialnesne oluşturun. -
DefaultAzureCredentialNesnesini Azure SDK istemci nesnesi oluşturucusna geçirin.
Aşağıdaki kod kesiminde bu adımlara bir örnek gösterilmiştir.
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
# Acquire a credential object
token_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
account_url="https://<my_account_name>.blob.core.windows.net",
credential=token_credential)