Memecahkan masalah autentikasi Kerangka Kerja Bot

BERLAKU UNTUK: SDK v4

Panduan ini dapat membantu Anda memecahkan masalah autentikasi dengan bot Anda dengan mengevaluasi serangkaian skenario untuk menentukan di mana masalah tersebut ada.

Catatan

Untuk menyelesaikan semua langkah dalam panduan ini, Anda harus mengunduh dan menggunakan Bot Framework Emulator dan harus memiliki akses ke pengaturan pendaftaran bot di portal Azure.

ID aplikasi dan kata sandi

Keamanan bot dikonfigurasi oleh ID Aplikasi Microsoft dan Kata Sandi Aplikasi Microsoft yang Anda peroleh saat mendaftarkan bot Anda dengan Kerangka Kerja Bot. Nilai-nilai ini biasanya ditentukan dalam file konfigurasi bot dan digunakan untuk mengambil token akses dari layanan Akun Microsoft.

Jika Anda belum melakukannya, sebarkan bot Anda ke Azure untuk mendapatkan ID Aplikasi Microsoft dan Kata Sandi Aplikasi Microsoft yang dapat digunakan untuk autentikasi.

Catatan

Untuk menemukan AppID dan AppPassword bot Anda untuk bot yang sudah disebarkan, lihat MicrosoftAppID dan MicrosoftAppPassword.

Langkah 1: Nonaktifkan keamanan dan pengujian di localhost

Dalam langkah ini, Anda akan memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan dinonaktifkan.

Peringatan

Menonaktifkan keamanan untuk bot Anda dapat memungkinkan penyerang yang tidak dikenal untuk meniru pengguna. Hanya terapkan prosedur berikut jika Anda beroperasi di lingkungan penelusuran kesalahan yang dilindungi.

Menonaktifkan keamanan

Untuk menonaktifkan keamanan untuk bot Anda, edit pengaturan konfigurasinya untuk menghapus nilai untuk ID aplikasi dan kata sandi.

Jika Anda menggunakan Bot Framework SDK untuk .NET, tambahkan atau edit pengaturan di file appsettings.json Anda:

"MicrosoftAppId": "",
"MicrosoftAppPassword": ""

Menguji bot Anda di localhost

Selanjutnya, uji bot Anda di localhost dengan menggunakan Bot Framework Emulator.

  1. Mulai bot Anda di localhost.
  2. Mulai Emulator Kerangka Kerja Bot.
  3. Koneksi ke bot Anda menggunakan Emulator.
    • Ketik http://localhost:port-number/api/messages ke bilah alamat Emulator, di mana nomor port cocok dengan nomor port yang ditampilkan di browser tempat aplikasi Anda berjalan.
    • Pastikan bahwa bidang ID Aplikasi Microsoft dan Kata Sandi Aplikasi Microsoft kosong.
    • Klik Sambungkan.
  4. Untuk menguji konektivitas ke bot Anda, ketik beberapa teks ke emulator dan tekan Enter.

Jika bot merespons input dan tidak ada kesalahan di jendela obrolan, Anda telah memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan dinonaktifkan. Lanjutkan ke Langkah 2.

Jika satu atau beberapa kesalahan ditunjukkan di jendela obrolan, klik kesalahan untuk detailnya. Masalah umum meliputi:

  • Pengaturan Emulator menentukan titik akhir yang salah untuk bot. Pastikan Anda telah menyertakan nomor port yang tepat di URL dan jalur yang tepat di akhir URL, seperti /api/messages.
  • Pengaturan Emulator menentukan titik akhir bot yang dimulai dengan https. Di localhost, titik akhir harus dimulai dengan http.
  • Pengaturan Emulator menentukan nilai untuk bidang ID Aplikasi Microsoft dan/atau bidang Kata Sandi Aplikasi Microsoft. Kedua bidang harus kosong.
  • Keamanan belum dinonaktifkan untuk bot. Verifikasi bahwa bot tidak menentukan nilai untuk ID aplikasi atau kata sandi.

Langkah 2: Verifikasi ID aplikasi dan kata sandi bot Anda

Dalam langkah ini, Anda akan memverifikasi bahwa ID aplikasi dan kata sandi yang akan digunakan bot Anda untuk autentikasi valid. (Jika Anda tidak mengetahui nilai-nilai ini, dapatkan sekarang .)

Peringatan

Instruksi berikut menonaktifkan verifikasi SSL untuk login.microsoftonline.com. Hanya lakukan prosedur ini pada jaringan yang aman dan pertimbangkan untuk mengubah kata sandi aplikasi Anda setelahnya.

Menerbitkan permintaan HTTP ke layanan masuk Microsoft

