Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bir uygulamanın bir Azure kaynağına erişmesi gerektiğinde, uygulamanın Azure'da kimlik doğrulaması yapılması gerekir. Azure'a dağıtılan, şirket içinde dağıtılan veya yerel geliştirici iş istasyonunda geliştirme aşamasında olan tüm uygulamalar için bu durum geçerlidir. Bu makalede, Azure SDK istemci kitaplıklarını kullanırken Azure'da bir uygulamanın kimliğini doğrulamak için önerilen yaklaşımlar açıklanmaktadır.
Uygulamaların Azure kaynaklarında kimlik doğrulaması yaparken bağlantı dizeleri yerine belirteç tabanlı kimlik doğrulaması kullanması önerilir. Azure Kimlik kitaplığı belirteç tabanlı kimlik doğrulamasını destekleyen sınıflar sağlar ve uygulamanın yerel geliştirme aşamasında, Azure'a dağıtıldığında veya şirket içi bir sunucuya dağıtıldığında uygulamaların Azure kaynaklarında sorunsuz bir şekilde kimlik doğrulaması yapmalarına olanak sağlar.
Bir uygulamanın Azure kaynaklarında kimlik doğrulaması yapmak için kullanması gereken belirteç tabanlı kimlik doğrulaması türü, uygulamanın nerede çalıştığına bağlıdır ve aşağıdaki diyagramda gösterilmiştir:
Bir uygulama şu durumlarda olur:
Azure Identity kitaplığı tarafından sağlanan DefaultAzureCredential sınıfı, uygulamaların çalıştırıldığı ortama bağlı olarak farklı kimlik doğrulama yöntemleri kullanmasına olanak tanır. Bu, uygulamaların yerel geliştirmeden test ortamlarına, kod değişikliği olmadan üretime yükseltilmesini sağlar. Her ortam için uygun kimlik doğrulama yöntemini yapılandırdığınızda DefaultAzureCredential
bu kimlik doğrulama yöntemini otomatik olarak algılar ve kullanır.
DefaultAzureCredential
kullanımı, farklı ortamlarda farklı kimlik doğrulama yöntemlerini kullanmak için koşullu mantığı veya özellik bayraklarını el ile kodlamak yerine tercih edilmelidir.
DefaultAzureCredential
kullanma hakkındaki ayrıntılar DefaultAzureCredential
bir uygulamada kullanın.
Belirteç tabanlı kimlik doğrulaması, bağlantı dizeleriyle kimlik doğrulamasına göre aşağıdaki avantajları sunar:
Bağlantı dizelerinin kullanımı, üretim veya hassas verilere erişmeyen ilk kavram kanıtı uygulamaları veya geliştirme prototipleriyle sınırlı olmalıdır. Aksi takdirde, Azure kaynaklarında kimlik doğrulaması yapılırken Azure Kimlik kitaplığında bulunan belirteç tabanlı kimlik doğrulama sınıfları her zaman tercih edilmelidir.
Bir sunucu ortamında barındırılırken, her uygulamaya uygulamanın çalıştırıldığı ortam başına benzersiz bir uygulama kimliği atanmalıdır. Azure'da bir uygulama kimliği, uygulamaları tanımlamayı ve Azure'da kimlik doğrulamayı amaçlayan özel bir güvenlik sorumlusu türühizmet sorumlusuyla temsil edilir. Uygulamanız için kullanılacak hizmet sorumlusunun türü, uygulamanızın çalıştığı yere bağlıdır.
Kimlik doğrulama yöntemi | Açıklama |
---|---|
Azure'da barındırılan uygulamalar | Azure'da barındırılan uygulamalar Yönetilen Kimlik hizmet sorumlusu kullanmalıdır. Yönetilen kimlikler, Azure'da barındırılan bir uygulamanın kimliğini temsil etmek üzere tasarlanmıştır ve yalnızca Azure'da barındırılan uygulamalarla kullanılabilir. Örneğin, Azure App Service'te barındırılan bir .NET web uygulamasına yönetilen kimlik atanır. Ardından uygulamaya atanan Yönetilen Kimlik, uygulamanın kimliğini diğer Azure hizmetlerinde doğrulamak için kullanılır. |
Azure dışında barındırılan uygulamalar (örneğin, şirket içi uygulamalar) |
Azure hizmetlerine bağlanması gereken Azure dışında barındırılan uygulamalar (örneğin şirket içi uygulamalar) Uygulama hizmetleri yöneticisikullanmalıdır. Uygulama hizmet sorumlusu, Azure'daki uygulamanın kimliğini temsil eder ve uygulama kayıt işlemi aracılığıyla oluşturulur. Örneğin, Azure Blob Depolama'yı kullanan, yerinde barındırılan bir .NET web uygulaması düşünün. Uygulama kayıt işlemini kullanarak uygulama için bir Uygulama hizmet sorumlusu oluşturabilirsiniz. AZURE_CLIENT_ID , AZURE_TENANT_ID ve AZURE_CLIENT_SECRET , çalışma zamanında uygulama tarafından okunacak ortam değişkenleri olarak depolanır ve uygulamanın Uygulama hizmet sorumlusunu kullanarak Azure'da kimlik doğrulamasına izin verir.Azure dışında barındırılan uygulamalardan kimlik doğrulaması hakkında bilgi edinin |
Bir uygulama yerel geliştirme sırasında bir geliştiricinin iş istasyonunda çalıştırıldığında, uygulama tarafından kullanılan tüm Azure hizmetlerinde kimlik doğrulaması yapmaya devam etmelidir. Yerel geliştirme sırasında Azure'da uygulamaların kimliğini doğrulamaya yönelik iki ana strateji şunlardır:
Kimlik doğrulama yöntemi | Açıklama |
---|---|
Yerel geliştirme sırasında kullanılmak üzere ayrılmış uygulama hizmeti temsilcisi nesneleri oluşturun | Bu yöntemde, ayrılmış uygulama hizmet sorumlusu nesneleri yerel geliştirme sırasında kullanılmak üzere Uygulama kayıt işlemi kullanılarak ayarlanır. Hizmet sorumlusunun kimliği daha sonra yerel geliştirmede çalıştırıldığında uygulama tarafından erişilecek ortam değişkenleri olarak depolanır. Bu yöntem, yerel geliştirme sırasında geliştiriciler tarafından kullanılan hizmet sorumlusu nesnelerine uygulama için gereken belirli kaynak izinlerini atamanızı sağlar. Bu, uygulamanın yalnızca ihtiyaç duyduğu belirli kaynaklara erişmesini sağlar ve uygulamanın üretimde sahip olacağı izinleri çoğaltır. Bu yaklaşımın dezavantajı, bir uygulama üzerinde çalışan her geliştirici için ayrı hizmet sorumlusu nesneleri oluşturma gereksinimidir. |
Yerel geliştirme sırasında geliştiricinin kimlik bilgilerini kullanarak uygulamanın Kimliğini Azure'da doğrulama | Bu yöntemde bir geliştiricinin yerel iş istasyonunda Visual Studio, VS Code için Azure Araçları uzantısı, Azure CLI veya Azure PowerShell'den Azure'da oturum açması gerekir. Uygulama daha sonra geliştiricinin kimlik bilgilerine kimlik bilgisi deposundan erişebilir ve uygulamadan Azure kaynaklarına erişmek için bu kimlik bilgilerini kullanabilir. Bir geliştiricinin Azure hesabında yalnızca Visual Studio, VS Code veya Azure CLI'dan oturum açması gerektiğinden bu yöntem daha kolay kurulum avantajına sahiptir. Bu yaklaşımın dezavantajı, geliştirici hesabının büyük olasılıkla uygulama için gerekenden daha fazla izine sahip olmasıdır. Bu nedenle, bu yaklaşım, uygulamanın üretim ortamında çalışırken sahip olacağı izinleri doğru bir şekilde yansıtmaz. |
DefaultAzureCredential, Microsoft Entra ID'ye kimlik doğrulaması için belirlenmiş ve 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.
DefaultAzureCredential
kullanmak 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.
Program.cs
içinde, bir istemci sınıfını kaydetmek ve DefaultAzureCredential
için aşağıdaki adımları tamamlayın:
Azure.Identity
yönergeleri aracılığıyla Microsoft.Extensions.Azure
ve using
ad alanlarını ekleyin.Add
ön ekli uzantı yöntemini kullanarak Azure hizmet istemcisini kaydedin.DefaultAzureCredential
örneğini UseCredential
yöntemine geçirin.Mesela:
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());
});
UseCredential
'a bir alternatif, DefaultAzureCredential
'i doğrudan örneklemektir.
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.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunEğitim
Modül
Microsoft Kimlik Doğrulama Kitaplığı'nı kullanarak kimlik doğrulamasını uygulama - Training
Microsoft Kimlik Doğrulama Kitaplığı'nı kullanarak kimlik doğrulamasını uygulama
Sertifikasyon
Microsoft Sertifikalı: Kimlik ve Erişim Yöneticisi İş Ortağı - Certifications
Kimlik çözümlerini modernleştirmek, karma çözümleri uygulamak ve kimlik idaresini uygulamak için Microsoft Entra ID'nin özelliklerini gösterin.