Bagikan melalui


Menyediakan autentikasi kustom ke Layanan Azure OpenAI melalui gateway

Layanan Azure AI
Azure OpenAI Service
Azure API Management
Microsoft Entra ID

Aplikasi cerdas yang menggunakan Azure OpenAI Service melalui layanan asli Azure menyediakan autentikasi dan otorisasi pengguna. Namun, beberapa skenario kompleks dan membutuhkan desain arsitektur yang berbeda. Skenario ini mencakup topologi yang memiliki aplikasi klien yang tidak dihosting di Azure, menggunakan penyedia identitas eksternal, dan menyebarkan beberapa klien yang mengakses instans Azure OpenAI yang sama. Dalam skenario ini, memperkenalkan gateway di depan Azure OpenAI dapat secara signifikan meningkatkan keamanan dengan menambahkan lapisan yang memastikan autentikasi yang konsisten ke instans yang disebarkan.

Artikel ini menjelaskan skenario utama yang menyediakan autentikasi ke Azure OpenAI:

Setiap skenario menjelaskan tantangan yang mereka perkenalkan dan manfaat menggabungkan gateway.

Penting

Anda dapat menggunakan panduan berikut untuk implementasi gateway apa pun, termasuk Azure API Management. Untuk mengilustrasikan fleksibilitas ini, diagram arsitektur menggunakan representasi komponen generik dalam sebagian besar skenario.

Mengautentikasi aplikasi klien melalui penyedia identitas eksternal

Diagram yang memperlihatkan aplikasi klien yang mengautentikasi pengguna dengan idP eksternal dan Azure OpenAI dengan menggunakan kunci API.

Unduh file Visio arsitektur ini.

Batasan skenario

Skenario ini memiliki batasan berikut:

  • Aplikasi klien menggunakan idP eksternal yang didukung OpenID Connect (OIDC) seperti Okta, Auth0, atau penyedia identitas sosial.

  • Aplikasi klien mengautentikasi terhadap penyewa Microsoft Entra yang berbeda dari penyewa sarana data Azure OpenAI.

Batasan ini dapat berlaku untuk contoh berikut:

  • Aplikasi klien yang sudah ada yang sudah mengautentikasi terhadap penyedia OIDC eksternal atau ID Microsoft Entra dan yang terintegrasi dengan instans Azure OpenAI.

  • Aplikasi klien yang harus secara konsisten mengautentikasi pengguna dari beberapa penyedia identitas.

Menyambungkan langsung ke Azure OpenAI

Jika aplikasi klien dalam skenario ini langsung terhubung ke Azure OpenAI tanpa menggunakan gateway, mereka harus menggunakan autentikasi berbasis kunci untuk mengautentikasi ke Azure OpenAI. Autentikasi berbasis kunci memperkenalkan masalah keamanan tambahan. Anda harus menyimpan dan memutar kunci dengan aman, dan Anda tidak dapat memberikan konfigurasi kontrol akses berbasis peran (RBAC) klien yang berbeda untuk penyebaran model individual.

Memperkenalkan gateway

Diagram yang memperlihatkan gateway antara aplikasi klien dan Azure OpenAI, yang memungkinkan autentikasi dengan penyedia identitas eksternal.

Unduh file Visio arsitektur ini.

Gateway menyelesaikan tantangan skenario ini dengan cara berikut:

  • Gateway menggunakan Open Authorization (OAuth) untuk mengautentikasi pengguna melalui penyedia identitas eksternal yang ada. Gateway memvalidasi token akses pengguna yang diautentikasi, seperti JSON Web Token (JWT), yang dihasilkan penyedia identitas. Kemudian gateway memberikan otorisasi ke instans Azure OpenAI yang mendukung.

  • Anda tidak perlu mengelola kunci klien. Pendekatan ini menghilangkan risiko keamanan autentikasi berbasis kunci.

  • Gateway terhubung ke Azure OpenAI dengan menggunakan identitas terkelola, yang meningkatkan keamanan melalui Azure RBAC dengan hak istimewa paling sedikit.

