Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK: Semua tingkat API Management
Dalam artikel ini, Anda mempelajari cara mengautentikasi dan mengotorisasi ke titik akhir Azure OpenAI API yang dikelola menggunakan Azure API Management. Artikel ini memperlihatkan metode umum berikut:
Autentikasi - Autentikasi ke AZURE OpenAI API menggunakan kebijakan yang mengautentikasi menggunakan kunci API atau identitas terkelola ID Microsoft Entra.
Otorisasi - Untuk kontrol akses yang lebih rinci, praotorisasi permintaan yang meneruskan token OAuth 2.0 yang dihasilkan oleh penyedia identitas seperti Microsoft Entra ID.
Untuk latar belakang, lihat:
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, Anda harus memiliki:
- Sebuah instance Manajemen API. Misalnya, untuk langkah-langkah, lihat Membuat instans Azure API Management.
- Sumber daya dan model Azure OpenAI ditambahkan ke instans API Management Anda. Misalnya langkah-langkah, lihat Mengimpor Api Azure OpenAI sebagai REST API.
- Izin untuk membuat pendaftaran aplikasi di penyedia identitas seperti penyewa Microsoft Entra yang terkait dengan langganan Azure Anda (untuk otorisasi OAuth 2.0).
Mengautentikasi dengan kunci API
Cara default untuk mengautentikasi ke Azure OpenAI API adalah dengan menggunakan kunci API. Untuk jenis autentikasi ini, semua permintaan API harus menyertakan kunci API yang valid di api-key
header HTTP.
- API Management dapat mengelola kunci API dengan cara yang aman, dengan menggunakan nilai bernama.
- Nilai yang telah diberi nama dapat digunakan dalam kebijakan API untuk mengatur header
api-key
dalam permintaan ke Azure OpenAI API. Kami memberikan dua contoh cara melakukan ini: satu menggunakan kebijakanset-backend-service
, dan yang lain menggunakan kebijakanset-header
.
Menyimpan kunci API dalam nilai bernama
- Dapatkan kunci API dari sumber daya Azure OpenAI. Di portal Azure, temukan kunci pada halaman Keys dan Endpoint dari sumber daya Azure OpenAI.
- Buka instans API Management Anda, dan pilih Nilai bernama di menu sebelah kiri.
- Pilih + Tambahkan, dan tambahkan nilai sebagai rahasia, atau secara opsional untuk keamanan tambahan, gunakan referensi lemari besi kunci.
Teruskan kunci API dalam permintaan API - kebijakan pengaturan layanan backend
Buat backend yang menunjuk ke Azure OpenAI API.
- Di menu sebelah kiri instans API Management Anda, pilih Backend.
- Pilih + Tambahkan, dan masukkan nama deskriptif untuk backend. Contoh: openai-backend.
- Di bawah Jenis, pilih Kustom, dan masukkan URL titik akhir Azure OpenAI. Contoh:
https://contoso.openai.azure.com/openai
. - Di bawah Kredensial Otorisasi, pilih Headers, dan masukkan api-key sebagai nama header dan nilai yang ditetapkan sebagai nilainya.
- Pilih Buat.
Tambahkan cuplikan kebijakan berikut
set-backend-service
di bagianinbound
kebijakan untuk meneruskan kunci API dalam permintaan ke Azure OpenAI API.Dalam contoh ini, sumber daya backend adalah openai-backend.
<set-backend-service backend-id="openai-backend" />
Sertakan kunci API dalam permintaan API - aturan set-header
Atau, tambahkan cuplikan kebijakan berikut set-header
di bagian inbound
kebijakan untuk meneruskan kunci API dalam permintaan ke Azure OpenAI API. Cuplikan kebijakan ini mengatur api-key
header dengan nilai bernama yang Anda siapkan.
Dalam contoh ini, nilai bernama dalam API Management adalah openai-api-key.
<set-header name="api-key" exists-action="override">
<value>{{openai-api-key}}</value>
</set-header>
Mengautentikasi dengan identitas terkelola
Cara alternatif dan direkomendasikan untuk mengautentikasi ke Azure OpenAI API adalah dengan menggunakan identitas terkelola di ID Microsoft Entra. Untuk latar belakang, lihat Cara mengonfigurasi Azure OpenAI Service dengan identitas terkelola.
Berikut ini adalah langkah-langkah untuk mengonfigurasi instans API Management Anda untuk menggunakan identitas terkelola untuk mengautentikasi permintaan ke Azure OpenAI API.
Aktifkan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna untuk instans API Management Anda. Contoh berikut mengasumsikan bahwa Anda telah mengaktifkan identitas terkelola yang ditetapkan sistem instans.
Tetapkan identitas terkelola peran Pengguna OpenAI Cognitive Services, dengan cakupan ke sumber daya yang sesuai. Misalnya, tetapkan identitas terkelola yang ditetapkan sistem sebagai peran Cognitive Services OpenAI User pada sumber daya Azure OpenAI. Untuk langkah-langkah terperinci, lihat Kontrol akses berbasis peran untuk layanan Azure OpenAI.
Tambahkan cuplikan kebijakan berikut di bagian
inbound
kebijakan untuk mengautentikasi permintaan ke Azure OpenAI API menggunakan identitas terkelola.Dalam contoh ini:
- Kebijakan
authentication-managed-identity
ini memperoleh token akses untuk identitas terkelola. - Kebijakan
set-header
menetapkan headerAuthorization
dari permintaan dengan token akses.
<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>
- Kebijakan
Petunjuk / Saran
Alternatif untuk menggunakan kebijakan dan authentication-managed-identity
yang set-header
ditampilkan dalam contoh ini adalah mengonfigurasi sumber daya backend yang mengarahkan permintaan API ke titik akhir Azure OpenAI Service. Dalam konfigurasi backend, aktifkan autentikasi identitas terkelola ke Layanan Azure OpenAI. Azure API Management mengotomatiskan langkah-langkah ini saat mengimpor API langsung dari Azure OpenAI Service. Untuk informasi selengkapnya, lihat Mengimpor API dari Azure OpenAI Service.
Otorisasi OAuth 2.0 menggunakan penyedia identitas
Untuk mengaktifkan akses yang lebih terperinci ke API OpenAPI oleh pengguna atau klien tertentu, Anda dapat melakukan praotorisasi akses ke Azure OpenAI API menggunakan otorisasi OAuth 2.0 dengan ID Microsoft Entra atau penyedia identitas lain. Untuk latar belakang, lihat Melindungi API di Azure API Management menggunakan otorisasi OAuth 2.0 dengan ID Microsoft Entra.
Catatan
Gunakan otorisasi OAuth 2.0 sebagai bagian dari strategi pertahanan mendalam. Ini bukan pengganti untuk autentikasi kunci API atau autentikasi identitas terkelola ke Azure OpenAI API.
Berikut ini adalah langkah-langkah tingkat tinggi untuk membatasi akses API ke pengguna atau aplikasi yang diotorisasi menggunakan penyedia identitas.
Buat aplikasi di penyedia identitas Anda untuk mewakili API OpenAI di Azure API Management. Jika Anda menggunakan Microsoft Entra ID, daftarkan aplikasi dalam tenant Microsoft Entra ID Anda. Catat detail seperti ID aplikasi dan URI audiens.
Sesuai kebutuhan, konfigurasikan aplikasi untuk memiliki peran atau lingkup yang mewakili izin detil yang diperlukan untuk mengakses Azure OpenAI API.
Tambahkan cuplikan
inbound
kebijakan di instans API Management Anda untuk memvalidasi permintaan yang menyajikan token web JSON (JWT) diAuthorization
header. Tempatkan cuplikan ini sebelum kebijakan laininbound
yang Anda tetapkan untuk mengautentikasi ke API Azure OpenAI.Catatan
Contoh berikut menunjukkan struktur umum kebijakan untuk memvalidasi JWT. Sesuaikan dengan penyedia identitas Anda dan persyaratan aplikasi dan API Anda.
validate-azure-ad-token - Jika Anda menggunakan ID Microsoft Entra, konfigurasikan
validate-azure-ad-token
kebijakan untuk memvalidasi audiens dan klaim di JWT. Untuk detailnya, lihat acuan kebijakan.<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 - Jika Anda menggunakan penyedia identitas lain, konfigurasikan kebijakan
validate-jwt
untuk memvalidasi audiens dan klaim dalam JWT. Untuk detailnya, lihat acuan kebijakan.<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>
Konten terkait
- Pelajari selengkapnya tentang MICROSOFT Entra ID dan OAuth2.0.
- Mengautentikasi permintaan ke layanan Azure AI
- Melindungi kunci Azure OpenAI dengan API Management