Instruksi ini menjelaskan cara menggunakan cURL untuk mengeluarkan permintaan HTTP ke layanan masuk Microsoft. Anda dapat menggunakan alat alternatif seperti Postman, hanya memastikan bahwa permintaan sesuai dengan protokol autentikasi Bot Framework.

Untuk memverifikasi bahwa ID aplikasi dan kata sandi bot Anda valid, terbitkan permintaan berikut menggunakan cURL, mengganti APP_ID , dan APP_PASSWORD dengan ID aplikasi dan kata sandi bot Anda.

Tip

Kata sandi Anda mungkin berisi karakter khusus yang membuat panggilan berikut tidak valid. Jika demikian, coba konversi kata sandi Anda ke pengodean URL.

curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=APP_ID&client_secret=APP_PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default"

Permintaan ini mencoba menukar ID aplikasi dan kata sandi bot Anda dengan token akses. Jika permintaan berhasil, Anda akan menerima payload JSON yang berisi access_token properti, antara lain.

{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAJKV1Q..."}

Jika permintaan berhasil, Anda telah memverifikasi bahwa ID aplikasi dan kata sandi yang Anda tentukan dalam permintaan valid. Lanjutkan ke Langkah 3.

Jika Anda menerima kesalahan sebagai respons terhadap permintaan, periksa respons untuk mengidentifikasi penyebab kesalahan. Jika respons menunjukkan bahwa ID aplikasi atau kata sandi tidak valid, dapatkan nilai yang benar dari Portal Kerangka Kerja Bot dan terapkan kembali permintaan dengan nilai baru untuk mengonfirmasi bahwa mereka valid.

Langkah 3: Mengaktifkan keamanan dan pengujian di localhost

Pada titik ini, Anda telah memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost ketika keamanan dinonaktifkan dan mengonfirmasi bahwa ID aplikasi dan kata sandi yang akan digunakan bot untuk autentikasi valid. Dalam langkah ini, Anda akan memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan diaktifkan.

Mengaktifkan keamanan

Keamanan bot Anda bergantung pada layanan Microsoft, bahkan ketika bot Anda hanya berjalan di localhost. Untuk mengaktifkan keamanan untuk bot Anda, edit pengaturan konfigurasinya untuk mengisi ID aplikasi dan kata sandi dengan nilai yang Anda verifikasi di Langkah 2. Selain itu, pastikan paket Anda sudah diperbarui, khususnya System.IdentityModel.Tokens.Jwt dan Microsoft.IdentityModel.Tokens.

Jika Anda menggunakan Bot Framework SDK untuk .NET, isi pengaturan ini di nilai Anda appsettings.config atau yang sesuai dalam file Anda appsettings.json :

<appSettings>
  <add key="MicrosoftAppId" value="APP_ID" />
  <add key="MicrosoftAppPassword" value="PASSWORD" />
</appSettings>

Jika Anda menggunakan Bot Framework SDK untuk Node.js, isi pengaturan ini (atau perbarui variabel lingkungan yang sesuai):

var connector = new builder.ChatConnector({
  appId: 'APP_ID',
  appPassword: 'PASSWORD'
});

Catatan

Untuk menemukan AppID dan AppPassword bot Anda, lihat MicrosoftAppID dan MicrosoftAppPassword.

Menguji bot Anda di localhost

Selanjutnya, uji bot Anda di localhost dengan menggunakan Bot Framework Emulator.

  1. Mulai bot Anda di localhost.
  2. Mulai Emulator Kerangka Kerja Bot.
  3. Koneksi ke bot Anda menggunakan Emulator.
    • Ketik http://localhost:port-number/api/messages ke bilah alamat Emulator, di mana nomor port cocok dengan nomor port yang ditampilkan di browser tempat aplikasi Anda berjalan.
    • Masukkan ID aplikasi bot Anda ke bidang ID Aplikasi Microsoft.
    • Masukkan kata sandi bot Anda ke bidang Kata Sandi Aplikasi Microsoft.
    • Klik Sambungkan.
  4. Untuk menguji konektivitas ke bot Anda, ketik beberapa teks ke emulator dan tekan Enter.

Jika bot merespons input dan tidak ada kesalahan di jendela obrolan, Anda telah memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan diaktifkan. Lanjutkan ke Langkah 4.

Jika satu atau beberapa kesalahan ditunjukkan di jendela obrolan, klik kesalahan untuk detailnya. Masalah umum meliputi:

  • Pengaturan Emulator menentukan titik akhir yang salah untuk bot. Pastikan Anda telah menyertakan nomor port yang tepat di URL dan jalur yang tepat di akhir URL, seperti /api/messages.
  • Pengaturan Emulator menentukan titik akhir bot yang dimulai dengan https. Di localhost, titik akhir harus dimulai dengan http.
  • Di pengaturan Emulator, bidang ID Aplikasi Microsoft dan/atau Kata Sandi Aplikasi Microsoft tidak berisi nilai yang valid. Kedua bidang harus diisi dan setiap bidang harus berisi nilai terkait yang Anda verifikasi di Langkah 2.
  • Keamanan belum diaktifkan untuk bot. Verifikasi bahwa pengaturan konfigurasi bot menentukan nilai untuk ID aplikasi dan kata sandi.

Langkah 4: Uji bot Anda di cloud

Pada titik ini, Anda telah memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan dinonaktifkan, mengonfirmasi bahwa ID aplikasi dan kata sandi bot Anda valid, dan memverifikasi bahwa bot Anda dapat diakses dan berfungsi di localhost saat keamanan diaktifkan. Dalam langkah ini, Anda akan menyebarkan bot ke cloud dan memverifikasi bahwa bot tersebut dapat diakses dan berfungsi di sana dengan keamanan diaktifkan.

Menyebarkan bot Anda ke cloud

Bot Framework mengharuskan bot dapat diakses dari internet, jadi Anda harus menyebarkan bot Anda ke platform hosting cloud seperti Azure. Pastikan untuk mengaktifkan keamanan untuk bot Anda sebelum penyebaran, seperti yang dijelaskan di Langkah 3.

Catatan

Jika Anda belum memiliki penyedia hosting cloud, Anda dapat mendaftar untuk akun gratis.

Jika Anda menyebarkan bot ke Azure, SSL akan secara otomatis dikonfigurasi untuk aplikasi Anda, sehingga memungkinkan titik akhir HTTPS yang diperlukan Bot Framework. Jika Anda menyebarkan ke penyedia hosting cloud lain, pastikan untuk memverifikasi bahwa aplikasi Anda dikonfigurasi untuk SSL sehingga bot akan memiliki titik akhir HTTPS .

Menguji bot

Untuk menguji bot Anda di cloud dengan keamanan diaktifkan, selesaikan langkah-langkah berikut.

  1. Pastikan bot Anda telah berhasil disebarkan dan sedang berjalan.
  2. Masuk ke portal Azure.
  3. Navigasikan ke sumber daya Azure Bot untuk bot Anda di dalam portal.
  4. Klik Uji di Web Chat di panel manajemen Bot di sebelah kiri.
  5. Untuk menguji konektivitas ke bot Anda, ketik beberapa teks ke dalam kontrol obrolan web dan tekan Enter.

Jika kesalahan ditunjukkan di jendela obrolan, gunakan pesan kesalahan untuk menentukan penyebab kesalahan. Masalah umum meliputi:

  • Titik akhir Olahpesan yang ditentukan pada halaman Pengaturan untuk bot Anda di Portal Kerangka Kerja Bot salah. Pastikan Anda telah menyertakan jalur yang tepat di akhir URL, seperti /api/messages.
  • Titik akhir Olahpesan yang ditentukan pada halaman Pengaturan untuk bot Anda di Portal Kerangka Kerja Bot tidak dimulai dengan https atau tidak dipercaya oleh Kerangka Kerja Bot. Bot Anda harus memiliki sertifikat tepercaya rantai yang valid.
  • Bot dikonfigurasi dengan nilai yang hilang atau salah untuk ID aplikasi atau kata sandi. Verifikasi bahwa pengaturan konfigurasi bot menentukan nilai yang valid untuk ID aplikasi dan kata sandi.

Jika bot merespons input dengan tepat, Anda telah memverifikasi bahwa bot Anda dapat diakses dan berfungsi di cloud dengan keamanan diaktifkan. Pada titik ini, bot Anda siap untuk terhubung dengan aman ke saluran seperti Facebook Messenger, Direct Line, dan lainnya.

Sumber Daya Tambahan:

Jika Masih mengalami masalah setelah menyelesaikan langkah-langkah di atas, Anda dapat:

  • Tinjau cara men-debug bot dan artikel penelusuran kesalahan lainnya di bagian tersebut.
  • Debug bot Anda di cloud menggunakan Emulator Kerangka Kerja Bot dan perangkat lunak penerowongan ngrok . ngrok bukan produk Microsoft.
  • Gunakan alat proksi seperti Fiddler untuk memeriksa lalu lintas HTTPS ke dan dari bot Anda. Fiddler bukan produk Microsoft.
  • Tinjau panduan autentikasi Bot Koneksi or untuk mempelajari tentang teknologi autentikasi yang digunakan Bot Framework.
  • Ajukan bantuan dari orang lain dengan menggunakan sumber daya dukungan Bot Framework.