Jenis autentikasi

BERLAKU UNTUK: SDK v4

Dalam Kerangka Kerja Bot, ada dua kategori autentikasi luas: autentikasi bot dan autentikasi pengguna. Masing-masing memiliki token terkait untuk mengizinkan akses ke sumber daya aman. Gambar berikut menunjukkan elemen yang terlibat dalam bot dan autentikasi pengguna.

Diagram illustrating the difference between the token for a bot and the token for a user.

Dalam angka ini:

  • Platform Host adalah platform hosting bot. Ini bisa berupa Azure atau platform host apa pun yang Anda pilih.
  • Bot Koneksi or Service memfasilitasi komunikasi antara bot dan saluran. Ini mengonversi pesan yang diterima dari saluran menjadi objek aktivitas, dan mengirimkannya ke titik akhir olahpesan bot. Demikian juga, ini mengonversi objek aktivitas yang diterima dari bot menjadi pesan yang dipahami oleh saluran dan mengirimkannya ke saluran.
  • Bot Adapter adalah adaptor Bot Framework default. Itu:
    • Mengonversi payload JSON menjadi objek aktivitas.
    • Membuat konteks giliran dan menambahkan objek aktivitas ke dalamnya.
    • Menjalankan middleware, jika ada.
    • Meneruskan konteks giliran ke bot.

Catatan

Saat adaptor saluran kustom digunakan, adaptor itu sendiri melakukan tugas yang dilakukan Bot Koneksi or Service dan Adaptor Bot default. Selain itu, ini menyediakan mekanisme autentikasi untuk API web hook terkait. Misalnya, lihat Koneksi bot ke Slack menggunakan adaptor Slack.

Autentikasi bot

Bot diidentifikasi oleh MicrosoftAppID dan MicrosoftAppPassword, yang disimpan dalam file pengaturan bot (appsettings.json (.NET), .env (JavaScript), config.py (Python)) atau di rahasia atau manajer kunci. Untuk informasi selengkapnya, lihat MicrosoftAppID dan MicrosoftAppPassword.

Saat Anda mendaftarkan bot di portal Azure, Azure membuat aplikasi pendaftaran ID Microsoft Entra. Jika Anda menggunakan Bot Framework CLI, Anda harus secara khusus melakukan langkah untuk membuat pendaftaran ID Microsoft Entra. Pendaftaran ini memiliki ID aplikasi (MicrosoftAppID) dan rahasia klien (MicrosoftAppPassword). Azure menggunakan nilai-nilai ini untuk menghasilkan token tempat bot dapat mengakses sumber daya yang aman.

Saat saluran mengirim permintaan ke bot, melalui layanan Bot Koneksi or, saluran menentukan token di header Otorisasi permintaan. Bot mengautentikasi panggilan dari layanan Bot Koneksi or dengan memverifikasi keaslian token.

Ketika bot mengirim permintaan ke saluran melalui layanan Bot Koneksi or, bot harus menentukan token di header Otorisasi permintaan. Semua permintaan harus menyertakan token akses, yang diverifikasi oleh layanan Bot Koneksi or untuk mengotorisasi permintaan.

Operasi yang dijelaskan secara otomatis dilakukan oleh Bot Framework SDK.

Untuk informasi selengkapnya, lihat dokumentasi REST API tentang cara mengautentikasi permintaan dari layanan Bot Koneksi or ke bot Anda dan mengautentikasi permintaan dari bot Anda ke layanan Bot Koneksi or.

Saluran

Biasanya, saluran berkomunikasi dengan bot melalui layanan Bot Koneksi or, sehingga prinsip autentikasi sebelumnya umumnya berlaku. Beberapa saluran dan fitur memiliki pertimbangan autentikasi yang unik.

Direct Line

Selain saluran standar yang didukung, aplikasi klien dapat berkomunikasi dengan bot menggunakan saluran Direct Line.

Aplikasi klien mengautentikasi permintaan ke Direct Line (versi 3.0) baik dengan menggunakan rahasia yang diperoleh dari halaman konfigurasi saluran Direct Line di portal Azure atau, lebih baik, dengan menggunakan token yang diperoleh saat runtime. Rahasia atau token ditentukan di header Otorisasi setiap permintaan.

Penting

Saat Anda menggunakan autentikasi Azure AI Bot Service dengan Web Chat, ada beberapa pertimbangan keamanan penting yang harus Anda ingat. Untuk informasi selengkapnya, lihat bagian pertimbangan keamanan di artikel autentikasi REST.

Untuk informasi selengkapnya, lihat Menjaga rahasia Anda tetap tersembunyi, menukar rahasia Anda dengan token, dan menghasilkan sematkan.

