Azure API Management'ı kullanarak Azure OpenAI API'lerine erişimin kimliğini doğrulama ve erişimi yetkilendirme
UYGULANANLAR: Tüm API Management katmanları
Bu makalede, Azure API Management kullanılarak yönetilen Azure OpenAI API uç noktalarının kimliğini doğrulamanın ve yetkilendirmenin yollarını öğreneceksiniz. Bu makalede aşağıdaki yaygın yöntemler gösterilmektedir:
Kimlik doğrulaması - API anahtarı veya Microsoft Entra ID yönetilen kimliği kullanarak kimlik doğrulaması sağlayan ilkeleri kullanarak Azure OpenAI API'sinde kimlik doğrulaması yapın.
Yetkilendirme - Daha ayrıntılı erişim denetimi için, Microsoft Entra ID gibi bir kimlik sağlayıcısı tarafından oluşturulan OAuth 2.0 belirteçlerini geçiren istekleri önceden yetkilendileyin.
Arka plan için bkz:
API Management'ta API'ler için kimlik doğrulaması ve yetkilendirme.
Önkoşullar
Bu makaledeki adımları takip etmeden önce şunlara sahip olmanız gerekir:
- Api Management örneği. Örneğin adımlar için bkz . Azure API Management örneği oluşturma.
- API Management örneğine eklenen bir Azure OpenAI kaynağı ve modeli. Örneğin adımlar için bkz . Azure OpenAI API'sini REST API olarak içeri aktarma.
- Azure aboneliğinizle ilişkili bir Microsoft Entra kiracısı gibi bir kimlik sağlayıcısında uygulama kaydı oluşturma izinleri (OAuth 2.0 yetkilendirmesi için).
API anahtarıyla kimlik doğrulaması
Azure OpenAI API'sinde kimlik doğrulamanın varsayılan yolu, API anahtarı kullanmaktır. Bu kimlik doğrulaması türü için, tüm API istekleri HTTP üst bilgisinde api-key
geçerli bir API anahtarı içermelidir.
- API Management, adlandırılmış bir değer kullanarak API anahtarını güvenli bir şekilde yönetebilir.
- Adlandırılmış değere bir API ilkesinde başvurarak Azure OpenAI API'sine yapılan isteklerdeki üst bilgi ayarlanabilir
api-key
. Bunun nasıl yapılacağını gösteren iki örnek sunuyoruz: biri ilkeyiset-backend-service
, diğeri ilkeyiset-header
kullanır.
API anahtarını adlandırılmış bir değerde depolama
- Azure OpenAI kaynağından bir API anahtarı alın. Azure portalında, Azure OpenAI kaynağının Anahtarlar ve Uç Nokta sayfasında bir anahtar bulun.
- API Management örneğinize gidin ve soldaki menüden Adlandırılmış değerler'i seçin.
- + Ekle'yi seçin ve değeri gizli dizi olarak ekleyin veya isteğe bağlı olarak daha fazla güvenlik için bir anahtar kasası başvurusu kullanın.
API isteklerinde API anahtarını geçirme - set-backend-service ilkesi
Azure OpenAI API'sine işaret eden bir arka uç oluşturun.
- API Management örneğinizin sol menüsünde Arka uçlar'ı seçin.
- + Ekle'yi seçin ve arka uç için açıklayıcı bir ad girin. Örnek: openai-backend.
- Tür'ün altında Özel'i seçin ve Azure OpenAI uç noktasının URL'sini girin. Örnek:
https://contoso.openai.azure.com/openai
. - Yetkilendirme kimlik bilgileri'nin altında Üst Bilgiler'i seçin ve üst bilgi adı olarak api-key, değer olarak da adlandırılmış değer girin.
- Oluştur'u belirleyin.
api anahtarını Azure OpenAI API'sine
inbound
gelen isteklere geçirmek için ilke bölümüne aşağıdakiset-backend-service
ilke parçacığını ekleyin.Bu örnekte arka uç kaynağı openai-backend şeklindedir.
<set-backend-service backend-id="openai-backend" />
API isteklerinde API anahtarını geçirme - set-header ilkesi
Alternatif olarak, api anahtarını Azure OpenAI API'sine inbound
gelen isteklere geçirmek için ilke bölümüne aşağıdaki set-header
ilke parçacığını ekleyin. Bu ilke parçacığı api-key
, üst bilgiyi ayarladığınız adlandırılmış değerle ayarlar.
Bu örnekte, API Management'taki adlandırılmış değer openai-api-key'dir.
<set-header name="api-key" exists-action="override">
<value>{{openai-api-key}}</value>
</set-header>
Yönetilen kimlikle kimlik doğrulaması
Microsoft Entra Id'de yönetilen kimlik kullanarak Azure OpenAI API'sinde kimlik doğrulaması yapmak için alternatif bir yol. Arka plan için bkz . Azure OpenAI Hizmetini yönetilen kimlikle yapılandırma.
Azure OpenAI API'sine yönelik isteklerin kimliğini doğrulamak için API Management örneğinizi yönetilen kimlik kullanacak şekilde yapılandırma adımları aşağıda verilmiştir.
API Management örneğiniz için sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği etkinleştirin . Aşağıdaki örnekte, örneğin sistem tarafından atanan yönetilen kimliğini etkinleştirdiğiniz varsayılır.
Yönetilen kimliği uygun kaynak kapsamına sahip Bilişsel Hizmetler OpenAI Kullanıcı rolüne atayın. Örneğin, sistem tarafından atanan yönetilen kimliği Azure OpenAI kaynağında Bilişsel Hizmetler OpenAI Kullanıcı rolüne atayın. Ayrıntılı adımlar için bkz . Azure OpenAI hizmeti için rol tabanlı erişim denetimi.
Yönetilen kimliği kullanarak Azure OpenAI API'sine yönelik isteklerin
inbound
kimliğini doğrulamak için ilke bölümüne aşağıdaki ilke parçacığını ekleyin.Bu örnekte:
- İlke,
authentication-managed-identity
yönetilen kimlik için bir erişim belirteci alır. - İlke,
set-header
erişim belirteci ile isteğin üst bilgisini ayarlarAuthorization
.
<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>
- İlke,
Kimlik sağlayıcısını kullanarak OAuth 2.0 yetkilendirmesi
Belirli kullanıcılar veya istemciler tarafından OpenAPI API'lerine daha ayrıntılı erişim sağlamak için Microsoft Entra Id veya başka bir kimlik sağlayıcısıyla OAuth 2.0 yetkilendirmesini kullanarak Azure OpenAI API'sine erişimi önceden doğrulayabilirsiniz. Arka plan için bkz . Microsoft Entra Id ile OAuth 2.0 yetkilendirmesini kullanarak Azure API Management'ta API'yi koruma.
Not
Derinlemesine savunma stratejisinin bir parçası olarak OAuth 2.0 yetkilendirmesini kullanın. Azure OpenAI API'sine API anahtarı kimlik doğrulamasının veya yönetilen kimlik kimlik doğrulamasının yerini almaz.
Aşağıda, kimlik sağlayıcısı kullanılarak yetkilendirilmiş kullanıcılara veya uygulamalara API erişimini kısıtlamaya yönelik üst düzey adımlar verilmiştir.
Azure API Management'ta OpenAI API'sini temsil etmek için kimlik sağlayıcınızda bir uygulama oluşturun. Microsoft Entra Id kullanıyorsanız, Microsoft Entra ID kiracınıza bir uygulama kaydedin . Uygulama kimliği ve hedef kitle URI'si gibi ayrıntıları kaydedin.
Gerektiğinde, uygulamayı Azure OpenAI API'sine erişmek için gereken ayrıntılı izinleri temsil eden rollere veya kapsamlara sahip olacak şekilde yapılandırın.
Üst bilgide JSON
inbound
web belirteci (JWT)Authorization
sunan istekleri doğrulamak için API Management örneğinize bir ilke parçacığı ekleyin. Bu kod parçacığını Azure OpenAI API'sinde kimlik doğrulaması yapmak için ayarladığınız diğerinbound
ilkelerin önüne yerleştirin.Not
Aşağıdaki örneklerde bir JWT'yi doğrulamak için ilkelerin genel yapısı gösterilmektedir. Bunları kimlik sağlayıcınıza ve uygulamanızın ve API'nizin gereksinimlerine göre özelleştirin.
validate-azure-ad-token - Microsoft Entra Id kullanıyorsanız JWT'deki hedef kitleyi ve talepleri doğrulamak için ilkeyi yapılandırın
validate-azure-ad-token
. Ayrıntılar için ilke başvurusuna bakın.<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 - Başka bir kimlik sağlayıcısı kullanıyorsanız, JWT'deki hedef kitleyi ve talepleri doğrulamak için ilkeyi yapılandırın
validate-jwt
. Ayrıntılar için ilke başvurusuna bakın.<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>
İlgili içerik
- Microsoft Entra Id ve OAuth2.0 hakkında daha fazla bilgi edinin.
- Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama
- API Management ile Azure OpenAI anahtarlarını koruma
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin