Bagikan melalui


Autentikasi pengguna

Diterapkan untuk: SDK v4

Terkadang bot harus mengakses sumber daya online aman atas nama pengguna, seperti memeriksa email, memeriksa status penerbangan, atau melakukan pemesanan. Pengguna harus mengotorisasi bot untuk melakukannya atas nama mereka, dan untuk mengotorisasi bot, pengguna harus mengautentikasi identitas mereka. OAuth digunakan untuk mengautentikasi pengguna dan mengotorisasi bot. Lihat juga Jenis autentikasi.

Jika Anda ingin me-refresh pengetahuan OAuth Anda, lihat yang berikut ini:

Autentikasi pengguna dalam percakapan

Untuk melakukan operasi tertentu atas nama pengguna, seperti memeriksa email, merujuk kalender, memeriksa status penerbangan, atau melakukan pesanan, bot harus memanggil layanan eksternal, seperti Microsoft Graph, GitHub, atau layanan REST perusahaan. Setiap layanan eksternal memiliki cara untuk mengamankan panggilan tersebut. Cara umum untuk mengeluarkan permintaan tersebut adalah dengan menggunakan token pengguna yang secara unik mengidentifikasi pengguna pada layanan eksternal tersebut (terkadang disebut sebagai JSON Web Token (JWT)).

Untuk mengamankan panggilan ke layanan eksternal, bot harus meminta pengguna untuk masuk, sehingga dapat memperoleh token pengguna untuk layanan tersebut. Banyak layanan mendukung pengambilan token melalui protokol OAuth atau OAuth2 .

Azure AI Bot Service menyediakan kartu dan layanan masuk khusus yang berfungsi dengan protokol OAuth dan mengelola siklus hidup token. Bot dapat menggunakan fitur-fitur ini untuk memperoleh token pengguna.

  • Sebagai bagian dari konfigurasi bot, koneksi OAuth terdaftar dalam sumber daya Azure AI Bot Service di Azure.

    Koneksi berisi informasi tentang penyedia identitas yang akan digunakan, bersama dengan ID dan rahasia klien OAuth yang valid, cakupan OAuth untuk diaktifkan, dan metadata koneksi lain yang diperlukan oleh penyedia identitas tersebut.

  • Dalam kode bot, koneksi OAuth digunakan untuk membantu masuk pengguna dan mendapatkan token pengguna.

Gambar berikut menunjukkan elemen yang terlibat dalam proses autentikasi.

Diagram yang mengilustrasikan hubungan antara komponen autentikasi di Azure AI Bot Service.

Tentang Layanan Token Kerangka Kerja Bot

Layanan Token Kerangka Kerja Bot bertanggung jawab untuk:

  • Memfasilitasi penggunaan protokol OAuth dengan berbagai layanan eksternal.
  • Menyimpan token dengan aman untuk bot, saluran, percakapan, dan pengguna tertentu.
  • Memperoleh token pengguna.

    Petunjuk / Saran

    Jika bot memiliki token pengguna yang kedaluwarsa, bot harus:

    • Keluarkan pengguna
    • Mulai ulang proses masuk

Misalnya, bot yang dapat memeriksa email terbaru pengguna, menggunakan Microsoft Graph API, memerlukan token pengguna dari Penyedia Identitas, dalam hal ini ID Microsoft Entra. Pada waktu desain, pengembang bot melakukan dua langkah penting ini:

  1. Mendaftarkan aplikasi ID Microsoft Entra sebagai Penyedia Identitas pada Bot Framework Token Service melalui portal Azure.
  2. Mengonfigurasi koneksi OAuth (bernama misalnya GraphConnection) untuk bot.

Gambar berikut menunjukkan urutan waktu interaksi pengguna dengan bot saat permintaan email dibuat menggunakan layanan Microsoft Graph.

Diagram urutan yang menguraikan langkah-langkah bot untuk mengirim email atas nama pengguna.

  1. Pengguna membuat permintaan email ke bot.

  2. Aktivitas dengan pesan ini dikirim oleh pengguna ke layanan kanal Bot Framework. Layanan kanal memastikan bahwa bidang userid dalam aktivitas telah diatur dan pesan dikirim ke bot.

    Nota

    ID pengguna adalah channel spesifik, seperti ID Facebook pengguna atau nomor telepon SMS mereka.

  3. Bot membuat permintaan ke Bot Framework Token Service dengan menanyakan apakah sudah ada token untuk UserId pada koneksi OAuth GraphConnection.

  4. Karena ini adalah pertama kalinya pengguna ini berinteraksi dengan bot, Bot Framework Token Service belum memiliki token untuk pengguna ini, dan mengembalikan hasil NotFound ke bot.

    Nota

    Jika token ditemukan, langkah-langkah autentikasi dilewati dan bot dapat membuat permintaan email menggunakan token yang disimpan.

  5. Bot membuat OAuthCard dengan nama koneksi GraphConnection dan membalas pengguna dengan meminta mereka untuk masuk menggunakan kartu ini.

  6. Aktivitas melewati Bot Framework Channel Service, yang kemudian memanggil Bot Framework Token Service untuk membuat URL masuk OAuth yang valid untuk permintaan ini. URL masuk ini ditambahkan ke OAuthCard dan kartu dikembalikan kepada pengguna.

  7. Pengguna disajikan dengan pesan untuk masuk dengan mengklik tombol masuk OAuthCard.

  8. Saat pengguna mengklik tombol masuk, layanan saluran membuka browser web dan memanggil layanan eksternal untuk memuat halaman masuknya.

  9. Pengguna masuk ke halaman ini untuk layanan eksternal. Kemudian layanan eksternal menyelesaikan pertukaran protokol OAuth dengan Bot Framework Token Service, yang mengakibatkan layanan eksternal mengirim Bot Framework Token Service token pengguna. Layanan Token Kerangka Kerja Bot menyimpan token ini dengan aman dan mengirim aktivitas ke bot dengan token ini.

  10. Bot menerima aktivitas dengan token dan dapat menggunakannya untuk melakukan panggilan terhadap MS Graph API.

Mengamankan URL masuk

Pertimbangan penting ketika Bot Framework memfasilitasi login pengguna adalah cara mengamankan URL masuk. Saat pengguna disajikan dengan URL masuk, URL ini dikaitkan dengan ID percakapan dan ID pengguna tertentu untuk bot tersebut. Jangan bagikan URL ini—hal ini akan menyebabkan proses masuk yang salah terjadi untuk percakapan bot tertentu. Untuk mengurangi serangan keamanan yang menggunakan URL masuk bersama, pastikan bahwa komputer dan orang yang mengklik URL masuk adalah orang yang memiliki jendela percakapan.

Beberapa saluran seperti Microsoft Teams, Direct Line, dan WebChat dapat melakukan ini tanpa pemberitahuan pengguna. Misalnya, WebChat menggunakan cookie sesi untuk memastikan bahwa alur masuk berlangsung di browser yang sama dengan percakapan WebChat. Namun, untuk saluran lain pengguna sering disajikan dengan kode ajaib 6 digit. Ini mirip dengan autentikasi multifaktor bawaan, karena Bot Framework Token Service tidak akan merilis token ke bot kecuali pengguna menyelesaikan autentikasi akhir, membuktikan bahwa orang yang masuk memiliki akses ke pengalaman obrolan dengan memasukkan kode 6 digit.

Penting

Harap diingat pertimbangan Keamanan penting ini. Anda dapat menemukan informasi tambahan dalam posting blog ini: Menggunakan WebChat dengan Autentikasi Azure AI Bot Service.

Langkah selanjutnya

Sekarang setelah Anda tahu tentang autentikasi pengguna, mari kita lihat cara menerapkannya ke bot Anda.

Lihat juga