Botframework-solutions: Otentikasi tidak berfungsi di TypeScript Skill

Dibuat pada 20 Jul 2020  ·  38Komentar  ·  Sumber: microsoft/botframework-solutions

Proyek apa yang terpengaruh?

Asisten dan Keterampilan Virtual TypeScript

Ini dalam bahasa apa?

TypeScript

Apa yang terjadi?

Kesalahan berikut muncul saat mencoba otentikasi

Kesalahan: DialogContext.beginDialog(): Dialog dengan id 'AuthPrompt' tidak ditemukan.
di WaterfallStepContext.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
di Generator.next ()
di D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
pada Janji baru ()
di __awaiter (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
di WaterfallStepContext.beginDialog (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
di MultiProviderAuthDialog.firstStep (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
di Waterfall Dialog.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
di Generator.next ()
di D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

Apa langkah-langkah untuk mereproduksi masalah ini?

Sebarkan Asisten dan keterampilan virtual. Aktifkan MultiProviderAuthDialog di skill
Gunakan dialog otentikasi untuk mengautentikasi dengan Azure Active Directory v2

Apa yang Anda harapkan terjadi?

Terima kartu masuk untuk masuk

Bisakah Anda membagikan log, keluaran kesalahan, dll.?

Kesalahan: DialogContext.beginDialog(): Dialog dengan id 'AuthPrompt' tidak ditemukan.
di WaterfallStepContext.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
di Generator.next ()
di D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
pada Janji baru ()
di __awaiter (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
di WaterfallStepContext.beginDialog (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
di MultiProviderAuthDialog.firstStep (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
di Waterfall Dialog.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
di Generator.next ()
di D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

Ada tangkapan layar atau konteks tambahan?

Skills Bot Services Kobuk bug customer-replied-to customer-reported in-progress

Komentar yang paling membantu

Terima kasih sekali lagi @Batta32! Saya memang menggunakan paket 1.0 untuk pengujian. Saya masih perlu menyimpan pengaturan koneksi di keterampilan, tetapi saya bisa membuat otentikasi berfungsi. Saya dapat melihat di mana VA menerima respons token dan meneruskannya ke keterampilan untuk diproses.

Semua 38 komentar

Terima kasih @tomSauret847 telah melaporkan masalah ini! Segera setelah kami memiliki pembaruan, kami akan menghubungi Anda kembali 😊.

Hai @tomSauret847 - maaf atas keterlambatannya. Kami telah berhasil mereproduksi masalah menggunakan TypeScript Skill dengan mengikuti langkah-langkah berikut:

  1. Batalkan komentar pada baris di
  2. Lulus OAuthPromptSettings array ke MultiProviderAuthDialog konstruktor
  3. Tambahkan appsettings.oauthConnections ke properti botSettings
  4. Tambahkan koneksi AADv2
  5. Siapkan koneksi AADv2 ke pendaftaran di Azure

Segera setelah kami memiliki pembaruan, kami akan menghubungi Anda kembali 😊.

image

Hai @tomSauret847 - kami telah memperbaiki masalah ini di komit ini.

Ini sebenarnya merupakan masalah di pustaka bot-solutions , dan kami telah menjadwalkan perbaikan untuk dirilis dengan pustaka versi 1.0 .

Sementara itu, jika Anda menginginkan cara untuk menguji perbaikannya sendiri, Anda dapat mengikuti langkah -

  1. Periksa cabang ini , dengan perbaikan yang diterapkan untuk perpustakaan versi 0.8.
  2. Buka folder solusi bot
  3. Jalankan npm install untuk menginstal dependensinya.
  4. Jalankan npm run build untuk membangun solusi.
  5. Jalankan npm pack untuk menghasilkan file .tgz . Itu harus membuat file di lokasi yang sama, bernama bot-solutions-version.tgz
  6. Arahkan ke tgz yang dihasilkan di bot Keterampilan Anda, ganti referensi solusi bot di package.json bot dari "bot-solutions": "^1.0.0" menjadi "bot-solutions": "<PATH_TO_TGZ>"
  7. Validasi otentikasi menggunakan Skill

image

Kami akan memperhatikan balasan Anda 😊.

Terima kasih telah memeriksa @Batta32 ini. Saya masih menerima kesalahan pada proses ini. Kesalahannya adalah
Kesalahan: Tidak dapat menemukan Pengaturan Koneksi dengan nama {nama koneksi}

Saya menyiapkan koneksi seperti yang diuraikan di sini untuk menyiapkan SSO untuk suatu keterampilan.

Apakah kita masih perlu memiliki koneksi otentikasi di setiap keterampilan dengan keterampilan TypeScript?
Atau bisakah kita menggunakan SSO tunggal seperti yang diuraikan untuk keterampilan C#?

Jika saya menambahkan koneksi pada skill, saya akan mendapatkan prompt masuk seperti yang Anda lakukan tetapi saya tidak akan menerima token kembali setelah menyelesaikan login. Jika Anda dapat mengklarifikasi apakah kami perlu menyiapkan koneksi tunggal di VA atau jika kita perlu mengatur koneksi di setiap keterampilan yang memerlukan otentikasi.

Terima kasih @tomSauret847 atas balasan Anda. Segera setelah kami memiliki pembaruan, kami akan menghubungi Anda kembali 😊!

Hai @tomSauret847 - kami telah berhasil mereproduksi masalah. Itu karena properti name di oauthConnections dari appsettings.json berbeda dengan properti connectionName di OAuthPromptSettings Anda gunakan.

Kami akan terus meninjau ini dan menganalisis pertanyaan yang telah Anda sebutkan di atas. Segera setelah kami memiliki pembaruan, kami akan menghubungi Anda kembali 😊.

Langkah -

  1. Ikuti langkah-langkah komentar ini
  2. Setelah ini, ikuti langkah-langkah komentar ini
  3. Periksa apakah properti name di oauthConnections dari appsettings.json berbeda dengan properti connectionName di OAuthPromptSettings Anda gunakan
  4. Mulai Keterampilan dan ketik "jalankan dialog sampel", dan lihat kesalahannya

_Ketika connectionName dan name berbeda, masalah akan muncul kembali_
image

_Masalah direproduksi_
image

Hai @tomSauret847

Apakah kita masih perlu memiliki koneksi otentikasi di setiap keterampilan dengan keterampilan TypeScript?

Anda harus memiliki koneksi otentikasi di setiap TypeScript Skill hingga versi 1.0 dari TypeScript Skill dirilis.

Atau bisakah kita menggunakan SSO tunggal seperti yang diuraikan untuk keterampilan C#?

SSO untuk TypeScript tidak dapat digunakan seperti yang dijelaskan untuk Keterampilan C# karena TypeScript versi 1.0 belum dirilis.

Beri tahu kami jika ini membantu Anda 😊.

@tomSauret847 - kesalahan Error: Could not find Connection Setting with name {connection name} adalah karena properti name di oauthConnections dari appsettings berbeda dengan properti connectionName di OAuthPromptSettings Anda gunakan.

Untuk mengatasi ini, Anda harus memeriksa bahwa kedua properti adalah sama .

Untuk informasi lebih lanjut, Anda dapat memeriksa komentar di atas.

Terima kasih @Batta32 untuk melihat ini. Saya dapat mengonfirmasi bahwa jika saya membuat properti koneksi pada keterampilan, saya bisa mendapatkan prompt login. Komentar Anda telah memunculkan pertanyaan lain. Kami bersiap untuk melakukan pengujian dengan VA baru kami dan setelah itu memasuki produksi. Pertanyaan yang saya miliki,

Apakah perbaikan untuk otentikasi ini akan dipublikasikan ke NPM sebelum rilis 1.0?

Untuk lingkungan produksi kami, kami memerlukan paket NPM yang dipublikasikan sehingga kami memerlukan perbaikan ini untuk dipublikasikan sebelum kami dapat memindahkan VA ini ke dalam produksi. Saya akan memperhatikan jawaban Anda.

@tomSauret847 - Terima kasih atas balasan Anda! Kami menambahkan perbaikan ini di PR TypeScript versi 1.0:

  • PR #3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • PR #3584: [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • PR #3585: [TypeScript][Skill] Implement changes in Skill to 1.0 release

Kami akan memberi tahu Anda segera setelah kami memiliki pembaruan tentang ini. Sementara itu, kami sedang berupaya memvalidasi proses Otentikasi di TypeScript.

@tomSauret847 - kami mengidentifikasi masalah lain bahwa variabel Status Keterampilan _tidak terdefinisi_ selama proses Otentikasi.

Kami mengambil sebagai panduan PR #3561 yang menetapkan nilai default untuk pengakses Status Keterampilan yang kami masukkan dalam komit ini.
Setelah menerapkan perubahan ini, proses otentikasi bekerja dengan benar. Masalah ini akan diperbaiki segera setelah TypeScript v1.0 digabungkan.

Ini adalah lingkungan kita menggunakan cabang ini : feature/southworks/test-fix-auth-skill :

Sementara itu, jika Anda menginginkan cara untuk menguji perbaikan sendiri, Anda dapat mengikuti langkah-langkah ini:

  1. Buka folder solusi bot
  2. Jalankan npm install untuk menginstal dependensinya.
  3. Jalankan npm run build untuk membangun solusi.
  4. Jalankan npm pack untuk menghasilkan file .tgz. Itu harus membuat file di lokasi yang sama, bernama bot-solutions-version.tgz
  5. Buka folder Contoh Keterampilan
  6. Arahkan ke tgz yang dihasilkan di bot Contoh Keterampilan, ganti referensi solusi bot di package.json bot dari "bot-solutions": "^1.0.0" menjadi "bot-solutions": "<PATH_TO_TGZ>"
  7. Jalankan npm install untuk menginstal dependensinya.
  8. Jalankan npm run build untuk membangun solusi.
  9. Validasi proses otentikasi

Kami memperhatikan jawaban Anda. 😊

_Variabel SkillState mendapatkan nilai yang tidak ditentukan_
image

_Proses otentikasi bekerja dengan benar_
image

Terima kasih sekali lagi @Batta32! Saya memang menggunakan paket 1.0 untuk pengujian. Saya masih perlu menyimpan pengaturan koneksi di keterampilan, tetapi saya bisa membuat otentikasi berfungsi. Saya dapat melihat di mana VA menerima respons token dan meneruskannya ke keterampilan untuk diproses.

@Batta32 Kami memiliki otentikasi pengaturan di 2 keterampilan kami dan itu berfungsi dengan baik di saluran Tim. Saluran saluran langsung tidak melewati prompt otentikasi. Skill tidak menerima token kembali setelah login berhasil. Masalah ini hanya ada di saluran saluran langsung kami. Kami menggunakan contoh klien saluran langsung yang disediakan dan mengaktifkan opsi autentikasi yang ditingkatkan sehingga kami tidak memasukkan "Kode ajaib". Ini berfungsi sebelum menambahkan otentikasi yang ditingkatkan tetapi setelah menambahkan fitur ini, keterampilan tidak lagi menerima respons token kembali. Jika kami membatalkan keterampilan dan kembali ke dialog itu, token akan muncul dan kami dapat menyelesaikan dialog. Beri tahu saya jika Anda memiliki pemikiran tentang apa yang mungkin menyebabkan ini.

Terima kasih @tomSauret847 , kami akan meninjau skenario itu dan kami akan

Hanya untuk mulai meninjau skenario:

  1. Apa yang Anda maksud dengan "sampel klien sambungan langsung"?
  2. Klien mana yang Anda gunakan?
  3. Apa maksudmu dengan "Kode Ajaib"?

Terima kasih sekali lagi @Batta32 untuk melihat ini. Kami menggunakan sampel saluran langsung dari repo solusi pembuat bot yang terletak di sini
"Kode ajaib" dijelaskan beberapa dalam pertanyaan stack overflow di sini
Ini hanyalah kode yang harus disalin dan ditempelkan kembali oleh pengguna bot ke dalam percakapan setelah berhasil mengautentikasi. Dengan menerapkan autentikasi yang ditingkatkan, langkah ini dihapus untuk pengguna bot sehingga mereka hanya perlu mengautentikasi dan percakapan bergerak maju saat token diteruskan kembali ke bot di belakang layar.

Terima kasih banyak @tomSauret847 , kami akan meninjau ini dan kami akan memberi tahu Anda pembaruan apa pun di sini 😊!

Hai @tomSauret847 , kami tidak dapat mereproduksi masalah ini karena skenario otentikasi kami berfungsi dengan benar.

Kami datang dengan beberapa pertanyaan untuk Anda:

  1. Sudahkah Anda memeriksa apakah masalah ini terjadi saat berbicara langsung dengan Skill, tanpa terhubung ke Asisten Virtual?
  2. Jika Anda melalui VA untuk terhubung ke Skill, apakah Anda mengaktifkan saluran Directline di VA juga? Apa lagi yang telah Anda atur di dalamnya, autentikasi Azure AD v2, autentikasi yang ditingkatkan?
  3. Apa yang Anda maksud dengan "Jika kami membatalkan keterampilan dan kembali ke dialog itu, token akan muncul dan kami dapat menyelesaikan dialog"?

Ini adalah pengaturan yang kami gunakan:

  • Skill TypeScript yang dibuat dengan [email protected]
  • Pengaturan otentikasi tipe Azure AD v2 pada Skill itu
  • Saluran directline diaktifkan dengan autentikasi yang ditingkatkan pada Skill
  • Sampel web Directline dari repositori diatur ke id pengguna tertentu ("dl_xxxx")
  • Appsettings.json di klien Directline diatur mirip dengan ini:
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "BotName": "skillbot-name",
    "DirectLineSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "EnableDirectLineEnhancedAuthentication": true,
    "SpeechServiceRegionIdentifier": "",
    "SpeechServiceSubscriptionKey": ""
}

Langkah-langkah yang kami ikuti adalah:

  1. Menghubungi Skill melalui klien Directline
  2. Menjalankan dialog login ("jalankan dialog sampel")
  3. Mengklik tombol masuk (tidak perlu "kode ajaib")
  4. Kami berhasil masuk dan bot menyapa kami
  5. Sejak saat itu, setiap kali kita mengulangi langkah 1 dan 2 kita secara otomatis login dan disambut oleh bot

Kami akan memperhatikan jawaban Anda.

Terima kasih @matiasroldan6 untuk melihat ini. Untuk menjawab pertanyaan Anda

  1. Kami tidak dapat menghubungi keterampilan secara langsung karena kami memilikinya di dalam VNET sehingga tidak dapat dijangkau oleh saluran
  2. Kami mencapai keterampilan melalui VA dan memiliki saluran saluran langsung yang dikonfigurasi hanya pada VA. Kami menggunakan auth Azure AD V2 di properti koneksi pada Skill dan VA. Kami memiliki set Otentikasi yang ditingkatkan pada VA
  3. jika kami menyelesaikan proses masuk saat diberikan kartu masuk. Bot akan hang dan tidak bergerak maju. Jika kami membatalkan kemudian kembali ke keterampilan yang memiliki otentikasi, ia memiliki token dan melewati prompt masuk dan memungkinkan kami untuk melanjutkan. Kami memiliki 2 keterampilan dengan otentikasi dan jika kami mengotentikasi dalam satu, kami juga mengotentikasi yang kedua.
    di sini adalah tangkapan layar dari konfigurasi kami untuk saluran saluran langsung di VA
    image

Kami memiliki ID pengguna yang disetel ke "dl_xxxx" di klien saluran langsung
Kami memiliki otentikasi Azure AD v2 dalam koneksi pada Skill dan VA
Kami memiliki appsettings.json dari klien saluran langsung yang sama seperti yang Anda miliki di atas
Kami tidak dapat menggunakan saluran saluran langsung pada keterampilan dan hanya menggunakannya di VA
Kami dapat menggunakan Otentikasi di saluran Teams dengan satu-satunya masalah adalah pesan dialog rusak. Gagal mengirim stepContext.context.sendActivity('message') pertama hingga satu menit kemudian dalam konversi. Ini hanya terjadi pada dialog yang menyertakan autentikasi di dalamnya dan hanya di saluran Teams.
Kami menggunakan solusi bot 1.0 yang terletak di sini

Tolong beri tahu saya jika Anda memerlukan informasi lagi tentang keterampilan dan VA

Hai @tomSauret847 , kami dapat mereproduksi kemunculan masalah ini.
Dalam skenario kami, masalahnya adalah alamat asal tepercaya yang ditetapkan di saluran Directline. Misalnya, popup Directline menyatakan bahwa asal tepercaya harus _https_, atau _http_ untuk _localhost_. Ini akan menjelaskan Directline sebagai satu-satunya saluran yang gagal untuk Anda.

Untuk memeriksa apakah ini juga masalah Anda, dapatkah Anda mencoba menetapkan sebagai asal tepercaya:
Alamat bot Anda (baik https://xxxxx.azurewebsites.net atau https://xxxx.ngrok.io jika Anda melakukan debug secara lokal)
Localhost Anda jika Anda membutuhkannya, sebagai http://localhost
image

Pengaturan untuk mereproduksi ini adalah:

  • Asisten Virtual 1.0 dengan

    • Bot-Solutions 1.0 di dependensi

    • Otentikasi Azure AD v2 diaktifkan

    • Saluran directline diaktifkan dengan autentikasi yang ditingkatkan aktif

    • Asal tepercaya di saluran Directline diatur ke https://localhost :xxxx (_xxxx_ menjadi alamat klien Directline) dan alamat bot (https://xxxxx.azurewebsites.net atau https://xxxx.ngrok.io untuk koneksi lokal ). Kami melakukan ini dengan meniru pengaturan dari gambar yang Anda lampirkan di pesan terakhir Anda.

  • Keterampilan 1.0 dengan

    • Bot-Solutions 1.0 di dependensi

    • Otentikasi Azure AD v2 diaktifkan

    • Terhubung ke Asisten Virtual.

  • Klien web Directline diatur dengan id pengguna dan otentikasi yang ditingkatkan dengan konfigurasi yang sama dari pesan kami sebelumnya.

Langkah repro kami adalah:

  1. Hubungkan sampel Directline ke Asisten.
  2. Mencoba memicu autentikasi ("jalankan dialog sampel").
  3. Dialog Otentikasi muncul tetapi setelah mengklik tombol tidak ada yang terjadi, dan bot menjadi tidak responsif, bahkan untuk upaya lebih lanjut untuk meminta otentikasi.
    image
  1. Batalkan alur dan jalankan kembali langkah 1 dan 2, lalu kami secara otomatis diautentikasi dan kami disambut oleh bot.

Harap beri tahu kami jika ini membantu. Kami akan memperhatikan tanggapan Anda.

Terima kasih @matiasroldan6 untuk melihat ini. Pengaturan yang Anda tunjukkan di atas sama dengan yang kami gunakan. Kami menghapus rute localhost dan hanya memiliki alamat bot di sumber tepercaya untuk saluran saluran langsung (https://xxxxx.azurewebsites.net). Keahlian masih tidak responsif setelah masuk prompt dan jika kita membatalkan percakapan dan memanggil keterampilan lagi itu akan memiliki token dan melanjutkan dialog. Kami masih tidak dapat memperoleh keterampilan untuk menerima token setelah pengguna masuk.

Terima kasih atas balasan Anda @tomSauret847 - kami akan terus bekerja untuk menemukan perbaikan untuk masalah ini 😊.

Kami memiliki pertanyaan untuk memahami bagaimana Anda menggunakan titik akhir azurewebsites.net dengan mempertimbangkan solusi bot versi 1.0 (PR #3583):

  1. Apakah Anda menggunakan Messaging endpoint dari Bot Aplikasi Web (Asisten Virtual) yang Anda terbitkan?
  2. Bagaimana Anda mengintegrasikan versi 1.0 dari solusi bot di Asisten dan Keterampilan Virtual yang Anda terbitkan? Kami memahami bahwa Anda menggunakan paket .tgz dari perpustakaan. Apakah ini benar?
  3. Apakah ada kemungkinan untuk menguji menggunakan titik akhir localhost yang mengonfigurasinya seperti di atas dalam konfigurasi Saluran Saluran Langsung?

Terima kasih @Batta32

  1. Kami menggunakan titik akhir perpesanan VA dalam konfigurasi host tepercaya.
  2. kami menggunakan paket .tgz yang dikloning dari rilis 1.0. Kami menghapus folder node_modules dan file package-lock.json sebelum memindahkan paket .tgz. Kemudian perbarui file package.json dan kemudian jalankan npm install
  3. Kami telah menguji dengan host lokal dan menerima respons yang sama. Kami masih tidak bisa mendapatkan token untuk melewati percakapan, tetapi ketika dialog dibatalkan dan dimulai lagi, token itu ada.

Terima kasih @tomSauret847 , kami akan terus meninjau masalah ini dengan informasi baru yang Anda berikan! Segera setelah kami memiliki pembaruan, kami akan menghubungi Anda kembali 😊.

Hai @tomSauret847 , kami berhasil mereproduksi kemunculan masalah ini.

Satu hal yang kami perhatikan dari tanggapan Anda
Menurut komentar ini , dan dokumentasi ini , Anda harus memiliki URL klien obrolan Anda.
image

Pengaturan kami adalah:

Langkah:

  1. Gunakan klien web Directline untuk menghubungi Asisten Virtual
  2. Invoke the Skill ("jalankan contoh dialog")
  3. Disajikan tombol otentikasi oleh Skill, klik di atasnya (tidak ada yang terjadi)
  4. Mengulangi langkah 2 mengotentikasi kami secara otomatis, tanpa menampilkan tombol otentikasi.

Kami akan terus meninjau masalah ini saat kami mengonfirmasi dan seperti yang Anda sebutkan, bahwa di Microsoft Teams dan Emulator ini berfungsi.
image

Hai @tomSauret847 , kami berhasil menjalankan proses otentikasi menggunakan Enhanced Authentication.

Kami datang dengan beberapa pertanyaan sehingga Anda dapat memeriksa di pihak kami:

  1. Bisakah Anda memeriksa apakah Anda memiliki folder yang dipublikasikan dari bot yang digunakan yang mengakses di Kudu (https://.scm.azurewebsites.net/ZipDeployUI) mengganti <WEB_APP_BOT_NAME> dengan nama sumber daya bot Anda? Periksa apakah Anda memiliki node_modules , lib , dan folder lainnya.
  2. Bisakah Anda memeriksa apakah Titik Akhir Pesan dari bot adalah titik akhir produksi (azurewebsites.net)?
  3. Sudahkah Anda menghubungkan Asisten Virtual ke Keterampilan menggunakan titik akhir produksi?
  4. Bisakah Anda memeriksa apakah Anda dapat mengakses Manifes Keterampilan dari Keterampilan yang diterbitkan? Jika tidak, tambahkan perubahan PR #3601

Ini adalah lingkungan kita:

Kami mengikuti langkah -

  1. Terapkan perubahan PR #3601 di Skill
  2. Buat folder untuk menyimpan file Bot-Solutions 1.0 .tgz pada kedua sampel
  3. Arahkan referensi solusi bot ke tgz lokal, seperti "bot-solutions": ".//TGZ//bot-solutions-1.0.0.tgz" dari bot
  4. Terapkan bot menggunakan deploy.ps1
  5. Hubungkan kedua sampel dengan Botskills menggunakan remoteManifest
  6. Konfigurasikan Pengaturan Koneksi OAuth dari kedua sampel dengan AADv2
  7. Konfigurasikan oauthConnections di pengaturan aplikasi setiap sampel
  8. Publikasikan kedua sampel menggunakan skrip publish.ps1
  9. Aktifkan saluran Directline di Asisten Virtual
  10. Aktifkan Otentikasi yang Ditingkatkan pada Directline Asisten Virtual
  11. Hubungkan sampel Directline ke Asisten Virtual

    1. Catatan : Perbarui baris ini ke GUID statis jika Anda ingin mempertahankan percakapan

  12. Terakhir, picu otentikasi menggunakan run sample dialog
  13. Setelah login, Skill akan menanyakan nama
  14. Periksa apakah autentikasi yang ditingkatkan berfungsi dengan benar

Last but not least, kami mengkonfirmasi langkah yang sama menggunakan bot C# dan memeriksa bahwa itu juga berfungsi dengan benar.

Kami akan memperhatikan balasan Anda

_Konfigurasi Otentikasi yang Ditingkatkan_
image

_Komunikasi yang berhasil menggunakan Enhanced Authentication dan TypeScript bots_
auth fixed

_Komunikasi yang berhasil menggunakan Enhanced Authentication dan C# bots_
image

Terima kasih @VictorGrycuk. Maaf atas respons yang terlambat, kami perlu menyiapkan instance pengujian untuk memverifikasi perbaikan. Kami telah berhasil membuat autentikasi berfungsi dalam contoh pengujian dan telah mempersempit di mana masalahnya.

Untuk contoh VA /Keterampilan kami, kami memilikinya di belakang gateway aplikasi dengan firewall. Tampaknya inilah alasan otentikasi yang ditingkatkan tidak berfungsi. Ketika kami menerapkan ini pada VA dan keterampilan di luar konfigurasi itu, itu berfungsi dengan baik. gateway aplikasi menempatkan host lain dalam campuran dan kami pikir inilah yang memblokir token. Jadi kita punya pertanyaan berikut,

Apakah ada cara agar autentikasi yang ditingkatkan berfungsi dengan bot di belakang App Gateway?

Hebat @tomSauret847! Kami akan melakukan penelitian dan beberapa pengujian untuk meninjau cara agar autentikasi yang ditingkatkan berfungsi dengan bot di belakang App Gateway.

Segera setelah kami memiliki pembaruan untuk ini, kami akan memberi tahu Anda di sini 😊.

Hai @tomSauret847 , kami melakukan sedikit riset, dan kami mengajukan beberapa

  1. Apakah Anda menguji menggunakan bot yang digunakan di Azure atau di server janji?
  2. Apakah gateway aplikasi Anda merupakan Gateway Aplikasi Azure ?
  3. Apakah Anda menggunakan bot TypeScript atau C#? Seperti yang Anda sebutkan sebelumnya, Anda beralih ke bot C#.

Kami akan memperhatikan jawaban Anda

Terima kasih telah menanggapi @VictorGrycuk berikut adalah jawaban atas pertanyaan kami,

  1. Kami sedang menguji dengan bot yang dikerahkan ke Azure. Kami tidak dapat membuat terowongan untuk diuji secara lokal.

  2. Ya, kami menggunakan gateway aplikasi Azure dengan WAF seperti yang dijelaskan di tautan Anda

  3. Ini adalah bot TypeScript (VA dan 2 Keterampilan dengan otentikasi) kami hanya menggunakan 1 keterampilan C# untuk mengatasi masalah loop sinkron dan tidak memiliki otentikasi di dalamnya.

Hai @tomSauret847 , maaf atas keterlambatannya - kami pikir itu mungkin untuk menggunakan Enhanced Authentication dengan Azure App Gateway yang memiliki bot di belakangnya.

Beberapa pertanyaan tambahan:

  1. Bisakah Anda terhubung ke Asisten Virtual dengan emulator menggunakan IP publik Gateway? Dalam pengujian kami, kami mengonfirmasi bahwa ini mungkin
  2. Bisakah Anda terhubung dan berkomunikasi dengan keterampilan melalui VA tanpa komunikasi yang ditingkatkan?

Komponen :

Konfigurasi :

  • Asisten Virtual menggunakan Otentikasi yang Disempurnakan, seperti yang dijelaskan dalam komentar ini
  • Keterampilan terhubung ke Asisten Virtual yang dikonfigurasi dengan otentikasi
  • Jalur Langsung seperti yang dikonfigurasi dalam komentar yang sama seperti di atas
  • Gateway Aplikasi menunjuk ke bot yang digunakan seperti yang dijelaskan dalam artikel ini

Kami akan bekerja untuk mereplikasi skenario ini.

Terima kasih @VictorGrycuk Jawaban atas pertanyaan Anda adalah
Bisakah Anda terhubung ke Asisten Virtual dengan emulator menggunakan IP publik Gateway? Dalam pengujian kami, kami mengonfirmasi bahwa ini mungkin

  • Kami tidak memiliki tunneling yang tersedia karena kami tidak dapat terhubung ke VA dengan emulator tetapi kami memiliki obrolan web yang tersedia. VA akan terhubung ke skill dan menyelesaikan dialog.

Bisakah Anda terhubung dan berkomunikasi dengan keterampilan melalui VA tanpa komunikasi yang ditingkatkan?

  • Ya, jika kami tidak menggunakan Enhanced Authentication, kami dapat menyalin dan menempelkan kode dan otentikasi berfungsi seperti yang diharapkan. Kami menginginkan integrasi tanpa batas yang disediakan oleh autentikasi yang ditingkatkan untuk pengguna kami.

Hai @tomSauret847 , kami dapat mengonfirmasi bahwa Enhanced Authentication berfungsi dengan bot di belakang Azure Application Gateway.

Kami membuat PR #3694 yang menyertakan dokumentasi baru tentang cara mengonfigurasi Azure Application Gateway dengan bot yang digunakan.

Kami melakukan pengujian kami dengan mengikuti langkah -

  1. Ikuti langkah-langkah yang dijelaskan dalam komentar ini untuk menerapkan bot dengan Otentikasi yang Ditingkatkan
  2. Ikuti langkah-langkah yang dirinci dalam dokumen Mengonfigurasi pemeriksaan kesehatan Gateway dengan bot TypeScript untuk menghubungkan Asisten Virtual yang disebarkan ke kumpulan Backend Gateway Aplikasi Azure
  3. Uji login dari skill yang digunakan menggunakan sampel Directline
  4. Otentikasi yang Ditingkatkan berfungsi dan Dialog Contoh Keterampilan berlanjut seperti yang diharapkan

Karena ini tampaknya merupakan masalah konfigurasi Gateway Aplikasi Azure, saya sarankan Anda untuk bertanya di https://stackoverflow.com/questions/tagged/botframework untuk saran; dan jika Anda baik-baik saja, kami dapat menutup masalah ini .

Terima kasih @VictorGrycuk Kami akan mengerjakan informasi yang Anda posting. Saya sudah memperhatikan bahwa tautan ini rusak.

Terima kasih @tomSauret847 , tautan itu akan mengarah ke Mengonfigurasi pemeriksaan kesehatan Gateway dengan bot TypeScript (serta gambar ini ) setelah dokumen digabungkan menjadi cabang master , karena dokumentasi menggunakan {{site.baseurl}} untuk menghasilkan URL.

@peterinnesmsft - kami dapat menutup masalah karena tidak aktif. @tomSauret847 jika Anda masih mengalami masalah, silakan aktifkan kembali dan kami dapat mengambilnya lagi, atau membuat masalah baru!

Juga, jika Anda memiliki pertanyaan, silakan tanyakan di https://stackoverflow.com/questions/tagged/botframework.

Seluruh proses otentikasi akan diselesaikan segera setelah PR berikut digabungkan untuk TypeScript versi 1.0:

  • PR #3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • PR #3584: [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • PR #3585: [TypeScript][Skill] Implement changes in Skill to 1.0 release

Terima kasih @Batta32 atas bantuan Anda dalam hal ini. Kami harus menahan bagian ini untuk sementara, jadi saya akan menutup masalah ini dan membukanya kembali jika kami memiliki masalah ketika kami mengambilnya kembali.

@ Batta32 Kami memiliki pertanyaan singkat tentang masalah ini. Apakah SSO untuk TypeScript sudah tersedia? Kami menemukan masalahnya adalah keterampilan kami berada di belakang firewall dan tidak dapat menerima respons token. Ketika kami melewati kredensial VA di dalamnya, itu tidak meneruskan token ke keterampilan itu hanya memulai kembali percakapan. Jika SSO untuk TypeScript tidak tersedia, kapan Anda mengharapkannya? Terima kasih atas semua bantuan Anda dalam masalah ini.

Hai @tomSauret847 , SSO tidak tersedia untuk TypeScript saat ini karena diperkenalkan dalam versi 1.0. PR TypeScript versi 1.0 harus disetujui dan digabungkan untuk merilis versi baru dengan fitur tersebut.

Kami akan memberi tahu Anda segera setelah kami memiliki pembaruan apa pun 😊.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat