Dela via


Använda Azure OpenAI utan nycklar

Programbegäranden till de flesta Azure-tjänster måste autentiseras med nycklar eller lösenordslösa anslutningar. Utvecklare måste vara noggranna för att aldrig exponera nycklarna på en osäker plats. Alla som får åtkomst till nyckeln kan autentisera till tjänsten. Nyckellös autentisering ger bättre hanterings- och säkerhetsfördelar jämfört med kontonyckeln eftersom det inte finns någon nyckel (eller anslutningssträng) att lagra.

Nyckellösa anslutningar aktiveras med följande steg:

  • Konfigurera din autentisering.
  • Ange miljövariabler efter behov.
  • Använd en autentiseringstyp för Azure Identity-biblioteket för att skapa ett Azure OpenAI-klientobjekt.

Autentisering

Autentisering till Microsoft Entra-ID krävs för att använda Azure-klientbiblioteken.

Autentiseringen skiljer sig beroende på vilken miljö appen körs i:

Nyckellöst byggblock för Azure OpenAI

Använd följande länk för att utforska AI-mallen Azure OpenAI Keyless Building Block. Den här mallen etablerar ett Azure OpenAI-konto med ditt användarkonto RBAC-rollbehörighet för nyckellös autentisering (Microsoft Entra) för åtkomst till OpenAI API SDK:er.

Kommentar

Den här artikeln använder en eller flera AI-appmallar som grund för exemplen och vägledningen i artikeln. Med AI-appmallar får du väl underhållna och enkla att distribuera referensimplementeringar som hjälper dig att säkerställa en högkvalitativ startpunkt för dina AI-appar.

Utforska AI-mallen .NET End to End to end Azure OpenAI Keyless Authentication Building Block.

Autentisera för lokal utveckling

Autentisera för Azure-värdbaserade miljöer

Lär dig hur du hanterar DefaultAzureCredential för program som distribueras till Azure.

Konfigurera roller för auktorisering

  1. Hitta rollen för din användning av Azure OpenAI. Beroende på hur du tänker ange den rollen behöver du antingen namnet eller ID:t.

    Rollnamn Roll-ID
    För Azure CLI eller Azure PowerShell kan du använda rollnamn. För Bicep behöver du roll-ID:t.
  2. Använd följande tabell för att välja en roll och ett ID.

    Användningsfall Rollnamn Roll-ID
    Assistenter Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Chatten har slutförts Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Välj en identitetstyp som ska användas.

    • Personlig identitet: Det här är din personliga identitet som är kopplad till inloggningen till Azure.
    • Hanterad identitet: Det här är en identitet som hanteras av och skapas för användning i Azure. Skapa en användartilldelad hanterad identitet för hanterad identitet. När du skapar den hanterade identiteten Client IDbehöver du , även kallat app ID.
  4. Använd något av följande kommandon för att hitta din personliga identitet. Använd ID:t som <identity-id> i nästa steg.

    Använd följande kommando för lokal utveckling för att hämta ditt eget identitets-ID. Du måste logga in med az login innan du använder det här kommandot.

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Tilldela rollen rollbaserad åtkomstkontroll (RBAC) till resursgruppens identitet.

    Om du vill ge din identitet behörighet till resursen via RBAC tilldelar du en roll med hjälp av Azure CLI-kommandot az role assignment create.

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

    I förekommande fall ersätter <identity-id>du , <subscription-id>och <resource-group-name> med dina faktiska värden.

Konfigurera miljövariabler

För att ansluta till Azure OpenAI måste koden känna till resursslutpunkten och kan behöva andra miljövariabler.

  1. Skapa en miljövariabel för din Azure OpenAI-slutpunkt.

    • AZURE_OPENAI_ENDPOINT: Den här URL:en är åtkomstpunkten för din Azure OpenAI-resurs.
  2. Skapa miljövariabler baserat på den plats där appen körs:

    Plats Identitet beskrivning
    Lokal Personligt För lokala körningar med din personliga identitet loggar du in för att skapa dina autentiseringsuppgifter med ett verktyg.
    Azure Cloud Användartilldelad hanterad identitet Skapa en AZURE_CLIENT_ID miljövariabel som innehåller klient-ID:t för den användartilldelade hanterade identiteten som ska autentiseras som.

Installera Azure Identity-klientbiblioteket

Använd följande länk för att installera Azure Identity-klientbiblioteket.

Installera .NET Azure Identity-klientbiblioteket:

dotnet add package Azure.Identity

Använda DefaultAzureCredential

Med Azure Identity-biblioteket kan DefaultAzureCredential kunden köra samma kod i den lokala utvecklingsmiljön och i Azure Cloud.

Mer information om DefaultAzureCredential för .NET finns i Azure Identity-klientbiblioteket för .NET.

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());

Resurser