Rekomendasi untuk skenario ini

  • Tambahkan lebih banyak cakupan OAuth ke pendaftaran aplikasi Anda di IdP Anda untuk mengaktifkan izin terperinci kepada konsumen. Cakupan ini memungkinkan aplikasi klien meminta izin untuk melakukan operasi tertentu di gateway Anda, termasuk akses ke Azure OpenAI.

  • Konfigurasikan skenario ini untuk API Management dengan menggunakan kebijakan masuk. validate-jwt Gunakan kebijakan untuk menegakkan nilai keberadaan, validitas, dan atribut JWT yang didukung.

Alasan untuk menghindari gateway untuk skenario ini

Jika satu aplikasi cerdas mengakses Azure OpenAI, lebih mudah untuk mengonfigurasi autentikasi dan otorisasi pengguna dalam aplikasi daripada melalui gateway. Gunakan pendekatan ini untuk menetapkan Azure RBAC yang diperlukan untuk mengautentikasi aplikasi cerdas dengan aman dengan Azure OpenAI.

Mengautentikasi aplikasi klien melalui sertifikat

Diagram yang memperlihatkan arsitektur untuk mengautentikasi pengguna melalui sertifikat.

Unduh file Visio arsitektur ini.

Batasan skenario

Skenario ini memiliki batasan berikut:

  • Anda ingin menggunakan sertifikat untuk mengautentikasi aplikasi klien.

  • Aplikasi klien tidak dapat menggunakan, atau Anda tidak ingin menggunakan, ID Microsoft Entra atau penyedia OIDC lainnya untuk autentikasi.

  • Klien tidak dapat menggunakan, atau Anda tidak ingin menggunakan identitas gabungan untuk autentikasi.

Batasan ini dapat berlaku untuk contoh berikut:

  • Klien yang mengautentikasi ke Azure OpenAI adalah komputer atau perangkat dan tidak ada interaksi pengguna yang terjadi.

  • Organisasi Anda mengharuskan Anda menggunakan sertifikat untuk autentikasi karena standar keamanan dan peraturan kepatuhan.

  • Anda ingin menyediakan beberapa aplikasi klien dengan opsi untuk mengautentikasi berdasarkan lingkungan mereka, termasuk menggunakan sertifikat klien.

Menyambungkan langsung ke Azure OpenAI

Azure OpenAI tidak secara asli mendukung autentikasi sertifikasi klien. Untuk mendukung skenario ini tanpa gateway, aplikasi cerdas perlu menggunakan autentikasi sertifikat untuk pengguna dan kunci API atau identitas terkelola untuk mengautentikasi permintaan ke instans Azure OpenAI. Anda harus menerapkan logika autentikasi sertifikat di setiap klien. Dalam skenario ini, autentikasi berbasis kunci memperkenalkan risiko dan overhead manajemen jika Anda terhubung langsung ke Azure OpenAI dari klien.

Memperkenalkan gateway

Diagram yang memperlihatkan gateway antara klien dan Azure OpenAI yang menggunakan identitas terkelola dengan RBAC.

Unduh file Visio arsitektur ini.

Anda dapat memperkenalkan gateway ke dalam arsitektur ini yang membongkar validasi sertifikasi klien dari klien. Gateway memvalidasi sertifikat digital klien yang disajikan aplikasi cerdas dan memeriksa penerbit, tanggal kedaluwarsa, thumbprint, dan daftar pencabutan. Gateway harus menggunakan identitas terkelola untuk mengautentikasi dirinya sendiri dengan Azure OpenAI. Gateway juga harus menggunakan Azure Key Vault untuk menyimpan otoritas sertifikat akar (CA). Gunakan pendekatan ini untuk mempusatkan validasi sertifikat klien, yang mengurangi overhead pemeliharaan.

Gateway memberikan beberapa keuntungan dalam skenario ini:

  • Anda menggunakan identitas terkelola gateway alih-alih kunci akses, yang menghilangkan risiko kunci yang dicuri dan mengurangi beban pemeliharaan rotasi kunci.

  • Anda dapat memusatkan validasi sertifikat, yang memastikan bahwa Anda menggunakan kebijakan keamanan yang konsisten untuk mengevaluasi sertifikat digital klien untuk semua aplikasi cerdas.

  • Anda dapat membongkar validasi sertifikat ke gateway, yang menyederhanakan kode klien.

Rekomendasi untuk skenario ini

  • Verifikasi seluruh rantai sertifikat, termasuk CA akar dan sertifikat perantara, saat Anda memvalidasi sertifikat. Verifikasi penuh memastikan keaslian sertifikat dan mencegah akses yang tidak sah.

  • Putar dan perbarui sertifikat klien secara teratur untuk meminimalkan risiko penyusupan sertifikat. Gunakan Key Vault untuk mengotomatiskan proses ini dan selalu memperbarui sertifikat. Atur pemberitahuan untuk kedaluwarsa sertifikat yang akan datang untuk mencegah gangguan layanan di gateway.

  • Terapkan Keamanan Lapisan Transportasi bersama (mTLS) untuk memastikan bahwa klien dan server saling mengautentikasi. Strategi ini memberikan lapisan keamanan tambahan. Untuk mengonfigurasi gateway untuk memberlakukan mTLS, atur kebijakan dan batasan yang sesuai.

  • Gunakan validate-client-certificate di API Management untuk memvalidasi sertifikat klien yang dirujuk Oleh Azure Key Vault. Kebijakan ini memvalidasi sertifikat klien yang disajikan aplikasi klien dan memeriksa penerbit, tanggal kedaluwarsa, thumbprint, dan daftar pencabutan.

Alasan untuk menghindari gateway untuk skenario ini

Di lingkungan sederhana yang memiliki beberapa klien, biaya penanganan manajemen keamanan dan sertifikat di klien dapat melebihi kompleksitas tambahan untuk memperkenalkan gateway. Selain itu, gateway dapat menjadi titik kegagalan tunggal, meningkatkan latensi karena lapisan tambahan, dan menyebabkan kunci vendor jika Anda memilih solusi komersial daripada implementasi kustom.

Anda harus menilai kebutuhan spesifik, ketersediaan sumber daya, dan kekritisan aplikasi Anda dengan cermat sebelum menerapkan gateway untuk autentikasi sertifikat klien.

Mengautentikasi beberapa aplikasi klien melalui kunci untuk mengakses instans Azure OpenAI bersama

Diagram beberapa aplikasi klien yang mengautentikasi dengan Azure OpenAI melalui kunci API bersama.

Unduh file Visio arsitektur ini.

Batasan skenario

Skenario ini memiliki batasan berikut:

  • Beberapa aplikasi klien mengakses instans Azure OpenAI bersama.
  • Klien tidak dapat menggunakan, atau Anda tidak ingin menggunakan, ID Microsoft Entra untuk autentikasi.
  • Klien tidak dapat menggunakan, atau Anda tidak ingin menggunakan identitas gabungan untuk autentikasi.
  • Anda ingin menggunakan autentikasi berbasis kunci untuk aplikasi klien.

Batasan ini dapat berlaku untuk contoh berikut:

  • Anda menyebarkan aplikasi klien di beberapa lingkungan, termasuk Azure, lokal, atau penyedia cloud lainnya.

  • Organisasi perlu menyediakan Azure OpenAI ke tim yang berbeda dan menetapkan batas akses dan penggunaan unik untuk setiap tim.

Menyambungkan langsung ke Azure OpenAI

