Azure OpenAI için yönetilen kimlik kullanmanın avantajları

Tamamlandı

Yönetilen Kimlik kullanırken, JavaScript uygulamanızda DefaultAzureCredential veya ManagedIdentityCredential sınıfının bir örneğini oluştururken kullanıcı tarafından yönetilen kimliğin istemci kimliğini belirtmeniz gerekir. İstemci kimliği değeri, Yönetilen Kimlik ayarlandığında $AZURE_CLIENT_ID ortam değişkeni olarak oluşturulur.

İlk bakışta, uç nokta URL'si dışında bağlantı için gerekli olan tek önemli bilgi parçasının bu olduğu görünebilir.

import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { AzureOpenAI } from "openai";

// set environment variable AZURE_CLIENT_ID
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);

const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const deployment = "<your Azure OpenAI deployment name>";
const apiVersion = "2024-05-01-preview";
const options = { azureADTokenProvider, deployment, apiVersion, endpoint }

const client = new AzureOpenAI(options);

Şimdi sızdırılan bir istemci kimliğinin ve sızdırılan API anahtarının etkisini değerlendirelim.

API anahtarı normal parolaya benzer şekilde çalışır. Gizliliği tehlikeye girerse anahtara sahip olan herkes kaynağa erişebilir. Azure OpenAI için bu, GPT-4 gibi yapay zeka modellerinin sınırsız kullanımı anlamına gelir. Ağ genel olarak erişilebilir durumdaysa, güvenlik etkisi daha da fazla olabilir.

Buna karşılık, istemci kimliği sızdırılırsa riskler en düşük düzeyde olur. Bunun nedeni, yalnızca istemci kimliğinin Azure OpenAI ile bağlantı kuramamasıdır. Yönetilen Kimlik kullanmak için hizmetin Azure'da çalışıyor olması gerekir ve Azure OpenAI genel olsa bile yerel bir ortamdan veya uygulama kullanarak bir ağ üzerinden bağlanamazsınız.

Ayrıca, Yönetilen Kimlik için aşağıdaki rol ataması yapılandırılır:

az role assignment create --assignee $USER_MANAGED_ID_PRINCIPAL_ID \
--scope $OPEN_AI_RESOURCE_ID \
--role "Cognitive Services OpenAI User"

Bu, eylemlerin bu kullanıcı kimliği kullanılarak gerçekleştirilebileceğini yapılandırıyor (modülün ilerleyen bölümlerinde daha fazla bilgi). Burada, Azure OpenAI hizmetleri için Bilişsel Hizmetler OpenAI Kullanıcı rolü atanır ve azure OpenAI içindeki işlemlere yönelik izinler sınırlanır.

Özetle, sızdırılan BIR API anahtarının sonuçlarıyla karşılaştırıldığında, sızdırılan bir istemci kimliğinin kötüye kullanılmasının çeşitli adımları vardır ve bu da kötü amaçlı aktörlerin yararlanmasını zorlaştırır. Bu nedenlerden dolayı Yönetilen Kimlikler, API anahtarlarına kıyasla işlemleri yönetmek için daha güvenli bir yöntem sunar. Azure OpenAI'de veya Yönetilen Kimliği destekleyen başka bir Azure hizmetinde kimlik doğrulaması yaparken API anahtarları üzerinden Yönetilen Kimlik kullanmanız mümkün olan en güçlü koşullarda önerilir.