Geliştirici hesaplarını kullanarak yerel geliştirme sırasında Azure hizmetlerinde .NET uygulamalarının kimliğini doğrulama
Geliştiricilerin yerel iş istasyonlarında bulut uygulamalarının hatalarını ayıklaması ve test etmeleri gerekir. Bir uygulama yerel geliştirme sırasında bir geliştiricinin iş istasyonunda çalıştığında, uygulama tarafından kullanılan tüm Azure hizmetlerinde kimlik doğrulaması yapmaya devam etmelidir. Bu makalede, yerel geliştirme sırasında uygulamanın Kimliğini Azure'da doğrulamak için bir geliştiricinin Azure kimlik bilgilerinin nasıl kullanılacağı ele alınır.
Bir uygulamanın yerel geliştirme sırasında geliştiricinin Azure kimlik bilgilerini kullanarak Azure'da kimlik doğrulaması yapması için geliştiricinin aşağıdaki geliştirici araçlarından birinden Azure'da oturum açması gerekir:
- Visual Studio
- Azure CLI
- Azure Geliştirici CLI
- Azure PowerShell
Azure Kimlik kitaplığı, geliştiricinin bu araçlardan birinden oturum açtığını algılayabilir. Kitaplık daha sonra Microsoft Entra erişim belirtecini araç aracılığıyla edinerek uygulamanın oturum açmış kullanıcı olarak Azure'da kimliğini doğrulayabilir.
Geliştiricilerin mevcut Azure hesaplarından yararlandığından, geliştirme ekibi için bu yaklaşımı ayarlamak en kolay yöntemdir. Ancak, bir geliştirici hesabının büyük olasılıkla uygulama için gerekenden daha fazla izni vardır ve bu nedenle uygulamanın üretim ortamında çalıştırdığı izinleri aşmış olur. Alternatif olarak, yerel geliştirme sırasında kullanmak üzere uygulama hizmet sorumluları oluşturabilirsiniz. Bu sorumluların kapsamı yalnızca uygulamanın ihtiyaç duyduğu erişime sahip olacak şekilde ayarlanabilir.
1 - Yerel geliştirme için Microsoft Entra grubu oluşturma
Bir uygulama üzerinde çalışan neredeyse her zaman birden çok geliştirici olduğundan, yerel geliştirmede uygulamanın ihtiyaç duyduğu rolleri (izinleri) kapsüllemek için bir Microsoft Entra grubu önerilir. Bu yaklaşım aşağıdaki avantajları sunar:
- Roller grup düzeyinde atandığından her geliştiricinin aynı rollere atandığından emin olur.
- Uygulama için yeni bir rol gerekiyorsa, yalnızca uygulamanın grubuna eklenmesi gerekir.
- Ekibe yeni bir geliştirici katılırsa, gruba eklendikten sonra uygulama üzerinde çalışmak için gerekli izinleri alır.
Geliştirme ekibiniz için mevcut bir Microsoft Entra grubunuz varsa bu grubu kullanabilirsiniz. Aksi takdirde, bir Microsoft Entra grubu oluşturmak için aşağıdaki adımları tamamlayın.
Not
Varsayılan olarak, Microsoft Entra 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
Ardından, uygulamanızın hangi kaynaklar üzerinde hangi rollere (izinlere) ihtiyacı olduğunu belirleyin ve bu rolleri uygulamanıza atayın. Bu örnekte roller, 1. adımda oluşturulan Microsoft Entra grubuna atanır. Gruplara kaynak, kaynak grubu veya abonelik kapsamında bir rol atanabilir. Bu örnekte, çoğu uygulama tüm Azure kaynaklarını tek bir kaynak grubunda gruplandırdığından kaynak grubu, kapsam rollerinin nasıl atandığı gösterilmektedir.
3 - Geliştirici araçlarını kullanarak Azure'da oturum açma
Ardından, çeşitli geliştirici araçlarından birini kullanarak Azure'da oturum açın. Kimlik doğrulaması yaptığınız hesap, daha önce oluşturup yapılandırdığınız Microsoft Entra grubunda da bulunmalıdır.
Seçenekler iletişim kutusunu açmak için Araçlar>Seçenekleri'ne gidin.
En üstteki Arama Seçenekleri kutusuna, kullanılabilir seçenekleri filtrelemek için Azure yazın.
Azure Hizmet Kimlik Doğrulaması'nın altında Hesap Seçimi'ni seçin.
Hesap seçin altındaki açılan menüyü seçin ve bir Microsoft Hesabı eklemeyi seçin. Bir hesap seçmenizi isteyen bir pencere açılır. İstediğiniz Azure hesabınızın kimlik bilgilerini girin ve ardından onayı seçin.
Seçenekler iletişim kutusunu kapatmak için Tamam'ı seçin.
4 - Uygulamanızda DefaultAzureCredential uygulama
DefaultAzureCredential , Microsoft Entra'da kimlik doğrulaması yapmak için düşünceli, sıralı bir mekanizma dizisidir. Her kimlik doğrulama mekanizması TokenCredential sınıfından türetilen bir sınıftır ve kimlik bilgisi olarak bilinir. Çalışma zamanında, DefaultAzureCredential
ilk kimlik bilgilerini kullanarak kimlik doğrulamayı dener. Bu kimlik bilgisi bir erişim belirteci alamazsa, bir erişim belirteci başarıyla alınana kadar dizideki bir sonraki kimlik bilgisi denenir ve bu şekilde devam edilir. Bu şekilde, uygulamanız ortama özgü kod yazmadan farklı ortamlarda farklı kimlik bilgilerini kullanabilir.
Kimlik bilgilerinin arandığı DefaultAzureCredential
sıra ve konumlar DefaultAzureCredential konumunda bulunur.
kullanmak DefaultAzureCredential
için Azure.Identity ve isteğe bağlı olarak Microsoft.Extensions.Azure paketlerini uygulamanıza ekleyin:
Seçtiğiniz bir terminalde uygulama projesi dizinine gidin ve aşağıdaki komutları çalıştırın:
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Azure hizmetlerine çeşitli Azure SDK istemci kitaplıklarından özel istemci sınıfları kullanılarak erişilir. Bu sınıflar ve kendi özel hizmetleriniz, uygulamanıza bağımlılık ekleme yoluyla erişilebilmeleri için kaydedilmelidir. içinde Program.cs
, bir istemci sınıfını ve DefaultAzureCredential
kaydetmek için aşağıdaki adımları tamamlayın:
Azure.Identity
yönergeleri aracılığıylausing
veMicrosoft.Extensions.Azure
ad alanlarını ekleyin.- İlgili
Add
ön ekli uzantı yöntemini kullanarak Azure hizmet istemcisini kaydedin. - yönteminin
DefaultAzureCredential
bir örneğiniUseCredential
geçirin.
Örneğin:
using Microsoft.Extensions.Azure;
using Azure.Identity;
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.AddBlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"));
clientBuilder.UseCredential(new DefaultAzureCredential());
});
Bunun bir alternatifi UseCredential
de doğrudan örnekleme DefaultAzureCredential
yapmaktır:
using Azure.Identity;
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Yukarıdaki kod yerel geliştirme iş istasyonunuzda çalıştırıldığında, bir uygulama hizmet sorumlusunun ortam değişkenlerinde veya bir dizi geliştirici kimlik bilgisi için Visual Studio gibi yerel olarak yüklenen geliştirici araçlarında arar. Her iki yaklaşım da yerel geliştirme sırasında azure kaynaklarında uygulamanın kimliğini doğrulamak için kullanılabilir.
Azure'a dağıtıldığında, aynı kod uygulamanızın kimliğini diğer Azure kaynaklarda da doğrulayabilir. DefaultAzureCredential
diğer hizmetlerde otomatik olarak kimlik doğrulaması yapmak için ortam ayarlarını ve yönetilen kimlik yapılandırmalarını alabilir.