Megosztás a következőn keresztül:


Azure OpenAI API-khozzáférés hitelesítése és engedélyezése az Azure API Management használatával

VONATKOZIK MINDEN API-kezelési szintre

Ebben a cikkben megismerheti az Azure API Management használatával felügyelt Azure OpenAI API-végpontok hitelesítésének és engedélyezésének módjait. Ez a cikk a következő általános módszereket mutatja be:

  • Hitelesítés – Az Azure OpenAI API-hoz való hitelesítés olyan szabályzatokkal, amelyek vagy egy API-kulcsot, vagy egy felügyelt Microsoft Entra-azonosítót használnak.

  • Engedélyezés – A részletesebb hozzáférés-vezérlés érdekében előhitelesítse azokat a kéréseket, amelyek egy identitásszolgáltató, például a Microsoft Entra ID által létrehozott OAuth 2.0-jogkivonatokat adják át.

Háttérhez lásd:

Előfeltételek

Mielőtt követné az ebben a cikkben szereplő lépéseket, rendelkeznie kell a következőkkel:

  • API Management-példány. Például a lépésekhez lásd: Azure API Management példány létrehozása.
  • Az Azure OpenAI erőforrás és modell hozzáadva az API Management példányhoz. Például lépésekért lásd: Azure OpenAI API importálása mint REST API.
  • Engedélyek alkalmazásregisztráció létrehozására egy identitásszolgáltatóban, például egy olyan Microsoft Entra bérlőben, amely az Azure-előfizetéséhez van társítva (az OAuth 2.0 hitelesítéshez).

Hitelesítés API kulccsal

Az Azure OpenAI API hitelesítésének alapértelmezett módja egy API-kulcs használata. Ennél a hitelesítési típusnál minden API kérésnek tartalmaznia kell egy érvényes API kulcsot a api-key HTTP fejlécben.

  • Az API Management biztonságos módon képes kezelni az API-kulcsot egy megnevezett érték használatával.
  • Az elnevezett értékre hivatkozni lehet egy API-szabályzatban, hogy beállítsa a api-key fejlécet az Azure OpenAI API-hoz küldött kérésekben. Két példát mutatunk be arra, hogyan lehet ezt megtenni: az egyik a set-backend-service irányelvet, a másik pedig a set-header irányelvet használja.

Tárolja az API-kulcsot egy megnevezett értékben

  1. Szerezzen be egy API-kulcsot az Azure OpenAI erőforrásból. Az Azure portálon, keressen egy kulcsot az Azure OpenAI-erőforrás Kulcsok és végpont oldalán.
  2. Nyissa meg az API Management példányát, és válassza ki a bal oldali menüben a Nevesített értékek lehetőséget.
  3. Válassza a + Hozzáadás lehetőséget, és adja meg az értéket titokként, vagy választhatóan a nagyobb biztonság érdekében használjon kulcstár hivatkozást.

Adja meg az API kulcsot az API kérésekben - háttérszolgáltatás-beállítási szabályzat

  1. Hozzon létre egy backendet, amely az Azure OpenAI API-ra mutat.

    1. Az API-kezelő példányának bal oldali menüjében válassza a Backends lehetőséget.
    2. Válassza a + Hozzáadás lehetőséget, és adjon meg egy leíró nevet a háttérrendszerhez. Példa: openai-backend.
    3. A Típus alatt válassza a Egyéni lehetőséget, és adja meg az Azure OpenAI végpont URL-jét. Példa: https://contoso.openai.azure.com/openai.
    4. A Engedélyezési hitelesítési adatok alatt válassza ki a Fejlécek lehetőséget, és írja be a api-key értéket fejlécként, a megnevezett értéket pedig értékként.
    5. Válassza a Create gombot.
  2. Adja hozzá a következő set-backend-service szabályrészletet a inbound szabály szekcióhoz, hogy az API kulcsot továbbítsa a kérések során az Azure OpenAI API-hoz.

    Ebben a példában a háttérrendszer erőforrása openai-backend.

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

API-kulcs átadása API-kérésekben - set-header szabályzat

Alternatívaként adja hozzá a következő set-header házirész-letét a inbound házirész szakaszba, hogy az API-kulcsot a kérésekhez az Azure OpenAI API-hoz továbbítsa. Ez a házirészlet a api-key fejlécre az ön által megadott elnevezett értéket állítja be.

Például az API Management rendszerében a megnevezett érték az openai-api-key.

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

Hitelesítés felügyelt identitással

Az Azure OpenAI API hitelesítésének egyik alternatív és ajánlott módja a Microsoft Entra ID-ben kezelt identitás használata. A háttérinformációkért lásd: Hogyan konfigurálható az Azure OpenAI szolgáltatás kezelt identitással.

