Sdílet prostřednictvím


Ověřování a autorizace přístupu k rozhraním API Azure OpenAI pomocí služby Azure API Management

PLATÍ PRO: Všechny úrovně služby API Management

V tomto článku se dozvíte o způsobech ověřování a autorizace koncových bodů rozhraní API Azure OpenAI spravovaných pomocí služby Azure API Management. Tento článek ukazuje následující běžné metody:

  • Ověřování – Ověřit se v rozhraní Azure OpenAI API pomocí zásad, které používají klíč rozhraní API nebo spravovanou identitu Microsoft Entra ID.

  • Autorizace – Pro jemnější řízení přístupu předautorizujte požadavky, které předávají tokeny OAuth 2.0 vygenerované poskytovatelem identity, jako je například Microsoft Entra ID.

Pozadí najdete tady:

Požadavky

Než budete postupovat podle kroků v tomto článku, musíte mít:

  • Instance služby API Management. Příklad kroků najdete v tématu Vytvoření instance služby Azure API Management.
  • Prostředek a model Azure OpenAI přidaný do vaší instance služby API Management. Příklad kroků najdete v tématu Import rozhraní API Azure OpenAI jako rozhraní REST API.
  • Oprávnění k vytvoření registrace aplikace v zprostředkovateli identity, jako je tenant Microsoft Entra přidružený k vašemu předplatnému Azure (pro autorizaci OAuth 2.0).

Ověření pomocí klíče rozhraní API

Výchozí způsob ověřování v rozhraní API Azure OpenAI je použití klíče rozhraní API. Pro tento typ ověřování musí všechny požadavky rozhraní API obsahovat platný klíč rozhraní API v api-key hlavičce HTTP.

  • Služba API Management může klíč rozhraní API bezpečně spravovat pomocí pojmenované hodnoty.
  • Na pojmenovanou hodnotu pak můžete odkazovat v zásadách rozhraní API, aby se hlavička api-key v požadavcích na rozhraní API Azure OpenAI nastavila. Nabízíme dva příklady, jak to udělat: jeden používá zásadu set-backend-service a druhá používá zásadu set-header .

Uložení klíče rozhraní API do pojmenované hodnoty

  1. Získejte klíč rozhraní API z prostředku Azure OpenAI. V portálu Azure najděte klíč na stránce Klíče a koncový bod prostředku Azure OpenAI.
  2. Přejděte do instance služby API Management a v nabídce vlevo vyberte Pojmenované hodnoty .
  3. Vyberte + Přidat a přidejte hodnotu jako tajný klíč nebo volitelně pro větší zabezpečení použijte odkaz na trezor klíčů.

Předání klíče rozhraní API v požadavcích na API – politika nastavení backendové služby

  1. Vytvořte back-end , který odkazuje na rozhraní API Azure OpenAI.

    1. V levé nabídce instance služby API Management vyberte back-endy.
    2. Vyberte + Přidat a zadejte popisný název back-endu. Příklad: openai-back-end.
    3. V části Typ vyberte Vlastní a zadejte adresu URL koncového bodu Azure OpenAI. Příklad: https://contoso.openai.azure.com/openai.
    4. V části Autorizační přihlašovací údaje vyberte Hlavičky a jako název hlavičky zadejte klíč api-key a pojmenovanou hodnotu jako hodnotu.
    5. Vyberte Vytvořit.
  2. Přidejte následující úryvek zásad set-backend-service do části zásad inbound pro předání klíče rozhraní API v požadavcích do rozhraní API Azure OpenAI.

    V tomto příkladu je backendový prostředek openai-backend.

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

Předání klíče API v API požadavcích – zásady nastavení hlavičky

Případně přidejte následující set-header fragment zásad do části inbound zásad pro předání klíče rozhraní API v požadavcích do Azure OpenAI API. Tento fragment kódu zásady nastaví hlavičku api-key s pojmenovanou hodnotou, kterou jste nastavili.

V tomto příkladu je pojmenovaná hodnota ve službě API Management openai-api-key.

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

Ověřování pomocí spravované identity