Azure OpenAI mendukung autentikasi berbasis kunci melalui kunci bersama. Azure OpenAI mengekspos kunci primer dan kunci sekunder. Tujuan dari kunci sekunder adalah untuk mendukung rotasi kunci. Ini tidak menyediakan isolasi identitas klien. Saat Anda mengautentikasi beberapa klien langsung ke Azure OpenAI dalam skenario ini, setiap klien berbagi kunci yang sama. Implementasi ini memiliki tantangan berikut:

  • Anda tidak dapat mencabut izin untuk klien tertentu karena setiap klien berbagi kunci yang sama.

  • Anda tidak dapat memberikan klien yang berbeda hak akses yang berbeda ke model yang berbeda dalam penyebaran instans Azure OpenAI yang sama.

  • Anda tidak dapat membedakan satu klien dari klien lain dari perspektif pengelogan.

Memperkenalkan gateway

Diagram yang memperlihatkan gateway antara beberapa klien dan Azure OpenAI yang menggunakan kunci langganan per klien dan autentikasi identitas terkelola.

Unduh file Visio arsitektur ini.

Anda dapat memperkenalkan gateway ke dalam arsitektur ini yang mengeluarkan kunci khusus untuk setiap aplikasi klien. API Management menggunakan konsep langganan untuk menyediakan kunci klien khusus. Gateway harus menggunakan identitas terkelola untuk mengautentikasi dirinya sendiri dengan Azure OpenAI.

Gateway memberikan beberapa keuntungan dalam skenario ini:

  • Anda dapat mencabut akses ke satu aplikasi klien tanpa memengaruhi klien lain.

  • Anda tidak perlu memperbarui semua konfigurasi kunci klien sebelum memutar kunci, sehingga rotasi kunci secara logistik lebih mudah. Anda dapat memutar kunci khusus untuk setiap klien setelah memperbarui konfigurasi klien.

  • Anda dapat mengidentifikasi setiap klien secara unik dari perspektif pengelogan.

  • Gateway memberlakukan batas tarif dan kuota untuk setiap klien secara independen.

Rekomendasi untuk skenario ini

  • Tingkatkan pemantauan pada metrik yang terkait dengan permintaan API. Saat Anda menggunakan identitas terkelola dari gateway, keterlacakan aplikasi pengguna dan klien di log Azure OpenAI tidak meningkat. Gateway harus menyediakan pengelogan yang terkait dengan permintaan, seperti ID klien dan pengguna yang meminta.

  • Pastikan gateway membuat keputusan perutean untuk penyebaran model yang sesuai berdasarkan identitas klien saat Anda merutekan beberapa permintaan aplikasi klien melalui gateway ke instans Azure OpenAI bersama. Untuk informasi selengkapnya, lihat Menggunakan gateway di depan beberapa penyebaran Azure OpenAI.

Mengautentikasi aplikasi klien yang mengakses beberapa instans Azure OpenAI

Diagram yang menunjukkan aplikasi klien yang mengautentikasi dengan beberapa instans Azure OpenAI melalui kunci API bersama per instans.

Unduh file Visio arsitektur ini.

Batasan skenario

Skenario ini memiliki batasan berikut:

  • Aplikasi klien terhubung ke beberapa instans Azure OpenAI di satu atau beberapa wilayah.
  • Klien tidak dapat menggunakan, atau Anda tidak ingin menggunakan, ID Microsoft Entra atau penyedia OIDC lainnya untuk autentikasi.
  • Anda ingin menggunakan autentikasi berbasis kunci untuk aplikasi klien.

Batasan ini dapat berlaku untuk contoh berikut:

  • Aplikasi klien harus mendistribusikan beban kerja mereka secara geografis untuk mengurangi latensi dan meningkatkan performa.

  • Aplikasi klien mencoba mengoptimalkan token per menit dengan menyebarkan instans di beberapa wilayah.

  • Organisasi memerlukan kegagalan waktu henti minimal dan kemampuan pemulihan bencana untuk memastikan operasi berkelanjutan. Jadi mereka mengelola strategi penyebaran ganda, seperti strategi yang terdiri dari penyebaran throughput yang disediakan dan penyebaran bayar sesuai penggunaan.

  • Aplikasi klien harus menggunakan kemampuan model tertentu yang hanya tersedia di wilayah Azure tertentu.