Az alábbiakban bemutatjuk azokat a lépéseket, amelyek szükségesek az API Management példány konfigurálásához, hogy egy felügyelt identitást használjon a kérések hitelesítéséhez egy Azure OpenAI API-n.

  1. Engedélyezze a rendszer által kiosztott vagy a felhasználó által kiosztott kezelési identitást az API-kezelési példányához. A következő példa feltételezi, hogy engedélyezte az instance rendszer által hozzárendelt kezelt identitását.

  2. Rendelje hozzá a felügyelt identitáshoz a Cognitive Services OpenAI User szerepkört, a megfelelő erőforrásra kiterjesztve. Például jelölje ki a rendszer által kiosztott kezelési identitásnak a Cognitive Services OpenAI Felhasználó szerepkört az Azure OpenAI erőforráson. A részletes lépésekért lásd: Role-based access control for Azure OpenAI service.

  3. Kérjük, adja hozzá a következő szabályrészletet a inbound szabályszakaszhoz az Azure OpenAI API-hoz intézett kérések hitelesítéséhez a felügyelt identitás használatával.

    Ebben a példában:

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

Jótanács

Az ebben a authentication-managed-identity példában bemutatott szabályzatok és set-header szabályzatok használatának másik lehetősége egy olyan háttérerőforrás konfigurálása, amely az API-kéréseket az Azure OpenAI szolgáltatásvégpontra irányítja. A háttérkonfigurációban engedélyezze a felügyelt identitás hitelesítését az Azure OpenAI szolgáltatásban. Az Azure API Management automatizálja ezeket a lépéseket, amikor egy API-t közvetlenül az Azure OpenAI Szolgáltatásból importál. További információ: API importálása az Azure OpenAI Szolgáltatásból.

OAuth 2.0 hitelesítés identitásszolgáltató használatával

Ahhoz, hogy az adott felhasználók vagy kliensek számára finomabb hozzáférést biztosítsunk az OpenAPI API-khoz, előzetesen engedélyezhetjük az Azure OpenAI API-hoz való hozzáférést az OAuth 2.0 autentikációval a Microsoft Entra ID vagy más identitás szolgáltató segítségével. Háttérinformációkért lásd: API védelme az Azure API Management-ben OAuth 2.0 autorizációval a Microsoft Entra ID használatával.

Megjegyzés

Használja az OAuth 2.0 engedélyezést a mélységi védelem stratégiájának részeként. Ez nem helyettesíti az API-kulcsos hitelesítést vagy a felügyelt identitáshitelesítést egy Azure OpenAI API-ra.

Az alábbiakban bemutatjuk azokat a magas szintű lépéseket, amelyekkel korlátozhatjuk az API-hozzáférést az olyan felhasználók vagy alkalmazások számára, amelyek azonosításszolgáltató használatával vannak jogosítva.

  1. Hozzon létre egy alkalmazást az identitás-szolgáltatójában, hogy képviselje az OpenAI API-t az Azure API-kezelésben. Ha Microsoft Entra ID-t használ, regisztráljon egy alkalmazást a Microsoft Entra ID bérlői fiókban. Rögzítse a részleteket, például az alkalmazás azonosítóját és a közönség URI-ját.

    Szükség szerint konfigurálja az alkalmazást úgy, hogy legyenek szerepkörök vagy hatókörök, amelyek az Azure OpenAI API eléréséhez szükséges részletes jogosultságokat képviselik.

  2. Adjon hozzá egy inbound házirend-részletet az API Management példányában a kérések érvényesítéséhez, amelyek JSON web tokent (JWT) jelenítenek meg a Authorization fejlécben. Helyezze ezt a kódrészletet az egyéb inbound irányelvek elé, amelyeket az Azure OpenAI API hitelesítésére állított be.

    Megjegyzés

    A következő példák bemutatják az irányelvek általános szerkezetét a JWT érvényesítéséhez. Testreszabja ezeket az identitásszolgáltatójához, valamint az alkalmazása és API-ja követelményeihez.

    • validate-azure-ad-token - Ha a Microsoft Entra ID-t használja, konfigurálja a validate-azure-ad-token házirendet az JWT-ben található közönség és jogosultságok érvényesítéséhez. A részletekért lásd a szabályzati hivatkozást.

      <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 - Ha más identitásszolgáltatót használ, konfigurálja a validate-jwt szabályzatot, hogy érvényesítse a JWT-ben megadott közönséget és követeléseket. A részletekért lásd a szabályzati hivatkozást.

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