Ekinlikler
Microsoft Learn Sınaması'na katılın
19 Kas 23 - 10 Oca 23
Ignite Edition - Microsoft Azure'da beceriler geliştirin ve 10 Ocak'a kadar dijital rozet kazanı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 depolama, anahtar kasası veya bilişsel hizmetler gibi bir Azure kaynağına erişmesi gerektiğinde, uygulamanın Kimliğinin Azure'da doğrulanması 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, .NET için Azure SDK'sını kullanırken bir uygulamanın Azure'da kimliğini doğrulamak için önerilen yaklaşımlar açıklanmaktadır.
Uygulamaların Azure kaynaklarında kimlik doğrulaması yaparken bağlantı dizesi yerine belirteç tabanlı kimlik doğrulaması kullanması önerilir. .NET için Azure SDK 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 sunucuya dağıtıldığında uygulamaların Azure kaynaklarında sorunsuz bir şekilde kimlik doğrulaması gerçekleştirmesine 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 çalıştırıldığı yere bağlıdır ve aşağıdaki diyagramda gösterilmiştir.
DefaultAzureCredential
Azure SDK tarafından sağlanan sınıf, uygulamaların çalıştırılan 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ırabilirsiniz ve DefaultAzureCredential
bu kimlik doğrulama yöntemini otomatik olarak algılar ve kullanırsınız. kullanımı DefaultAzureCredential
, farklı ortamlarda farklı kimlik doğrulama yöntemlerini kullanmak için koşullu mantığı veya özellik bayraklarını el ile kodlamak yerine tercih edilmelidir.
Sınıfı kullanmayla ilgili ayrıntılar, bu makalenin DefaultAzureCredential
devamında Uygulamada kullanma DefaultAzureCredential
bölümünde ele alınmıştır.
Azure için uygulama oluştururken bağlantı dizesi kullanımı üzerinden belirteç tabanlı kimlik doğrulaması kesinlikle önerilir. Belirteç tabanlı kimlik doğrulaması, bağlantı dizesi kimlik doğrulamasına göre aşağıdaki avantajları sunar.
bağlantı dizesi 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 SDK'da 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ılacağı ortam başına benzersiz bir uygulama kimliği atanmalıdır. Azure'da bir uygulama kimliği, Azure'da uygulamaları tanımlamayı ve kimlik doğrulamayı amaçlayan özel bir güvenlik sorumlusu türü olan hizmet sorumlusuylatemsil 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 Uygulaması Hizmetinde barındırılan bir .NET web uygulamasına bir 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) bir Uygulama hizmet sorumlusu kullanmalı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, şirket içinde barındırılan ve Azure Blob Depolama kullanan 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 tüm ç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. |
Yerel geliştirme sırasında bir uygulama geliştiricinin iş istasyonunda çalıştırıldığında, yine de uygulama tarafından kullanılan tüm Azure hizmetlerinde kimlik doğrulaması yapması gerekir. 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ılacak ayrılmış uygulama hizmet sorumlusu nesneleri oluşturma | 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ıştıracağı izinleri doğru bir şekilde çoğaltmaz. |
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.
Kimlik bilgilerinin arandığı DefaultAzureCredential
sıra ve konumlar DefaultAzureCredential konumunda bulunur.
uygulamasını uygulamak DefaultAzureCredential
için önce ve isteğe bağlı olarak Microsoft.Extensions.Azure
paketlerini uygulamanıza ekleyinAzure.Identity
. Bunu komut satırını veya NuGet Paket Yöneticisi kullanarak yapabilirsiniz.
Uygulama projesi dizininde tercihinize göre bir terminal ortamı açın ve aşağıdaki komutu girin.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Azure hizmetlerine genellikle SDK'dan karşılık gelen 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 dosyaya kaydedilmelidir Program.cs
. Program.cs
içinde, ve hizmetinizi DefaultAzureCredential
doğru şekilde ayarlamak için aşağıdaki adımları izleyin.
Azure.Identity
ve Microsoft.Extensions.Azure
ad alanlarını using deyimine ekleyin.DefaultAzureCredential
bir örneğini UseCredential
geçirin.Bunun bir örneği aşağıdaki kod kesiminde gösterilmiştir.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
Alternatif olarak, aşağıda görüldüğü gibi ek Azure kayıt yöntemlerinin yardımı olmadan hizmetlerinizde daha doğrudan kullanabilirsiniz DefaultAzureCredential
.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Yukarıdaki kod yerel geliştirme sırasında yerel iş istasyonunuzda çalıştırıldığında, yerel geliştirme sırasında uygulamanın Kimliğini Azure kaynaklarına doğrulamak için kullanılabilen bir geliştirici kimlik bilgileri kümesi için bir uygulama hizmet sorumlusunun veya Visual Studio, VS Code, Azure CLI veya Azure PowerShell'in ortam değişkenlerine bakar.
Azure'a dağıtıldığında bu 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.
Dahili olarak, DefaultAzureCredential
Azure kaynaklarında uygulamaların kimliğini doğrulamak için bir kimlik bilgisi sağlayıcıları zinciri uygular. Her kimlik bilgisi sağlayıcısı, bu tür kimlik bilgilerinin uygulama için yapılandırılıp yapılandırılmadığını algılayabilir. DefaultAzureCredential
sırayla her sağlayıcıyı denetler ve kimlik bilgilerinin yapılandırıldığı ilk sağlayıcının kimlik bilgilerini kullanır.
Kimlik bilgilerinin arandığı DefaultAzureCredential
sıra ve konumlar DefaultAzureCredential konumunda bulunur.
Kimlik bilgisi türü | Açıklama |
---|---|
Uygulama hizmet sorumlusu | DefaultAzureCredential uygulama hizmet sorumlusunun (uygulama kullanıcısı) uygulama için ayarlandığını belirlemek üzere bir dizi ortam değişkeni okur. Öyleyse, DefaultAzureCredential uygulamanın kimliğini Azure'da doğrulamak için bu değerleri kullanır.Bu yöntem genellikle sunucu ortamlarında kullanılır, ancak yerel olarak geliştirirken de kullanılabilir. |
Yönetilen Kimlik | Uygulama Yönetilen Kimlik etkin bir Azure konağına dağıtılırsa, DefaultAzureCredential bu Yönetilen Kimliği kullanarak uygulamanın kimliğini Azure'da doğrular. Yönetilen Kimlik kullanarak kimlik doğrulaması, bu belgenin Sunucu ortamlarında kimlik doğrulaması bölümünde açıklanmıştır.Bu yöntem yalnızca bir uygulama Azure'da Azure Uygulaması Hizmeti, Azure İşlevleri veya Azure Sanal Makineler gibi bir hizmet kullanılarak barındırıldığında kullanılabilir. |
Visual Studio | Geliştirici, Visual Studio'da oturum açarak Azure'da kimlik doğrulaması yapmışsa, DefaultAzureCredential aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrular. |
Visual Studio Code | Geliştirici, Visual Studio Code Azure Hesabı eklentisini kullanarak Azure'da kimlik doğrulaması yapmışsa, DefaultAzureCredential aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrular. |
Azure CLI | Bir geliştirici Azure CLI'daki komutu kullanarak az login Azure'da kimlik doğrulaması yapmışsa, DefaultAzureCredential aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrular. |
Azure PowerShell | Bir geliştirici Azure PowerShell'den cmdlet'ini Connect-AzAccount kullanarak Azure'da kimlik doğrulaması yapmışsa, DefaultAzureCredential aynı hesabı kullanarak uygulamanın kimliğini Azure'da doğrular. |
Etkileşimli | Etkinleştirilirse, DefaultAzureCredential geçerli sistemin varsayılan tarayıcısı aracılığıyla geliştiricinin kimliğini etkileşimli olarak doğrular. Varsayılan olarak, bu seçenek devre dışıdır. |
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
Microsoft Learn Sınaması'na katılın
19 Kas 23 - 10 Oca 23
Ignite Edition - Microsoft Azure'da beceriler geliştirin ve 10 Ocak'a kadar dijital rozet kazanın!
Hemen kaydolun