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ěřování v rozhraní Azure OpenAI API pomocí zásad, které se ověřují pomocí klíče rozhraní API nebo spravované identity Microsoft Entra ID.
Autorizace – U jemněji odstupňovaného řízení přístupu předvytváření požadavků, které předávají tokeny OAuth 2.0 vygenerované zprostředkovatelem identity, jako je ID Microsoft Entra.
Pozadí najdete tady:
Referenční informace k rozhraní Azure OpenAI Service REST API
Ověřování a autorizace pro rozhraní API ve službě API Management
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ásaduset-backend-service
a druhá používá zásaduset-header
.
Uložení klíče rozhraní API do pojmenované hodnoty
- Získejte klíč rozhraní API z prostředku Azure OpenAI. Na webu Azure Portal vyhledejte klíč na stránce Klíče a koncový bod prostředku Azure OpenAI.
- Přejděte do instance služby API Management a v nabídce vlevo vyberte Pojmenované hodnoty .
- 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 rozhraní API – zásady set-back-endové služby
Vytvořte back-end , který odkazuje na rozhraní API Azure OpenAI.
- V levé nabídce instance služby API Management vyberte back-endy.
- Vyberte + Přidat a zadejte popisný název back-endu. Příklad: openai-back-end.
- V části Typ vyberte Vlastní a zadejte adresu URL koncového bodu Azure OpenAI. Příklad:
https://contoso.openai.azure.com/openai
. - 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.
- Vyberte Vytvořit.
Do části zásady přidejte následující
set-backend-service
fragment kóduinbound
zásad, který předá klíč rozhraní API v požadavcích do rozhraní API Azure OpenAI.V tomto příkladu je back-endový prostředek openai-back-end.
<set-backend-service backend-id="openai-backend" />
Předání klíče rozhraní API v požadavcích rozhraní API – zásady set-header
Případně přidejte do části zásady následující set-header
fragment kódu inbound
zásad, který předá klíč rozhraní API v požadavcích do rozhraní API Azure OpenAI. 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
Alternativní způsob ověřování v rozhraní API Azure OpenAI pomocí 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.
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.
Přiřaďte spravovanou identitu roli uživatele OpenAI služeb Cognitive Services s oborem odpovídajícího prostředku. Například přiřaďte spravovanou identitu přiřazenou systémem roli uživatele OpenAI služeb Cognitive Services v prostředku Azure OpenAI. Podrobné kroky najdete v tématu Řízení přístupu na základě role pro službu Azure OpenAI.
Do části zásady přidejte následující fragment kódu
inbound
zásad pro ověřování požadavků na rozhraní AZURE OpenAI API pomocí spravované identity.V tomto příkladu:
- Zásada
authentication-managed-identity
získá přístupový token pro spravovanou identitu. - Zásady
set-header
nastavíAuthorization
hlavičku požadavku pomocí přístupového tokenu.
<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>
- Zásada
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.
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.
inbound
Přidejte do instance služby API Management fragment zásad a ověřte požadavky, které v hlavičce obsahují webový token JSON (JWTAuthorization
). 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 ID Microsoft Entra, nakonfigurujte zásadu
validate-azure-ad-token
pro ověření cílové skupiny a deklarací identity v 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>
Související obsah
- Přečtěte si další informace o Microsoft Entra ID a OAuth2.0.
- Ověřování požadavků na služby Azure AI
- Ochrana klíčů Azure OpenAI pomocí služby API Management