Anahtarlar olmadan Azure OpenAI kullanma

Çoğu Azure hizmeti için uygulama isteklerinin kimlik doğrulaması anahtarlarla veya parolasız bağlantılarla yapılmalıdır. Geliştiricilerin anahtarları güvenli olmayan bir konumda asla kullanıma sunmaması için dikkatli olması gerekir. Anahtara erişim kazanan herkes hizmette kimlik doğrulaması yapabilir. Anahtarsız kimlik doğrulaması, depoacak anahtar (veya bağlantı dizesi) olmadığından hesap anahtarına göre gelişmiş yönetim ve güvenlik avantajları sunar.

Anahtarsız bağlantılar aşağıdaki adımlarla etkinleştirilir:

  • Kimlik doğrulamanızı yapılandırın.
  • Ortam değişkenlerini gerektiği gibi ayarlayın.
  • Azure OpenAI istemci nesnesi oluşturmak için Bir Azure Kimlik kitaplığı kimlik bilgisi türü kullanın.

Kimlik Doğrulaması

Azure istemci kitaplıklarını kullanmak için Microsoft Entra Id kimlik doğrulaması gereklidir.

Kimlik doğrulaması, uygulamanın çalıştığı ortama göre farklılık gösterir:

Azure OpenAI Anahtarsız Yapı Taşı

Azure OpenAI Anahtarsız Yapı Taşı AI şablonunu keşfetmek için aşağıdaki bağlantıyı kullanın. Bu şablon, OpenAI API SDK'larına erişmek için anahtarsız (Microsoft Entra) kimlik doğrulaması için kullanıcı hesabı RBAC rol izninizi içeren bir Azure OpenAI hesabı sağlar.

Not

Bu makalede, makaledeki örnekler ve kılavuzlar için temel olarak bir veya daha fazla yapay zeka uygulaması şablonu kullanılır. Yapay zeka uygulama şablonları, yapay zeka uygulamalarınız için yüksek kaliteli bir başlangıç noktası sağlamaya yardımcı olan, bakımlı, kolay dağıtılan başvuru uygulamaları sağlar.

Yerel geliştirme için kimlik doğrulaması

Yerel geliştirme sırasında kimlik doğrulaması için bir araç seçin.

Önemli

Yerel geliştirme sırasında Azure kaynaklarınıza erişmek için rolü atadığınız Azure hesabını kullanarak yerel bir geliştirme aracındaAzure AI Developer oturum açmanız gerekir. Örneğin, Visual Studio veya Azure CLI.

Azure'da barındırılan ortamlar için kimlik doğrulaması

Azure'a dağıtılan uygulamalar için DefaultAzureCredential'ı yönetme hakkında bilgi edinin.

Yetkilendirme için rolleri yapılandırma

  1. Azure OpenAI kullanımınıza yönelik rolü bulun. Bu rolü nasıl ayarlamak istediğinize bağlı olarak, ad veya kimlik gerekir.

    Rol adı Rol Kimliği
    Azure CLI veya Azure PowerShell için rol adını kullanabilirsiniz. Bicep için rol kimliğine ihtiyacınız vardır.
  2. Rol ve kimlik seçmek için aşağıdaki tabloyu kullanın.

    Kullanım örneği Rol adı Rol Kimliği
    Yardımcılar Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Sohbet tamamlamaları Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Kullanılacak kimlik türünü seçin.

    • Kişisel kimlik: Azure'da oturum açmanıza bağlı kişisel kimliğiniz.
    • Yönetilen kimlik: Tarafından yönetilen ve Azure'da kullanılmak üzere oluşturulan bir kimlik. Yönetilen kimlik için kullanıcı tarafından atanan bir yönetilen kimlik oluşturun. Yönetilen kimliği oluşturduğunuzda, olarak Client IDda bilinen öğesine ihtiyacınız vardırapp ID.
  4. Kişisel kimliğinizi bulmak için aşağıdaki komutlardan birini kullanın. Sonraki adımda kimliği olarak <identity-id> kullanın.

    Yerel geliştirme için, kendi kimlik kimliğinizi almak için aşağıdaki komutu kullanın. Bu komutu kullanmadan önce ile az login oturum açmanız gerekir.

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Rol tabanlı erişim denetimi (RBAC) rolünü kaynak grubunun kimliğine atayın.

    RBAC aracılığıyla kaynağınıza kimlik izinleri vermek için az role assignment create Azure CLI komutunu kullanarak bir rol atayın.

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    Uygun olduğunda , <identity-id>ve <subscription-id> değerlerini gerçek değerlerinizle değiştirin<resource-group-name>.

Ortam değişkenlerini yapılandırma

Azure OpenAI'ye bağlanabilmek için kodunuzun kaynak uç noktanızı tanıması gerekir, ayrıca diğer ortam değişkenlerine de ihtiyaç duyabilir.

  1. Azure OpenAI uç noktanız için bir ortam değişkeni oluşturun.

    • AZURE_OPENAI_ENDPOINT: Bu URL, Azure OpenAI kaynağınızın erişim noktasıdır.
  2. Uygulamanızın çalıştığı konuma göre ortam değişkenleri oluşturun:

    Konum Kimlik Açıklama
    Yerel Bireysel Kişisel kimliğinizle yerel çalışma zamanlarında, kimlik bilgilerinizi bir araçla oluşturmak için oturum açın.
    Azure bulut Kullanıcı tarafından atanan yönetilen kimlik Kimlik doğrulaması için kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğini içeren bir AZURE_CLIENT_ID ortam değişkeni oluşturun.

Azure Identity istemci kitaplığını yükleme

Azure Identity istemci kitaplığını yüklemek için aşağıdaki bağlantıyı kullanın.

.NET Azure Identity istemci kitaplığını yükleyin:

dotnet add package Azure.Identity

DefaultAzureCredential kullan

Azure Kimlik kitaplığı DefaultAzureCredential , müşterinin aynı kodu yerel geliştirme ortamında ve Azure Bulut'ta çalıştırmasına olanak tanır.

.NET DefaultAzureCredential hakkında daha fazla bilgi için DefaultAzureCredential genel bakış bölümüne bakın.

Kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğini ayarlamak için aşağıdaki yaklaşımlardan birini uygulayın:

  • ortam değişkenini AZURE_CLIENT_IDayarlayın. parametresiz oluşturucu DefaultAzureCredential , varsa bu ortam değişkeninin değerini kullanır.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
    
  • üzerinde DefaultAzureCredentialOptions özelliğini ayarlayın.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    var credential = new DefaultAzureCredential(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = "<user_assigned_client_id>"
        });
    
    OpenAIClient client = new(new Uri(endpoint), credential);
    

Kaynaklar