Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Alle API Management-lagen
In dit artikel leert u hoe u toegang kunt verifiëren en autoriseren tot AI API-eindpunten die door Azure API Management worden beheerd. In dit artikel worden de volgende algemene methoden beschreven:
Verificatie : verifiëren bij een AI-API met behulp van beleid dat gebruikmaakt van een API-sleutel of een door Microsoft Entra ID beheerde identiteit.
Autorisatie : voor meer gedetailleerd toegangsbeheer moet u aanvragen die OAuth 2.0-tokens doorgeven die worden gegenereerd door een id-provider, zoals Microsoft Entra-id, vooraf verifiëren.
Zie voor achtergrond:
Vereiste voorwaarden
Als u de voorbeelden in dit artikel wilt volgen, moet u het volgende hebben:
- Een API Management-exemplaar. Zie voor voorbeeldstappen Het maken van een Azure API Management-exemplaar.
- Een implementatie van een AI-model die als AI aan uw API Management-exemplaar is toegevoegd. Voor voorbeeldstappen, zie Een Microsoft Foundry-API importeren of een taalmodel-API importeren.
- (Voor OAuth 2.0-autorisatie) Machtigingen voor het maken van een app-registratie in een id-provider, zoals een Microsoft Entra ID-tenant die is gekoppeld aan uw Azure-abonnement.
Verifiëren met behulp van API-sleutel
Een standaard manier om te verifiëren bij een AI-API is met behulp van een API-sleutel. Voor dit type verificatie moeten alle API-aanvragen een geldige API-sleutel in een HTTP-header bevatten. De headernaam is afhankelijk van de API. Azure OpenAI in Microsoft Foundry-API's maken bijvoorbeeld gebruik van de api-key header.
- API Management kan de API-sleutel op een veilige manier beheren met behulp van een benoemde waarde.
- U kunt verwijzen naar de benoemde waarde in een API-beleid om de
api-keyheader in aanvragen in te stellen op de API. In de volgende twee voorbeelden ziet u hoe u dit kunt doen: de ene gebruikt hetset-backend-servicebeleid en de andere gebruikt hetset-headerbeleid.
De API-sleutel opslaan in een benoemde waarde
Hier volgt een voorbeeld van het opslaan van een Azure OpenAI API-sleutel in een benoemde waarde in API Management:
- Haal een API-sleutel op uit de implementatie van het AI-model. Voor een Azure OpenAI-modelimplementatie vindt u deze informatie op de startpagina van uw project in de Microsoft Foundry-portal.
- Ga naar uw API Management-exemplaar en selecteer Benoemde waarden in het linkermenu.
- Selecteer + Toevoegen en voeg de waarde toe als geheim. Voor meer beveiliging kunt u desgewenst een verwijzing naar een sleutelkluis gebruiken.
De API-sleutel doorgeven in API-aanvragen - beleid voor set-backend-service
Maak een back-end die verwijst naar de Azure OpenAI-API.
- Selecteer Back-ends in het linkermenu van uw API Management-exemplaar.
- Selecteer + Toevoegen en voer een beschrijvende naam in voor de back-end. Voorbeeld: openai-backend.
-
Selecteer Aangepast onder Type en voer de URL van het Azure OpenAI-eindpunt in. Voorbeeld:
https://contoso.services.ai.azure.com/openai. - Selecteer onder Autorisatiereferenties headers en voer api-sleutel in als de headernaam en de benoemde waarde als de waarde.
- Klik op Creëren.
Voeg het volgende
set-backend-servicebeleidsfragment toe aan deinboundbeleidssectie om de Azure OpenAI-API in verzoeken de API-sleutel door te geven.In dit voorbeeld is de back-end resource "openai-backend".
<set-backend-service backend-id="openai-backend" />
De API-sleutel doorgeven in API-aanvragen - beleid voor set-headers
U kunt ook het volgende set-header beleidsfragment toevoegen in de inbound beleidssectie om de API-sleutel in aanvragen door te geven aan de Azure OpenAI-API. Met dit beleidsfragment wordt de api-key header ingesteld met de benoemde waarde die u hebt ingesteld.
In dit voorbeeld is de benoemde waarde in API Management openai-api-key.
<set-header name="api-key" exists-action="override">
<value>{{openai-api-key}}</value>
</set-header>
Verifiëren met beheerde identiteit
Gebruik voor Azure OpenAI en andere modelimplementaties in Microsoft Foundry een beheerde identiteit in Microsoft Entra ID om te verifiëren. Zie Azure OpenAI configureren in Microsoft Foundry-modellen met Microsoft Entra ID-verificatie voor achtergrond.
Volg deze stappen om uw API Management-exemplaar te configureren voor het gebruik van een beheerde identiteit voor verificatie.
Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in voor uw API Management-exemplaar. In het volgende voorbeeld wordt ervan uitgegaan dat u de door het systeem toegewezen beheerde identiteit van het exemplaar hebt ingeschakeld.
Ken de Cognitive Services OpenAI User-rol toe aan de beheerde identiteit, gescoped op de juiste resource. Wijs bijvoorbeeld de door het systeem toegewezen beheerde identiteit toe aan de Gebruikersrol Cognitive Services OpenAI op de Microsoft Foundry-resource. Zie Op rollen gebaseerd toegangsbeheer voor de Azure OpenAI-service voor gedetailleerde stappen.
Voeg het volgende beleidsfragment toe in de
inboundbeleidssectie om aanvragen voor de API te verifiëren met behulp van de beheerde identiteit.In dit voorbeeld:
- Het
authentication-managed-identitybeleid verkrijgt een toegangstoken voor de beheerde identiteit. - Het
set-headerbeleid stelt deAuthorizationheader van de aanvraag in met het toegangstoken.
<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>- Het
Aanbeveling
In plaats van de authentication-managed-identity en set-header beleidsregels te gebruiken die in dit voorbeeld worden weergegeven, kunt u een backend resource configureren waarmee API-aanvragen worden doorgestuurd naar het AI-service-eindpunt. Configureer in de back-endconfiguratie referenties voor beheerde identiteiten voor de https://cognitiveservices.azure.com/ resource. Azure API Management automatiseert deze stappen wanneer u een API rechtstreeks vanuit Microsoft Foundry importeert.
OAuth 2.0-autorisatie met behulp van id-provider
Als u meer gedetailleerde toegang tot Azure OpenAPI of andere LLM-API's wilt inschakelen door bepaalde gebruikers of clients, moet u de toegang tot de API vooraf verifiëren met behulp van OAuth 2.0-autorisatie met Microsoft Entra ID of een andere id-provider. Zie Een API beveiligen in Azure API Management met behulp van OAuth 2.0-autorisatie met Microsoft Entra-id voor achtergrond.
Opmerking
Gebruik OAuth 2.0-autorisatie als onderdeel van een diepgaande verdedigingsstrategie. Het is geen vervanging voor API-sleutelverificatie of beheerde identiteitsverificatie naar een Azure OpenAI-API.
De volgende stappen laten zien hoe u API-toegang beperkt tot gebruikers of apps die zijn geautoriseerd met behulp van een id-provider.
Maak een toepassing in uw id-provider die de AI-API in Azure API Management vertegenwoordigt. Als u Microsoft Entra-id gebruikt, registreert u een toepassing in uw Microsoft Entra ID-tenant. Noteer details zoals de toepassings-id en de doelgroep-URI.
Configureer zo nodig de toepassing voor rollen of scopes die de fijnmazige machtigingen vertegenwoordigen die nodig zijn voor toegang tot de AI API.
Voeg een
inboundbeleidsfragment toe aan uw API Management-exemplaar om aanvragen te valideren die een JSON-webtoken (JWT) in deAuthorizationheader presenteren. Plaats dit fragment vóór andereinboundbeleidsregels die u instelt voor verificatie bij de Azure OpenAI-API.Opmerking
In de volgende voorbeelden ziet u de algemene structuur van het beleid om een JWT te valideren. Pas deze aan uw id-provider en de vereisten van uw toepassing en API aan.
validate-azure-ad-token : als u Microsoft Entra ID gebruikt, configureert u het
validate-azure-ad-tokenbeleid om de doelgroep en claims in de JWT te valideren. Zie de beleidsreferentie voor details.<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 : als u een andere id-provider gebruikt, configureert u het
validate-jwtbeleid om de doelgroep en claims in de JWT te valideren. Zie de beleidsreferentie voor details.<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>
Verwante inhoud
- Meer informatie over Microsoft Entra ID en OAuth2.0.
- Aanvragen verifiëren voor Foundry-hulpprogramma's