Alternativou a doporučeným způsobem ověřování v rozhraní API Azure OpenAI je použití spravované identity v Microsoft Entra ID. Pozadí najdete v tématu Konfigurace služby Azure OpenAI s využitím spravované identity.

V následujících krocích nakonfigurujete instanci služby API Management tak, aby používala spravovanou identitu k ověřování požadavků na rozhraní API Azure OpenAI.

  1. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro vaši instanci služby API Management. Následující příklad předpokládá, že jste povolili spravovanou identitu přiřazenou systémem instance.

  2. Přiřaďte spravované identitě roli uživatele Cognitive Services OpenAI, v oboru odpovídajícího prostředku. Například přiřaďte identitu spravovanou systémem do role uživatele služby Cognitive Services OpenAI na prostředku Azure OpenAI. Podrobné kroky najdete v tématu Řízení přístupu na základě role pro službu Azure OpenAI.

  3. Do části politiky přidejte následující úryvek zásady inbound pro ověřování požadavků na rozhraní Azure OpenAI API pomocí spravované identity.

    V tomto příkladu:

    <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> 
    

Návod

Alternativou k použití authentication-managed-identity zásad set-header uvedených v tomto příkladu je konfigurace back-endového prostředku, který směruje požadavky rozhraní API na koncový bod služby Azure OpenAI. V konfiguraci back-endu povolte ověřování spravovaných identit ve službě Azure OpenAI. Azure API Management automatizuje tyto kroky při importu rozhraní API přímo ze služby Azure OpenAI. Další informace najdete v tématu Import rozhraní API ze služby Azure OpenAI.

Autorizace OAuth 2.0 pomocí zprostředkovatele identity

Pokud chcete konkrétním uživatelům nebo klientům povolit jemněji odstupňovaný přístup k rozhraním OpenAPI API, můžete předem autorizovat přístup k rozhraní API Azure OpenAI pomocí autorizace OAuth 2.0 pomocí Microsoft Entra ID nebo jiného zprostředkovatele identity. Základní informace najdete v tématu Ochrana rozhraní API ve službě Azure API Management pomocí autorizace OAuth 2.0 s ID Microsoft Entra.

Poznámka:

Autorizace OAuth 2.0 se používá jako součást hloubkové strategie ochrany. Nejedná se o náhradu za ověřování klíče rozhraní API ani ověřování spravované identity v rozhraní API Azure OpenAI.

Následuje obecný postup omezení přístupu rozhraní API k uživatelům nebo aplikacím, které jsou autorizované pomocí zprostředkovatele identity.

  1. Ve zprostředkovateli identity vytvořte aplikaci, která bude reprezentovat rozhraní API OpenAI ve službě Azure API Management. Pokud používáte ID Microsoft Entra, zaregistrujte aplikaci v tenantovi Microsoft Entra ID. Záznam podrobností, jako je ID aplikace a identifikátor URI cílové skupiny.

    Podle potřeby nakonfigurujte aplikaci tak, aby měla role nebo obory, které představují jemně odstupňovaná oprávnění potřebná pro přístup k rozhraní Azure OpenAI API.

  2. inbound Přidejte do instance služby API Management fragment zásad k ověření požadavků, které v hlavičce obsahují webový token JSON (JWT)Authorization. Umístěte tento fragment kódu před další inbound zásady, které jste nastavili pro ověření v rozhraní Azure OpenAI API.

    Poznámka:

    Následující příklady ukazují obecnou strukturu zásad pro ověření JWT. Přizpůsobte je poskytovateli identity a požadavkům vaší aplikace a rozhraní API.

    • validate-azure-ad-token – Pokud používáte Microsoft Entra Identity, nakonfigurujte politiku validate-azure-ad-token pro ověření audientů a deklarací v rámci JWT. Podrobnosti najdete v referenčních informacích k zásadám.

      <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 – Pokud používáte jiného zprostředkovatele identity, nakonfigurujte validate-jwt zásadu pro ověření cílové skupiny a deklarací identity v JWT. Podrobnosti najdete v referenčních informacích k zásadám.

      <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>