Meskipun template menghasilkan kode untuk api grafik, tidak ada contoh atau prosedur sederhana untuk menguji otentikasi asisten virtual baru yang dibuat dan kemudian menggunakan api ini.
Prosedur, contoh atau konfigurasi untuk mengaktifkan penggunaan klien grafik yang meminta aktivasi otentikasi, setelah kode sumber yeoman yang dihasilkan untuk asisten virtual di TypeScript, dan cara dengan contoh untuk menyebarkan keterampilan lokal di TypeScript.
kembangkan keterampilan baru dalam TypeScript dan gunakan alat botskills connect
untuk mencoba melihat perubahan pada solusi asisten virtual dan melihat bagian kode yang diubah.
keterampilan baru yang dihasilkan memiliki sebagian besar kode sumber dari generator bantuan virtual asli. Untuk beberapa skenario penerapan sederhana, tidak praktis untuk membuat solusi bot baru hanya untuk sebagian fungsi asisten virtual secara keseluruhan (yaitu: ketika beban permintaan tidak berarti). Jadi ada beberapa deskripsi parameter dari alat botskills
untuk mengenali manifes lokal, tetapi tidak ada satu contoh naskah asli yang bekerja dengan keterampilan lokal dan tidak ada contoh keterampilan yang meminta kredensial oauth dalam naskah.
@andhdo Apakah halaman dokumentasi yang menunjukkan bagaimana Anda dapat menggunakan Asisten Virtual dan menambahkan langkah otentikasi sebelum memanggil Grafik cukup untuk apa yang Anda butuhkan? Ini juga akan mencakup langkah-langkah konfigurasi manual yang diperlukan untuk membuat koneksi otentikasi?
Ya, Ini bisa menjadi titik awal awal, seperti contoh dasar otentikasi yang serupa. Maka itu bisa menjadi pelengkap yang baik untuk pengembangan keterampilan TypeScript lokal yang mengaktifkan & menonaktifkan otentikasi.
OK - masuk akal - Saya akan memperbarui item pekerjaan ini dan memperbarui dokumen minggu depan untuk ini. Itu muncul beberapa kali ketika Anda mengatakan itu berguna untuk melakukan otentikasi murni dalam VA dan tidak bergantung pada Keterampilan untuk beberapa skenario.
Fondasinya tercakup di sini dan saya akan memfokuskannya untuk VA (dan itu akan jauh lebih sederhana dari ini)
https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=aadv1%2Ccsharp%2Cbot-oauth
Ya; Saya telah membuat latihan untuk menjalankan skenario ini, tetapi idenya adalah untuk mengimplementasikannya dengan cara terbaik di dalam asisten virtual tanpa menduplikasi kode yang sudah dibuat oleh Microsoft.
Terima kasih atas bantuan Anda, dan berharap untuk melihat hasilnya.
Hai @andhdo , dokumen ini harus mencakup apa yang Anda butuhkan: https://github.com/microsoft/botframework-solutions/blob/next/docs/reference/skills/manualauthsteps.md
Buka kembali jika diperlukan.
Hai @andhdo , dokumen ini harus mencakup apa yang Anda butuhkan: https://github.com/microsoft/botframework-solutions/blob/next/docs/reference/skills/manualauthsteps.md
Buka kembali jika diperlukan.
Hai @lauren-mills, Maukah Anda memberi tahu kami Bagaimana cara membuka kembali masalah ini ?
Karena itu:
Langkah-langkah untuk menambahkan otentikasi langsung ke VA harus sama dengan langkah-langkah untuk menambahkannya ke keterampilan seperti yang tercantum dalam dokumen (karenanya saya mengarahkan Anda ke sana.)
Saya ingin mengonfirmasi bahwa Anda membuat semua perubahan ini pada pendaftaran Bot VA, dan pendaftaran aplikasi VA, benar?
Bisakah Anda masuk ke pendaftaran bot, di tab pengaturan, lalu pilih koneksi OAuth Anda dan klik "uji koneksi" di bagian atas dan beri tahu saya apa yang dikatakannya? Terima kasih.
Ya; semua sesuai prosedur. lihat di bawah langkah-langkah yang dijalankan:
instal semua persyaratan untuk menjalankan perancah VA:
npm uninstall -g yo
npm install -g yo
npm install -g windows-build-tools
npm install -g npm
npm install -g botdispatch
npm install -g ludown luis-apis qnamaker [email protected]
npm install -g chatdown
npm install -g botskills
npm uninstall -g generator-botbuilder-assistant
# select the following line according release or development versions you want to run. see https://github.com/microsoft/botframework-solutions#user-content-js table for versions
npm install -g generator-botbuilder-assistant
yo botbuilder-assistant --assistantName "bot-1835" --assistantDesc "my assistant" --assistantLang "es,en" --assistantGenerationPath "." --noPrompt
kemudian generasi memulai dan membangun proses segera setelahnya.
lalu perbaiki masalah jika diperlukan untuk menjalankan aplikasi yang berjalan secara lokal
-> index.ts: hilangkan parameter kredensial return new MultiProviderAuthDialog(oauthConnections)
dalam pengembangan, versi master;
-> index.ts: ubah skill.msaAppId
dengan skill.msAppId
dalam pengembangan, versi master
-> tambahkan msAppId dan atribut ke file skills.json.
-> abaikan sumber daya yang dibuat secara otomatis dalam proses pembuatan oleh alat pembuat bot (yang mengelola model kognitif)
penyediaan komponen di biru:
berhati-hatilah agar Anda tidak memiliki komponen yang masuk dalam konflik dengan yang ditetapkan sebagai kode (hapus grup sumber daya sebelumnya, pendaftaran-iklan-zure dan model luis.ai dengan pengenal yang sama menggunakan konsol atau alat baris perintah).
pertama, Anda perlu membuat koneksi dengan azure, dan memilih berlangganan dengan uang (karena semuanya adalah uang di az)
az login
az account set --subscription <SUBSCRIPTION_TO_WORK>
dan kemudian jalankan skrip yang dihasilkan
cd bot-1835
.\deployment\scripts\deploy.ps1 -languages "es-es" -name "<VA_NAME>" -location "westus" -appPassword "<VA_PASS>" -luisAuthoringRegion "westus" -luisAuthoringKey "<LUIS_AUTHORING_KEY>" -parametersFile ".\deployment\resources\parameters.template.json" -debug
VA_NAME:
VA_PASS:
LUIS_AUTHORING_KEY: dari
setelah itu (dan menyilangkan jari untuk semua menjadi sukses), maka Anda dapat mulai menurunkan tingkat sumber daya yang mahal untuk berlangganan
keluaran lok seperti itu:
> Creating resource group ...
> Validating Azure deployment ...
> Deploying Azure services (this could take a while)...
> Updating appsettings.json ...
> Deploying cognitive models ...
> Initializing dispatch model ...
> Parsing general LU file ...
> Deploying general LUIS app ...
> Setting LUIS subscription key ...
> Adding general app to dispatch model ...
> Parsing chitchat LU file ...
> Deploying chitchat QnA kb ...
> Adding chitchat kb to dispatch model ...
> Parsing faq LU file ...
> Deploying faq QnA kb ...
> Adding faq kb to dispatch model ...
> Creating dispatch model...
> Setting LUIS subscription key ...
+ To publish your bot, run 'C:\MyPathToDir\bot-1835\deployment\scripts\publish.ps1 -name 1835-dev1 -resourceGroup 1835-dev1 -projFolder "C:\MyPathToDir\bot-1835\src '
> Done.
npm run start
$appReg2 = (az ad app create --display-name "<VA_AZADREG_NAME>" --password "<VA_AZADREG_PASS>" --available-to-other-tenants false --reply-urls "https://token.botframework.com/.auth/web/redirect")
$appReg2json = ($appReg2 | ConvertFrom-Json)
VA_AZADREG_NAME=
VA_AZADREG_PASS=
lalu tambahkan izin api grafik
profile
Mail.Read
Mail.Send
User.Read
User.ReadBasic.All
dan
Rahasia Klien:
gunakan thinfo dari langkah sebelumnya untuk memperbarui oauth di botchannels-registration yang dihasilkan
lalu tes koneksinya
(ia meminta klaim oauth) dan kemudian menunjukkan tokennya
Sepertinya Anda memiliki pengaturan otentikasi pada proyek Asisten Virtual Anda. Apa yang Anda lewatkan sehingga Anda ingin bantuan kami?
Meskipun konfigurasi dibuat, proyek tidak pernah meminta otentikasi kepada pengguna menggunakan VA. Saya sudah menambahkan otentikasi untuk proyek tetapi tidak akan pernah mengaktifkan dialog untuk otentikasi. Saya telah menambahkan otentikasi untuk proyek tetapi tidak pernah mengaktifkan dialog untuk otentikasi
langkah-langkah tambahan yang dibuat dalam aplikasi sesuai dokumentasi dan kesalahan yang terlihat di kudu:
{
"oauthConnections": [
{
"name": "Outlook",
"provider": "Azure Active Directory v2"
}
], ...
"local:start": "npm run build && node ./lib/index.js NODE_ENV=development",
"start": "node ./lib/index.js",
npm run clean
npm run build
.\deployment\scripts\publish.ps1 -name <VA_NAME> -resourceGroup <VA_NAME>
Untuk meminta otentikasi, Anda perlu menambahkan OAuthPrompt ke dalam dialog Anda di tempat yang diinginkan, memberikan informasi koneksi saat Anda mengonfigurasinya.
Dialog sampel dari repo Microsoft/botbuilder-samples ini akan membantu: https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/javascript_nodejs/18.bot-authentication/dialogs/mainDialog.js
Ini adalah klarifikasi yang bagus karena metode ini benar-benar tidak menambahkan otentikasi ke bot Anda, Anda harus melakukan beberapa langkah tambahan untuk mengamankan tindakan Anda:
Beberapa pertanyaan tambahan:
MultiProviderAuthDialog
yang sudah dibuat yang berfungsi dengan keterampilan dalam metode buildAuthDialog di index.ts tidak digunakan untuk tujuan apa pun .OAuthPrompt akan secara otomatis mengambil token untuk pengguna jika mereka sudah masuk di tempat lain untuk koneksi OAuth tersebut. Jika Anda menambahkan OAuthPrompt di tempat yang Anda inginkan, dan pengguna telah masuk, itu hanya akan melanjutkan ke langkah berikutnya.
Saya tidak yakin apa yang Anda tanyakan di sini. Anda tidak perlu pengguna untuk mengautentikasi untuk menggunakan Layanan Kognitif (LUIS, QnA, dll). Anda hanya perlu kunci untuk layanan itu. Tolong jelaskan pertanyaan ini untuk saya.
Pendaftaran MultiProviderAuthDialog di startup hanya dibuat untuk keterampilan yang dikonfigurasi dalam konfigurasi skills.json Anda. Jika tidak ada keterampilan, itu tidak digunakan.
2: Maksud saya: jika ada (tidak tahu apakah sudah ada atau direncanakan) Middleware untuk meminta kredensial otentikasi kepada pengguna sebelum membawa akses untuk menjalankan logika permintaan maindialog, sehingga Anda dapat membiarkan logika ini utuh
Saya pikir saya telah menemukan solusi sesuai komentar Anda:
buat semacam dialog CircuitBreaker: dialog air terjun dari 2 langkah: langkah otentikasi dan langkah utama. langkah pertama memanggil loginActivityDialog dan yang kedua, memanggil dialog utama yang dibuat sebelumnya hanya jika oauthPrompt telah membuat token.
di index.ts lakukan sesuatu yang mirip dengan logika buildAuthDialog
, untuk mendapatkan konfigurasi oauthConnection dari pengaturan dan bypass ke LoginActivityDialog
/* eslint-disable */
function buildAuthDialog2(settings: Partial<IBotSettings>): LoginActivityDialog|undefined {
const oauthConnections: IOAuthConnection[] | undefined = botSettings.oauthConnections;
if(oauthConnections!==undefined) {
const loginDialog = new LoginActivityDialog(oauthConnections);
console.log(`created`);
return loginDialog;
} else {
throw new Error(`You must configure at least one supported OAuth connection to use authentication`);
}
return undefined;
};
/* eslint-enable */
ini adalah metode yang kurang invasif yang saya temukan sampai sekarang; namun tidak memiliki 2 hal: (1) tidak dapat menyebarkan token untuk memanggil grafik jika diperlukan. (2) itu bukan middleware asli yang saya pikir
Senang mendengar Anda bisa membuat prompt bekerja. Untuk mengakses token, itu harus tersedia di langkah berikutnya (setelah OAuthPrompt) di stepContext.Result.
Jika Anda menginginkan beberapa saran untuk membuat Middleware yang Anda inginkan, saya sarankan pergi ke Stack Overflow kami, karena lebih baik untuk saran bot umum daripada repo ini.