Menyambungkan langsung ke beberapa instans Azure OpenAI

Saat aplikasi klien terhubung langsung ke beberapa instans Azure OpenAI, setiap klien harus menyimpan kunci untuk setiap instans. Seiring dengan pertimbangan keamanan menggunakan kunci, ada peningkatan beban manajemen mengenai memutar kunci.

Memperkenalkan gateway

Diagram gateway dengan satu kunci ke aplikasi klien dan autentikasi identitas terkelola ke Azure OpenAI dengan RBAC.

Unduh file Visio arsitektur ini.

Saat Anda menggunakan gateway untuk menangani aplikasi klien yang mengakses beberapa penyebaran Azure OpenAI, Anda mendapatkan manfaat yang sama dengan gateway yang menangani beberapa aplikasi klien melalui kunci untuk mengakses instans Azure OpenAI bersama. Anda juga menyederhanakan proses autentikasi karena Anda menggunakan satu identitas terkelola yang ditentukan pengguna untuk mengautentikasi permintaan dari gateway ke beberapa instans Azure OpenAI. Terapkan pendekatan ini untuk mengurangi overhead operasional secara keseluruhan dan meminimalkan risiko kesalahan konfigurasi klien saat Anda bekerja dengan beberapa instans.

Contoh bagaimana gateway digunakan di Azure untuk membongkar identitas ke perantara adalah sumber daya Azure AI Services. Dalam implementasi tersebut, Anda mengautentikasi ke gateway, dan gateway menangani autentikasi ke layanan Azure AI yang berbeda seperti Visi Kustom atau Ucapan. Meskipun implementasi tersebut serupa, implementasi tersebut tidak mengatasi skenario ini.

Rekomendasi untuk skenario ini

  • Terapkan teknik penyeimbangan beban untuk mendistribusikan permintaan API di beberapa instans Azure OpenAI untuk menangani lalu lintas tinggi dan memastikan ketersediaan tinggi. Untuk informasi selengkapnya, lihat Menggunakan gateway di depan beberapa penyebaran atau instans Azure OpenAI.

  • Menghubungkan penggunaan token untuk setiap penyewa di gateway saat Anda menerapkan skenario multipenyewa dengan beberapa instans Azure OpenAI. Pendekatan ini memastikan bahwa Anda melacak total penggunaan token, terlepas dari instans Azure OpenAI back-end tempat permintaan diteruskan.

Rekomendasi umum

Saat Anda mengintegrasikan Azure OpenAI melalui gateway, ada beberapa rekomendasi lintas pemotongan untuk mempertimbangkan hal tersebut berlaku di semua skenario.

Gunakan Azure API Management alih-alih membuat solusi Anda sendiri untuk orkestrasi API, integrasi dengan layanan Azure lainnya, dan penghematan biaya dengan mengurangi upaya pengembangan dan pemeliharaan. API Management memastikan manajemen API yang aman dengan langsung mendukung autentikasi dan otorisasi. Ini terintegrasi dengan penyedia identitas, seperti ID Microsoft Entra, yang memungkinkan OAuth 2.0 dan menyediakan otorisasi berbasis kebijakan. Selain itu, API Management menggunakan identitas terkelola untuk akses yang aman dan pemeliharaan rendah ke Azure OpenAI.

Menggabungkan skenario untuk solusi gateway yang komprehensif

Dalam aplikasi dunia nyata, kasus penggunaan Anda dapat mencakup beberapa skenario dari artikel ini. Misalnya, Anda mungkin memiliki aplikasi klien yang mengautentikasi melalui idP eksternal dan memerlukan akses ke beberapa instans Azure OpenAI.

Diagram yang memperlihatkan aplikasi klien yang mengautentikasi dengan penyedia identitas eksternal melalui gateway, yang memiliki akses ke beberapa instans Azure OpenAI.

Unduh file Visio arsitektur ini.

Untuk membangun gateway yang mendukung persyaratan spesifik Anda, gabungkan rekomendasi dari skenario ini untuk pendekatan komprehensif.

Menerapkan kebijakan gateway

Sebelum gateway mengirim permintaan ke instans Azure OpenAI, pastikan Anda menerapkan kebijakan autentikasi dan otorisasi masuk. Untuk memastikan bahwa gateway hanya meneruskan permintaan yang diautentikasi dan diotorisasi, gunakan token akses pengguna dari penyedia identitas atau validasi sertifikat untuk menerapkan pendekatan ini.

Untuk mengaktifkan kontrol terperinci, terapkan lebih banyak cakupan otorisasi dengan peran dan izin untuk aplikasi klien di gateway Anda. Gunakan cakupan ini untuk mengizinkan operasi tertentu berdasarkan kebutuhan aplikasi klien. Pendekatan ini meningkatkan keamanan dan pengelolaan.

Untuk validasi token akses, pastikan untuk memvalidasi semua klaim terdaftar utama seperti iss, , audexp, dan nbf klaim khusus beban kerja yang relevan seperti keanggotaan grup atau peran aplikasi.

Menggunakan identitas terkelola Azure

Untuk menyederhanakan autentikasi di semua skenario aplikasi klien, gunakan identitas terkelola Azure untuk mempusatkan manajemen autentikasi. Pendekatan ini mengurangi kompleksitas dan risiko yang terkait dengan pengelolaan beberapa kunci API atau kredensial dalam aplikasi klien.

Identitas terkelola secara inheren mendukung Azure RBAC, sehingga mereka memastikan bahwa gateway hanya memiliki tingkat izin terendah yang diperlukan untuk mengakses instans Azure OpenAI. Untuk mengurangi risiko akses yang tidak sah dan menyederhanakan kepatuhan dengan kebijakan keamanan, gabungkan identitas terkelola dengan metode lain yang menonaktifkan autentikasi alternatif.

Menerapkan pengamatan komprehensif

Saat Anda menerapkan gateway dengan identitas terkelola, gateway mengurangi keterlacakan karena identitas terkelola mewakili gateway itu sendiri, bukan pengguna atau aplikasi yang membuat permintaan. Oleh karena itu, penting untuk meningkatkan pengamatan pada metrik yang terkait dengan permintaan API. Untuk mempertahankan visibilitas atas pola akses dan penggunaan, gateway harus menyediakan lebih banyak metadata pelacakan, seperti KLIEN dan ID pengguna yang meminta.

Pengelogan terpusat dari semua permintaan yang melewati gateway membantu Anda mempertahankan jejak audit. Jejak audit terpusat sangat penting untuk pemecahan masalah, kepatuhan, dan mendeteksi upaya akses yang tidak sah.

Penembolokan alamat dengan aman

Jika gateway API Anda bertanggung jawab untuk penyelesaian penembolokan atau hasil inferensi lainnya, pastikan identitas pemohon dipertimbangkan dalam logika cache. Jangan mengembalikan hasil cache untuk identitas yang tidak berwenang untuk menerima data tersebut.

Implementasi gateway

Azure tidak menyediakan solusi turnkey lengkap atau arsitektur referensi untuk membangun gateway dalam artikel ini, jadi Anda harus membangun dan mengoperasikan gateway. Manajemen Azure API dapat digunakan untuk membangun solusi berbasis PaaS melalui kebijakan bawaan dan kustom. Azure juga menyediakan contoh implementasi yang didukung komunitas yang mencakup kasus penggunaan dalam artikel ini. Referensikan sampel ini saat Anda membangun solusi gateway Anda sendiri. Untuk informasi selengkapnya, lihat video Learn Live: Identitas dan keamanan aplikasi Azure OpenAI.

Kontributor

Kontributor berikut awalnya menulis artikel ini.

Penulis utama:

Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.

Langkah berikutnya