Web Chat

Web Chat memiliki dua implementasi: saluran dan kontrol.

  • Saat Anda mendaftarkan bot dengan Azure, saluran Web Chat secara otomatis dikonfigurasi untuk memungkinkan pengujian bot. Untuk informasi selengkapnya, lihat Koneksi bot ke Web Chat.
  • Anda dapat menggunakan kontrol Web Chat dengan saluran Direct Line untuk menyediakan akses ke bot di aplikasi klien. Untuk informasi selengkapnya tentang kontrol, lihat Bot Framework Web Chat.

Keterampilan

Keterampilan dan konsumen keterampilan adalah dua bot yang berbeda, masing-masing dengan ID aplikasi dan kata sandi mereka sendiri.

  • Konsumen dapat meneruskan aktivitas pengguna ke keterampilan dan meneruskan respons keterampilan kepada pengguna.
  • Untuk keterampilan, konsumen keterampilan bertindak sebagai saluran. Konsumen memiliki titik akhir host keterampilan yang bertindak sebagai URL layanan tempat keterampilan mengirim aktivitas.
  • Untuk informasi selengkapnya tentang keterampilan, lihat gambaran umum keterampilan.

Autentikasi tingkat layanan dikelola oleh layanan Bot Koneksi or. Kerangka kerja menggunakan token pembawa dan ID aplikasi bot untuk memverifikasi identitas setiap bot.

Penting

Ini mengharuskan semua bot (konsumen keterampilan dan keterampilan apa pun yang dikonsumsinya) untuk memiliki kredensial aplikasi yang valid.

Validasi klaim

Selain tingkat autentikasi dasar ini, Anda harus menambahkan validator klaim ke konfigurasi autentikasi keterampilan dan konsumen keterampilan. Klaim dievaluasi setelah header autentikasi. Proses ini memungkinkan setiap bot untuk membatasi bot lain mana yang akan diterima aktivitasnya.

Untuk validasi klaim sampel, lihat cara menerapkan keterampilan dan mengimplementasikan konsumen keterampilan.

Emulator Framework Bot

Bot Framework Emulator memiliki alur autentikasi sendiri dan tokennya sendiri. Emulator memiliki salurannya sendiri dan server bawaan.

Autentikasi pengguna

Terkadang, bot harus mengakses sumber daya online yang aman atas nama pengguna. Untuk melakukan itu, bot harus diotorisasi. Ini karena untuk melakukan operasi tertentu seperti memeriksa email, memeriksa status penerbangan, atau melakukan pemesanan, bot perlu memanggil layanan eksternal seperti Microsoft Graph, GitHub, atau layanan REST perusahaan. OAuth digunakan untuk mengautentikasi pengguna dan mengotorisasi bot.

Catatan

Dua langkah makro terlibat bagi bot untuk mengakses sumber daya pengguna.

  1. Autentikasi. Proses verifikasi identitas pengguna.
  2. Otorisasi. Proses verifikasi bahwa bot dapat mengakses sumber daya pengguna.

Jika langkah pertama berhasil, maka token berdasarkan kredensial pengguna dikeluarkan. Pada langkah kedua, bot menggunakan token untuk mengakses sumber daya pengguna.

Untuk informasi selengkapnya, lihat Autentikasi pengguna.

IdP

Penyedia identitas mengautentikasi identitas pengguna atau klien dan mengeluarkan token keamanan yang dapat dikonsumsi. Ini menyediakan autentikasi pengguna sebagai layanan. Aplikasi klien, seperti aplikasi web, mendelegasikan autentikasi ke penyedia identitas tepercaya.

Bot dapat menggunakan penyedia identitas tepercaya untuk:

  • Aktifkan fitur akses menyeluruh (SSO), memungkinkannya mengakses beberapa sumber daya aman.
  • Koneksi ke sumber daya komputasi cloud atas nama pengguna, mengurangi kebutuhan pengguna untuk mengautentikasi ulang.

Catatan

Token yang dikeluarkan selama autentikasi Bot bukan token yang sama yang dikeluarkan selama autentikasi Pengguna. Yang pertama digunakan untuk membangun komunikasi yang aman antara bot, saluran, dan, pada akhirnya, aplikasi klien. Yang kedua digunakan untuk mengotorisasi bot untuk mengakses sumber daya aman atas nama pengguna.

Perhatikan bahwa saluran menyediakan autentikasi pengguna terpisah mereka sendiri untuk memungkinkan pengguna masuk ke saluran.

Lihat Penyedia identitas untuk informasi selengkapnya tentang bagaimana bot dapat menggunakan penyedia identitas untuk mengakses sumber daya atas nama pengguna.