.NET kullanarak Azure AI hizmetleri kimlik doğrulaması ve yetkilendirmesi
Azure Yapay Zeka Hizmetleri'ne yönelik uygulama isteklerinin kimliği doğrulanmalıdır. Bu makalede, .NET kullanarak Azure OpenAI ve diğer yapay zeka hizmetlerinde kimlik doğrulaması için kullanılabilecek seçenekleri keşfedersiniz. Bu kavramlar Anlam Çekirdeği SDK'sının yanı sıra Azure OpenAI gibi belirli hizmetlerden SDK'lar için de geçerlidir. Çoğu yapay zeka hizmeti, uygulama ve kullanıcıların kimliğini doğrulamak için iki birincil yol sunar:
- Anahtar tabanlı kimlik doğrulaması , gizli anahtar değerlerini kullanarak Azure hizmetine erişim sağlar. Bu gizli dizi değerleri bazen hizmete bağlı olarak API anahtarları veya erişim anahtarları olarak bilinir.
- Microsoft Entra ID , doğru kimliklerin farklı Azure kaynaklarına doğru erişim düzeyine sahip olduğundan emin olmak için kapsamlı bir kimlik ve erişim yönetimi çözümü sağlar.
İlerideki bölümlerde, ayrıntılı uygulama adımları yerine bu iki yaklaşım için kavramsal genel bakışlar sağlanır. Azure hizmetlerine bağlanma hakkında daha ayrıntılı bilgi için aşağıdaki kaynakları ziyaret edin:
Not
Bu makaledeki örnekler öncelikli olarak Azure OpenAI bağlantılarına odaklanır, ancak aynı kavramlar ve uygulama adımları doğrudan diğer birçok Azure yapay zeka hizmeti için de geçerlidir.
Anahtarları kullanarak kimlik doğrulaması
Erişim anahtarları, uygulamaların ve araçların hizmet tarafından sağlanan gizli dizi anahtarını kullanarak Azure OpenAI gibi bir Azure AI hizmetinde kimlik doğrulaması yapmalarına olanak sağlar. Azure portalı veya Azure CLI gibi araçları kullanarak gizli dizi anahtarını alın ve uygulama kodunuzu yapay zeka hizmetine bağlanacak şekilde yapılandırmak için kullanın:
builder.Services.AddAzureOpenAIChatCompletion(
"deployment-model",
"service-endpoint",
"service-key"); // Secret key
var kernel = builder.Build();
Anahtarları kullanmak basit bir seçenektir, ancak bu yaklaşım dikkatli kullanılmalıdır. Anahtarlar önerilen kimlik doğrulama seçeneği değildir, çünkü bunlar:
- en az ayrıcalık ilkesinitakip etmeyin. Bunları kimin kullandığından veya hangi görev için kullandığından bağımsız olarak yükseltilmiş izinler sağlar.
- Yanlışlıkla kaynak denetimine iade edilebilir veya güvenli olmayan konumlarda depolanabilir.
- Erişimi olmaması gereken taraflarla kolayca paylaşılabilir veya bu taraflara gönderilebilir.
- Genellikle el ile yönetim ve döndürme gerektirir.
Bunun yerine, çoğu senaryo için önerilen çözüm olan kimlik doğrulaması için Microsoft Entra Id kullanmayı göz önünde bulundurun.
Microsoft Entra Id kullanarak kimlik doğrulaması
Microsoft Entra Id, farklı iş ve uygulama senaryoları için çok çeşitli özellikler sunan bulut tabanlı bir kimlik ve erişim yönetimi hizmetidir. Microsoft Entra ID, Azure OpenAI ve diğer yapay zeka hizmetlerine bağlanmak için önerilen çözümdür ve aşağıdaki avantajları sağlar:
- kimliklerini kullanarak anahtarsız kimlik doğrulaması.
- Kimliklere gereken en düşük izinleri atamak için rol tabanlı erişim denetimi (RBAC).
- Kod değişikliğine gerek kalmadan ortamlar
Azure.Identity
için istemci kitaplığını kullanabilir. - Temel anahtarları döndürme gibi yönetim bakım görevlerini otomatik olarak işler.
Uygulamanızda Microsoft Entra kimlik doğrulamasını uygulamak için iş akışı genellikle aşağıdaki adımları içerir:
Yerel geliştirme:
- Azure CLI veya Visual Studio gibi yerel bir geliştirme aracını kullanarak Azure'da oturum açın.
- kodunuzu istemci kitaplığını
Azure.Identity
veDefaultAzureCredential
sınıfını kullanacak şekilde yapılandırın. - Yapay zeka hizmetine erişimi etkinleştirmek için oturum açtığınız hesaba Azure rolleri atayın.
Azure tarafından barındırılan uygulama:
Bu iş akışının temel kavramları aşağıdaki bölümlerde incelenir.
Azure'da yerel olarak kimlik doğrulaması
Azure yapay zeka hizmetlerine bağlanan uygulamaları yerel olarak geliştirirken, Visual Studio veya Azure CLI gibi bir araç kullanarak Azure'da kimlik doğrulaması yapın. Yerel kimlik bilgileriniz istemci kitaplığı tarafından Azure.Identity
bulunabilir ve Uygulama kodunu yapılandırma bölümünde açıklandığı gibi uygulamanızın Azure hizmetlerinde kimliğini doğrulamak için kullanılabilir.
Örneğin, Azure CLI kullanarak Azure'da yerel olarak kimlik doğrulaması yapmak için aşağıdaki komutu çalıştırın:
az login
Uygulama kodunu yapılandırma
Azure.Identity
Kodunuzda Microsoft Entra kimlik doğrulamasını uygulamak için Azure SDK'daki istemci kitaplığını kullanın. Kitaplıklar Azure.Identity
sınıfını DefaultAzureCredential
içerir. Bu sınıf, mevcut ortama ve kullanılabilir araçlara göre kullanılabilir Azure kimlik bilgilerini otomatik olarak bulur.
Desteklenen ortam kimlik bilgilerinin tamamı ve aranma sırası için .NET için Azure SDK belgelerini ziyaret edin.
Örneğin, Anlam Çekirdeği'ni aşağıdaki kodu kullanarak DefaultAzureCredential
kimlik doğrulaması için yapılandırın:
Kernel kernel = Kernel
.CreateBuilder()
.AddAzureOpenAITextGeneration(
"your-model",
"your-endpoint",
new DefaultAzureCredential())
.Build();
DefaultAzureCredential
, uygulamaların kod değişikliği olmadan yerel geliştirmeden üretime yükseltilmesini sağlar. Örneğin geliştirme sırasında DefaultAzureCredential
yapay zeka hizmetinde kimlik doğrulaması yapmak için Visual Studio veya Azure CLI'dan yerel kullanıcı kimlik bilgilerinizi kullanır. Uygulama Azure'a dağıtıldığında, DefaultAzureCredential
uygulamanıza atanan yönetilen kimliği kullanır.
Kimliğinize rol atama
Azure rol tabanlı erişim denetimi (Azure RBAC), Azure kaynaklarının ayrıntılı erişim yönetimini sağlayan bir sistemdir. Tek bir kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik olsun, azure yapay zeka hizmetine bağlanmak için tarafından DefaultAzureCredential
kullanılan güvenlik sorumlusuna bir rol atayın. Azure rolleri, kimliğin tamamlama oluşturma veya kaynak oluşturma ve silme gibi çeşitli görevleri gerçekleştirmesine olanak sağlayan bir izin koleksiyonudır.
Azure CLI, Bicep veya Azure Portal gibi araçları kullanarak Bilişsel Hizmetler OpenAI Kullanıcısı (rol kimliği: 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
) gibi rolleri ilgili kimliğe atayın. Örneğin, Azure CLI kullanarak rol atamak için komutunu kullanın az role assignment create
:
az role assignment create \
--role "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd" \
--assignee-object-id "$PRINCIPAL_ID" \
--scope /subscriptions/"$SUBSCRIPTION_ID"/resourceGroups/"$RESOURCE_GROUP" \
--assignee-principal-type User
Aşağıdaki kaynakları kullanarak Azure RBAC hakkında daha fazla bilgi edinin:
Uygulamanıza yönetilen kimlik atama
Çoğu senaryoda Azure'da barındırılan uygulamalar, Azure OpenAI gibi diğer hizmetlere bağlanmak için yönetilen kimlik kullanmalıdır. Yönetilen kimlikler, Microsoft Entra kimlik doğrulamasını destekleyen kaynaklara bağlanırken uygulamaların kullanması için Microsoft Entra Kimliği'nde tam olarak yönetilen bir kimlik sağlar.
DefaultAzureCredential
uygulamanızla ilişkili kimliği bulur ve diğer Azure hizmetlerinde kimlik doğrulaması yapmak için bu kimliği kullanır.
Uygulamanıza atayabileceğiniz iki tür yönetilen kimlik vardır:
- Sistem tarafından atanan bir kimlik uygulamanıza bağlıdır ve uygulamanız silinirse silinir. Bir uygulama sistem tarafından atanan yalnızca bir kimliğe sahip olabilir.
- Kullanıcı tarafından atanan kimlik ise uygulamanıza atanabilen tek başına bir Azure kaynağıdır. Bir uygulama için kullanıcı tarafından atanan birden çok kimlik olabilir.
Yönetilen kimliğe, Bilişsel Hizmetler OpenAI Kullanıcı rolü gibi tek bir kullanıcı hesabına yaptığınız gibi roller atayın. aşağıdaki kaynakları kullanarak yönetilen kimliklerle çalışma hakkında daha fazla bilgi edinin: