Freigeben über


Authentifizieren und Autorisieren des Zugriffs auf LLM-APIs mithilfe von Azure API Management

GILT FÜR: Alle API Management-Ebenen

In diesem Artikel erfahren Sie, wie Sie den Zugriff auf AI-API-Endpunkte authentifizieren und autorisieren, die Azure API Management verwaltet. In diesem Artikel werden die folgenden allgemeinen Methoden beschrieben:

  • Authentifizierung – Authentifizieren sie sich bei einer KI-API mithilfe von Richtlinien, die entweder einen API-Schlüssel oder eine verwaltete Identität von Microsoft Entra ID verwenden.

  • Autorisierung: Um eine differenziertere Zugriffssteuerung zu erhalten, autorisieren Sie vorab Anforderungen, die OAuth 2.0-Token übergeben, die von einem Identitätsanbieter wie Microsoft Entra ID generiert werden.

Hintergrundinformationen finden Sie unter:

Voraussetzungen

Um den Beispielen in diesem Artikel zu folgen, müssen Sie folgendes haben:

Authentifizieren mithilfe des API-Schlüssels

Eine Standardeinstellung für die Authentifizierung bei einer KI-API ist die Verwendung eines API-Schlüssels. Für diesen Authentifizierungstyp müssen alle API-Anforderungen einen gültigen API-Schlüssel in einem HTTP-Header enthalten. Der Headername hängt von der API ab. Beispielsweise verwenden Azure OpenAI in Microsoft Foundry-APIs den api-key Header.

  • Die API-Verwaltung kann den API-Schlüssel auf sichere Weise mithilfe eines benannten Werts verwalten.
  • Sie können auf den benannten Wert in einer API-Richtlinie verweisen, um den api-key Header in Anforderungen an die API festzulegen. Die folgenden beiden Beispiele zeigen, wie Dies geschieht: eine verwendet die set-backend-service Richtlinie und die andere verwendet die set-header Richtlinie.

Speichern des API-Schlüssels in einem benannten Wert

Nachfolgend finden Sie ein Beispiel zum Speichern eines Azure OpenAI-API-Schlüssels in einem benannten Wert in der API-Verwaltung:

  1. Rufen Sie einen API-Schlüssel aus der KI-Modellimplementierung ab. Für eine Azure OpenAI-Modellbereitstellung finden Sie diese Informationen auf der Startseite für Ihr Projekt im Microsoft Foundry-Portal.
  2. Wechseln Sie zu Ihrer API Management-Instanz, und wählen Sie im Menü auf der linken Seite Benannte Werte aus.
  3. Wählen Sie +Hinzufügen aus, und fügen Sie den Wert als geheimen Schlüssel hinzu. Verwenden Sie für mehr Sicherheit optional einen Schlüsseltresorverweis.

Übergeben des API-Schlüssels in API-Anforderungen – „Set-Backend-Service“-Richtlinie (Back-End-Dienst festlegen)

  1. Erstellen Sie ein Back-End, das auf die Azure OpenAI-API verweist.

    1. Wählen Sie im Menü auf der linken Seite Ihrer API Management-Instanz die Option Back-Ends aus.
    2. Wählen Sie + Hinzufügen aus, und geben Sie einen beschreibenden Namen für das Back-End ein. Beispiel: openai-backend.
    3. Wählen Sie unter Typ die Option Benutzerdefiniert aus, und geben Sie die URL des Azure OpenAI-Endpunkts ein. Beispiel: https://contoso.services.ai.azure.com/openai.
    4. Wählen Sie unter Autorisierungsanmeldeinformationen die Option Header aus, und geben Sie api-key als Headernamen und den benannten Wert als Wert ein.
    5. Wählen Sie "Erstellen" aus.
  2. Fügen Sie den folgenden set-backend-service-Richtlinienausschnitt im inbound-Richtlinienabschnitt hinzu, um den API-Schlüssel in Anforderungen an die Azure OpenAI-API zu übergeben.

    In diesem Beispiel lautet die Back-End-Ressource openai-backend.

    <set-backend-service backend-id="openai-backend" />
    

Übergeben des API-Schlüssels in API-Anforderungen – „Set-Header“-Richtlinie (Header festlegen)

Fügen Sie alternativ den folgenden set-header-Richtlinienausschnitt im inbound-Richtlinienabschnitt hinzu, um den API-Schlüssel in Anforderungen an die Azure OpenAI-API zu übergeben. Dieser Richtlinienausschnitt legt den api-key-Header mit dem benannten Wert fest, den Sie eingerichtet haben.

In diesem Beispiel lautet der benannte Wert in API Management openai-api-key.

<set-header name="api-key" exists-action="override">
    <value>{{openai-api-key}}</value>
</set-header>

Authentifizieren mit einer verwalteten Identität

Verwenden Sie für Azure OpenAI und andere Modellbereitstellungen in Microsoft Foundry eine verwaltete Identität in Microsoft Entra ID, um sich zu authentifizieren. Hintergrundinformationen finden Sie unter Konfigurieren von Azure OpenAI in Microsoft Foundry Models mit der Microsoft Entra ID-Authentifizierung.

Führen Sie die folgenden Schritte aus, um Ihre API-Verwaltungsinstanz für die Verwendung einer verwalteten Identität für die Authentifizierung zu konfigurieren.

  1. Aktivieren Sie eine system- oder benutzerseitig zugewiesene verwaltete Identität für Ihre API Management-Instanz. Im folgenden Beispiel wird davon ausgegangen, dass Sie die vom System zugewiesene verwaltete Identität der Instanz aktiviert haben.

  2. Weisen Sie die verwaltete Identität der Rolle Cognitive Services OpenAI-Benutzer zu, die auf die entsprechende Ressource festgelegt ist. Weisen Sie beispielsweise die vom System zugewiesene verwaltete Identität der Rolle "Cognitive Services OpenAI User " der Microsoft Foundry-Ressource zu. Ausführliche Schritte finden Sie unter Rollenbasierte Zugriffssteuerung für Azure OpenAI Service.

  3. Fügen Sie den folgenden Richtlinienausschnitt im inbound Richtlinienabschnitt hinzu, um Anforderungen an die API mithilfe der verwalteten Identität zu authentifizieren.

    In diesem Beispiel:

    • Die authentication-managed-identity-Richtlinie ruft ein Zugriffstoken für die verwaltete Identität ab.
    • Die set-header-Richtlinie legt den Authorization-Header der Anforderung mit dem Zugriffstoken fest.
    <authentication-managed-identity resource="https://cognitiveservices.azure.com" output-token-variable-name="managed-id-access-token" ignore-error="false" /> 
    <set-header name="Authorization" exists-action="override"> 
        <value>@("Bearer " + (string)context.Variables["managed-id-access-token"])</value> 
    </set-header> 
    

Tipp

Anstatt die in diesem Beispiel aufgeführten Richtlinien authentication-managed-identity und set-header zu verwenden, können Sie eine Back-End-Ressource konfigurieren, die API-Anforderungen an den KI-Dienst-Endpunkt weiterleitet. Konfigurieren Sie in der Back-End-Konfiguration verwaltete Identitätsanmeldeinformationen für die https://cognitiveservices.azure.com/ Ressource. Azure API Management automatisiert diese Schritte, wenn Sie eine API direkt aus Microsoft Foundry importieren.

OAuth 2.0-Autorisierung mithilfe des Identitätsanbieters

Um einen differenzierten Zugriff auf Azure OpenAPI oder andere LLM-APIs durch bestimmte Benutzer oder Clients zu ermöglichen, müssen Sie den Zugriff auf die API mithilfe der OAuth 2.0-Autorisierung mit microsoft Entra ID oder einem anderen Identitätsanbieter vorab authentifizieren. Hintergrundinformationen finden Sie unter Schützen einer API in Azure API Management mithilfe der OAuth 2.0-Autorisierung mit Microsoft Entra ID.

Hinweis

Verwenden Sie die OAuth 2.0-Autorisierung als Teil einer Defense-in-Depth-Strategie. Sie ist kein Ersatz für die API-Schlüsselauthentifizierung oder verwaltete Identitätsauthentifizierung für eine Azure OpenAI-API.

Die folgenden Schritte zeigen, wie Sie den API-Zugriff auf Benutzer oder Apps einschränken, die mithilfe eines Identitätsanbieters autorisiert sind.

  1. Erstellen Sie eine Anwendung in Ihrem Identitätsanbieter, um die KI-API in Azure API Management darzustellen. Wenn Sie Microsoft Entra ID verwenden, registrieren Sie eine Anwendung in Ihrem Microsoft Entra ID-Mandanten. Notieren Sie Details wie die Anwendungs-ID und den Zielgruppen-URI.

    Konfigurieren Sie die Anwendung nach Bedarf so, dass sie Über Rollen oder Bereiche verfügt, die die feinkörnigen Berechtigungen darstellen, die für den Zugriff auf die KI-API erforderlich sind.

  2. Fügen Sie einen inbound-Richtlinienausschnitt in Ihrer API Management-Instanz hinzu, um Anforderungen zu überprüfen, die ein JSON-Webtoken (JWT) im Authorization-Header darstellen. Platzieren Sie diesen Ausschnitt vorinbound anderen -Richtlinien, die Sie für die Authentifizierung bei der Azure OpenAI-API festgelegt haben.

    Hinweis

    In den folgenden Beispielen wird die allgemeine Struktur der Richtlinien zum Überprüfen eines JWT gezeigt. Passen Sie sie an Ihren Identitätsanbieter und die Anforderungen Ihrer Anwendung und API an.

    • validate-azure-ad-token: Wenn Sie Microsoft Entra ID verwenden, konfigurieren Sie die validate-azure-ad-token-Richtlinie, um die Zielgruppe und Ansprüche im JWT zu überprüfen. Details finden Sie in der Richtlinienreferenz.

      <validate-azure-ad-token tenant-id={{TENANT_ID}} header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
          <client-application-ids>
                  <application-id>{{CLIENT_APP_ID}}</application-id>
          </client-application-ids>
         <audiences>
              <audience>...</audience> 
          </audiences>
          <required-claims>
              <claim name=...>
                  <value>...</value>
              </claim>
          </required-claims>
      </validate-azure-ad-token>
      
    • validate-jwt: Wenn Sie einen anderen Identitätsanbieter verwenden, konfigurieren Sie die validate-jwt-Richtlinie, um die Zielgruppe und Ansprüche im JWT zu überprüfen. Details finden Sie in der Richtlinienreferenz.

      <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
          <openid-config url={{OPENID_CONFIGURATION_URL}} />
          <issuers>
              <issuer>{{ISSUER_URL}}</issuer>
          </issuers>
          <audiences>
              <audience>...</audience> 
          </audiences>
          <required-claims>
              <claim name=...>
                  <value>...</value>
              </claim>
          </required-claims>
      </validate-jwt>