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.
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:
Mengautentikasi aplikasi klien melalui penyedia identitas eksternal
Mengautentikasi beberapa aplikasi klien melalui kunci untuk mengakses instans Azure OpenAI bersama
Mengautentikasi aplikasi klien yang mengakses beberapa instans 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
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
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-jwtGunakan 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
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
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-certificatedi 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
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
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
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
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.
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:
- Lizet Pena De Sola | Insinyur Pelanggan Senior, FastTrack untuk Azure
- Bappaditya Banerjee | Insinyur Pelanggan Senior, FastTrack untuk Azure
- James Croft | Teknisi Pelanggan, ISV & Digital Native Center of Excellence
Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.
Langkah berikutnya
- RBAC untuk Azure OpenAI
- Menggunakan identitas terkelola dalam API Management
- Kebijakan di API Management
- Autentikasi dan otorisasi ke API di API Management
- Melindungi API di API Management dengan menggunakan OAuth 2.0 dan ID Microsoft Entra
- Mengamankan layanan back-end dengan menggunakan autentikasi sertifikat klien di API Management