Menggunakan Azure OpenAI tanpa kunci

Permintaan aplikasi ke sebagian besar layanan Azure harus diautentikasi dengan kunci atau koneksi tanpa kata sandi. Pengembang harus rajin untuk tidak pernah mengekspos kunci di lokasi yang tidak aman. Siapa pun yang mendapatkan akses ke kunci dapat mengautentikasi ke layanan. Autentikasi tanpa kunci menawarkan manfaat manajemen dan keamanan yang ditingkatkan atas kunci akun karena tidak ada kunci (atau string koneksi) untuk disimpan.

Koneksi tanpa kunci diaktifkan dengan langkah-langkah berikut:

  • Konfigurasikan autentikasi Anda.
  • Atur variabel lingkungan, sesuai kebutuhan.
  • Gunakan jenis kredensial pustaka Azure Identity untuk membuat objek klien Azure OpenAI.

Autentikasi

Autentikasi ke ID Microsoft Entra diperlukan untuk menggunakan pustaka klien Azure.

Autentikasi berbeda berdasarkan lingkungan tempat aplikasi berjalan:

Blok Pembangun Tanpa Kunci Azure OpenAI

Gunakan tautan berikut untuk menjelajahi templat Azure OpenAI Keyless Building Block AI. Templat ini menyediakan akun Azure OpenAI dengan izin peran RBAC akun pengguna Anda untuk autentikasi tanpa kunci (Microsoft Entra) untuk mengakses SDK OPENAI API.

Catatan

Artikel ini menggunakan satu atau beberapa templat aplikasi AI sebagai dasar untuk contoh dan panduan dalam artikel. Templat aplikasi AI memberi Anda implementasi referensi yang terawat dan mudah disebarkan dengan baik yang membantu memastikan titik awal berkualitas tinggi untuk aplikasi AI Anda.

Jelajahi templat AI Blok AI Autentikasi Tanpa Kunci Azure OpenAI End to end.

Mengautentikasi untuk pengembangan lokal

Pilih alat untuk autentikasi selama pengembangan lokal.

Penting

Untuk akses ke sumber daya Azure Anda selama pengembangan lokal, Anda harus masuk ke alat pengembangan lokal menggunakan akun Azure tempat Anda menetapkan peran tersebut Azure AI Developer . Misalnya, Visual Studio atau Azure CLI.

Mengautentikasi untuk lingkungan yang dihosting Azure

Pelajari tentang cara mengelola DefaultAzureCredential untuk aplikasi yang disebarkan ke Azure.

Mengonfigurasi peran untuk otorisasi

  1. Temukan peran untuk penggunaan Azure OpenAI Anda. Bergantung pada bagaimana Anda berniat untuk mengatur peran tersebut, Anda memerlukan nama atau ID.

    Nama peran ID Peran
    Untuk Azure CLI atau Azure PowerShell, Anda bisa menggunakan nama peran. Untuk Bicep, Anda memerlukan ID peran.
  2. Gunakan tabel berikut untuk memilih peran dan ID.

    Gunakan huruf besar Nama peran ID Peran
    Asisten Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Penyelesaian obrolan Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Pilih jenis identitas yang akan digunakan.

    • Identitas pribadi: Identitas pribadi Anda terkait dengan masuk ke Azure.
    • Identitas terkelola: Identitas yang dikelola oleh dan dibuat untuk digunakan di Azure. Untuk identitas terkelola, buat identitas terkelola yang ditetapkan pengguna. Saat Anda membuat identitas terkelola, Anda memerlukan Client ID, juga dikenal sebagai app ID.
  4. Untuk menemukan identitas pribadi Anda, gunakan salah satu perintah berikut. Gunakan ID sebagai di <identity-id> langkah berikutnya.

    Untuk pengembangan lokal, untuk mendapatkan ID identitas Anda sendiri, gunakan perintah berikut. Anda perlu masuk sebelum az login menggunakan perintah ini.

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Tetapkan peran kontrol akses berbasis peran (RBAC) ke identitas untuk grup sumber daya.

    Untuk memberikan izin identitas Anda ke sumber daya Anda melalui RBAC, tetapkan peran menggunakan perintah Azure CLI az role assignment create.

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    Jika berlaku, ganti <identity-id>, <subscription-id>, dan <resource-group-name> dengan nilai aktual Anda.

Mengonfigurasi variabel lingkungan

Untuk menyambungkan ke Azure OpenAI, kode Anda perlu mengetahui titik akhir sumber daya Anda, dan mungkin memerlukan variabel lingkungan lain.

  1. Buat variabel lingkungan untuk titik akhir Azure OpenAI Anda.

    • AZURE_OPENAI_ENDPOINT: URL ini adalah titik akses untuk sumber daya Azure OpenAI Anda.
  2. Buat variabel lingkungan berdasarkan lokasi tempat aplikasi Anda berjalan:

    Lokasi Identitas Deskripsi
    Lokal Pribadi Untuk runtime lokal dengan identitas pribadi Anda, masuk untuk membuat kredensial Anda dengan alat.
    Cloud Azure Identitas terkelola yang ditetapkan pengguna Buat variabel lingkungan yang AZURE_CLIENT_ID berisi ID klien identitas terkelola yang ditetapkan pengguna untuk mengautentikasi sebagai.

Menginstal pustaka klien Azure Identity

Gunakan tautan berikut untuk menginstal pustaka klien Azure Identity.

Instal pustaka klien .NET Azure Identity:

dotnet add package Azure.Identity

Gunakan DefaultAzureCredential

Pustaka DefaultAzureCredential Azure Identity memungkinkan pelanggan untuk menjalankan kode yang sama di lingkungan pengembangan lokal dan di Azure Cloud.

Untuk informasi selengkapnya tentang DefaultAzureCredential untuk .NET, lihat gambaran umum DefaultAzureCredential.

Lakukan salah satu pendekatan berikut untuk mengatur ID klien identitas terkelola yang ditetapkan pengguna:

  • Atur variabel lingkungan AZURE_CLIENT_ID. Konstruktor DefaultAzureCredential tanpa parameter menggunakan nilai variabel lingkungan ini, jika ada.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
    
  • Atur properti ManagedIdentityClientId di DefaultAzureCredentialOptions:

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    var credential = new DefaultAzureCredential(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = "<user_assigned_client_id>"
        });
    
    OpenAIClient client = new(new Uri(endpoint), credential);
    

Sumber