SlideShare une entreprise Scribd logo
1  sur  22
prochain assistant
personnel d’intranet
SharePoint grâce au
Bot Framework et
SPFx
Franck Cornu
Office 365 junkie @aequos_ca
Montréal, Québec
Blog: http://thecollaborationcorner.com/
Merci à nos sponsors
Je suis au
#MSReBUILD avec @FranckCornu
#ndw @nantesfr @communautesms
Aidez-moi à
faire le Buzz !
Attention, ceci est une
session pour les
développeurs
code
Un bot dans un intranet
SharePoint, pourquoi faire?
Bot basique VS avancé, quelques scénarios…
«Quelle est la politique de vacances de l’entreprise? »
Scénario avancé  aide à l’action (avec Flow par exemple)
« Je souhaite réserver une salle de conférence »
« Je souhaite signaler un congé maladie »
« Donne moi la liste de mes dernières requêtes à approuver »
Scénario intermédiaire  aide à la recherche d’information
Scénario basique (trop)  aide à la recherche d’information
« Quel est le menu de la cantine ? »
Bot Framework
Aperçu
• Bot ≠ IA, Bot = aiguilleur des discussions
• Une implémentation logique pour plusieurs canaux (Web, Chat,
Teams, Direct Line, etc.)
• « WebApp Bot » ou « FunctionApp Bot »
• SDK pour C# ou Node JS (BotBuilder)
• Système de dialogue par défaut (routes + waterfall steps)
• Prise en compte de formats par défaut pour afficher l’information
(« cards »)
• Stockage d’informations par utilisateur/conversation = Bot State
Service
• SDK disponible sur GitHub pour QnAmaker, LUIS, etc.
• Un bot tout seul ne sert à rien…
Bot Framework
Développer localement (Node.js)
• Bot framework emulator
• Débogage local et distant
• Visual Studio Code + Node JS
• ngrok (http tunneling) pour le débogage de bots distants
• Plein d’exemples pour démarrer!
https://github.com/Microsoft/BotBuilder/tree/master/Node/examples
Quelles problématiques
d’intégration?
• Bien que vous soyez déjà authentifié dans votre application (Teams, Office 365, etc), le
bot ne connaît pas cette information…
• Ex: impossible de récupérer le token d’accès courant et le transférer au bot avec
SPFx (même avec AadHttpClient…).
• Éviter l’authentification en mode« App Only » pour des raisons de sécurité évidentes.
• Authentification avecAzureAD + accès délégué nécessaire...
 Comment récupérer les informations propres à l’utilisateur (Microsoft Graph, service web
métier, etc.) pour améliorer l’interactivité et la pertinence d’un bot, tout en gardant une
expérience utilisateur conviviale pour un ou plusieurs canaux?
La gestion de l’authentification, quelques challenges
techniques
Azure AD v1 vs v2 (aperçu)
V1 V2
Portail d’enregistrement
d’applications
portal.azure.com apps.dev.microsoft.com
Support des plateformes Une application par plateforme
Un seule application pour toutes les
plateformes (Web, Client natif)
Types de comptes Comptes Azure AD uniquement Comptes Microsoft et Azure AD
Gestion des permissions
Permissions statiques définies au
niveau de l’application elle-même.
Permissions dynamiques pour l’accès
aux ressources (« scopes »)
Librairie clientes Javascript ADAL.js, ADAL (Node) MSAL.js, Pas de version Node.js
3 exemples
Authentification avec un bot
avec Azure AD
Démo #1: Flux implicite OAuth2 avec MSAL.js (MicrosoftAuthentication
Library)
Démo #2: Flux avec code d’autorisation OAuth2 avec ADAL
(Node.js)
Démo #3:Authentification AzureAD intégrée avec Bot
Service
DEMO #1
Flux implicite avec
MSAL
Démo #1 - Flux implicite avec
MSAL
Démo #1 - Flux implicite avec
MSAL
• Utilise le flux implicite OAuth2 avecAzureAD v2.
L’utilisateur doit s’identifier une première fois sous forme
de popup grâce à MSAL.
• Utilisation du « backchannel » pour passer le token
d’accès au bot qui le stocke pendant une durée
configurable (conversation seulement ou plus étendu).
• Le bot ne gère pas le processusd’authentification.La
logique est plus simple et concentréesur les dialogues.
• Le bot peut être implémenté avec uneAzure Function ou
WebApp
• Cette solution ne supporte qu’un seul canal (Web).
• Utilisation du contrôle « Microsoft Bot Framework Web
Chat » en React + extension SPFx pour l’interface avec
l’utilisateur (extension obligatoire) pour que la popup
MSALse ferme).
Ce qu’il faut
retenir
https://github.com/SharePoint/sp-dev-fx-
extensions/tree/master/samples/react-msal-bot
DEMO #2
Flux avec code
d’autorisation avec
ADAL (Node.js)
d’autorisation avec ADAL
(Node.js)
• Utilise le fluxavec coded’autorisationOAuth2 avecAzureAD v1.
L’utilisateurdoit s’identifierunepremièrefois sousformed’un nouvel
onglet grâce àADAL. L’URLpourl’authentification estconstruite
manuellement.
• Utilisation des cartes « Sign-In » à l’intérieurmêmede la
conservation avec le bot.
• Le bot gère le processusd’authentificationde bout en bout. La
solutionest plus compliquéeet demandeplusde configuration.
Utilisation du paramètre« state » pourpasser la session en cours
avec le Bot aprèsl’authentification.
• Contrôle totalsur la manièrede s’authentifier(grâce à l’URL)
• Cette solutionsupporteplusieurscanaux(Teams, Skype, etc.)
• Utilisation du contrôle « Microsoft Bot Framework Web Chat » en
React + extension SPFx pourl’interfaceavec l’utilisateur.
• WebApp seulement(pasd’Azure Function)
Ce qu’il faut
retenir
https://github.com/SharePoint/sp-dev-fx-
extensions/tree/master/samples/react-adal-bot
d’autorisation avec ADAL
(Node.js)
DEMO #3
Authentification
intégrée Azure Bot
Service
• Le Bot service se charge de tout le processus
d’authentification (gestion du token, etc.) pour
vous.
• SupporteAzureAD v1, v2 et une multitude de
fournisseurs d’identité (GitHub, Facebook, etc).
• Azure Function ou WebApp Bot
• Fonctionnement opaque
• Vient tout juste de sortir!
Ce qu’il faut
retenir
Démo #3 – Authentification
intégrée Azure Bot Service
Pour aller plus loin…
Utilisation des services cognitifs
Microsoft• Reconnaissanced’intentions avec LUIS
• Questions/Réponseavec le QnAmaker
• Analyse de texte pour détection de langue, extraction de
sentiments
• Correcteur orthographiques
Automatisation d’actions  Adaptive
cards!• Couplées à MiccrosoftFlow +Azure Functions/LogicApps
Conclusion
Méthode  
MSAL + Flux implicite
Logique du bot plus simple à
maintenir
Librairie facile d’utilisation avec SPFx
Azure AD v2
Pas de SSO (popup systématique)
Expérience moins performante la
première connexion
Valide seulement pour un seul canal
Web
Pas de version Node.js
ADAL.js (Node.js) + Flux avec code
d’autorisation
Approche valide pour plusieurs
canaux
Authentification en un clique en mode
Web
Contrôle total du flux (flexibilité)
Plus complexe à mettre en œuvre au
niveau du bot
Azure AD v1
Authentification intégrée du Bot
Service
Peu de travail à faire au niveau du bot
Pas de gestion du flux à faire à la
main
Pas éprouvé encore
Pas de maitrise sur les paramètres et
le flux d’authentification (opaque)
Pour être vraiment efficace, un bot doit connaître ses utilisateurs…
Conclusion
 Quel scénario cherche t-on à résoudre (recherche, automatisation d'action, etc.)?
 Est-ce qu’un bot est la bonne solution? Si oui:
• Quels seront les canaux utilisés?
• Quelles seront les ressources à accéder? De quelles permissions va-t-on avoir
besoin? Vont-elles évoluer au cours du temps (v1 vs v2)?
• Quelle sera l’expérience d’authentification pour chaque canal?
• Quel(s) format(s) pour les résultats? Quelle est la compatibilité pour chaque canal?
• Dois-je faire appel à des services externes (Flow, Azure, etc.)? De quelle information
ai-je besoin?
Quelques questions fondamentales à se poser avant de vous lancer dans un projet de
bot dans votre intranet:
MERCI!

Contenu connexe

Tendances

TechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureTechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureThomas Conté
 
Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Nabil Babaci
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Franck Cornu
 
Dreamforce 19 Global Gathering
Dreamforce 19 Global GatheringDreamforce 19 Global Gathering
Dreamforce 19 Global GatheringThierry TROUIN ☁
 
SharePoint dans le Nuage toutes les options 2014-04-14
SharePoint dans le Nuage  toutes les options   2014-04-14SharePoint dans le Nuage  toutes les options   2014-04-14
SharePoint dans le Nuage toutes les options 2014-04-14Patrick Guimonet
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Décideurs IT
 
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernal
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernalSoc204 - visio 2013, SharePoint 2013, office 365: le trio infernal
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernalNicolas Georgeault
 
JSS2013 Session SharePoint pour le dba sql v1.0
JSS2013 Session SharePoint pour le dba sql v1.0JSS2013 Session SharePoint pour le dba sql v1.0
JSS2013 Session SharePoint pour le dba sql v1.0Patrick Guimonet
 

Tendances (8)

TechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureTechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows Azure
 
Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013Workflow et bcs sous share point 2013
Workflow et bcs sous share point 2013
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
 
Dreamforce 19 Global Gathering
Dreamforce 19 Global GatheringDreamforce 19 Global Gathering
Dreamforce 19 Global Gathering
 
SharePoint dans le Nuage toutes les options 2014-04-14
SharePoint dans le Nuage  toutes les options   2014-04-14SharePoint dans le Nuage  toutes les options   2014-04-14
SharePoint dans le Nuage toutes les options 2014-04-14
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernal
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernalSoc204 - visio 2013, SharePoint 2013, office 365: le trio infernal
Soc204 - visio 2013, SharePoint 2013, office 365: le trio infernal
 
JSS2013 Session SharePoint pour le dba sql v1.0
JSS2013 Session SharePoint pour le dba sql v1.0JSS2013 Session SharePoint pour le dba sql v1.0
JSS2013 Session SharePoint pour le dba sql v1.0
 

Similaire à Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au Bot Framework et SPFx

2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...Modern Workplace Conference Paris
 
Meetup LyonJS – Botkit et chatbots
Meetup LyonJS – Botkit et chatbotsMeetup LyonJS – Botkit et chatbots
Meetup LyonJS – Botkit et chatbotscbouvard
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...GSoft
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleMyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleVincent Guigui
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealVincent Biret
 
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...Soumaya Toumi
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graphVincent Biret
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretSPS Paris
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsCellenza
 
L’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleL’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleManon PERNIN
 
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Microsoft Technet France
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Technet France
 
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
14.4   tout ce que vous voulez savoir sur l'authentification par revendications14.4   tout ce que vous voulez savoir sur l'authentification par revendications
14.4 tout ce que vous voulez savoir sur l'authentification par revendicationsNicolas Georgeault
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableChristophe Villeneuve
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesGaëtan LAVENU
 
Documation 2011: SharePoint online comme plateforme e-business B2B
Documation 2011: SharePoint online comme plateforme e-business B2BDocumation 2011: SharePoint online comme plateforme e-business B2B
Documation 2011: SharePoint online comme plateforme e-business B2BNicolas Georgeault
 

Similaire à Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au Bot Framework et SPFx (20)

2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
 
Meetup LyonJS – Botkit et chatbots
Meetup LyonJS – Botkit et chatbotsMeetup LyonJS – Botkit et chatbots
Meetup LyonJS – Botkit et chatbots
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
Automatiser le déploiement d'environnements SharePoint 2010/2013 grâce à Powe...
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleMyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint Montreal
 
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...
#Chatbots : Repenser la relation Clients et Employés avec les technologies #A...
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
 
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic AppsIntegration Summit 16 - Tour d'horizon d'Azure Logic Apps
Integration Summit 16 - Tour d'horizon d'Azure Logic Apps
 
L’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitaleL’intégration, facteur clef de succès d’une transformation digitale
L’intégration, facteur clef de succès d’une transformation digitale
 
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
Decouverte bot framework
Decouverte bot frameworkDecouverte bot framework
Decouverte bot framework
 
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
14.4   tout ce que vous voulez savoir sur l'authentification par revendications14.4   tout ce que vous voulez savoir sur l'authentification par revendications
14.4 tout ce que vous voulez savoir sur l'authentification par revendications
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenable
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
 
Documation 2011: SharePoint online comme plateforme e-business B2B
Documation 2011: SharePoint online comme plateforme e-business B2BDocumation 2011: SharePoint online comme plateforme e-business B2B
Documation 2011: SharePoint online comme plateforme e-business B2B
 

Plus de Franck Cornu

SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...
SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...
SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...Franck Cornu
 
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?Franck Cornu
 
Intranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site PublishingIntranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site PublishingFranck Cornu
 
Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Franck Cornu
 
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...Franck Cornu
 
Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Franck Cornu
 
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...Franck Cornu
 
Cross Site Publishing Solution for corporate news in SP 2013
Cross Site Publishing Solution for corporate news in SP 2013Cross Site Publishing Solution for corporate news in SP 2013
Cross Site Publishing Solution for corporate news in SP 2013Franck Cornu
 
Concevoir des applications SharePoint basées sur la recherche
Concevoir des applications SharePoint basées sur la rechercheConcevoir des applications SharePoint basées sur la recherche
Concevoir des applications SharePoint basées sur la rechercheFranck Cornu
 
Réussir son analyse fonctionnelle SharePoint
Réussir son analyse fonctionnelle SharePointRéussir son analyse fonctionnelle SharePoint
Réussir son analyse fonctionnelle SharePointFranck Cornu
 

Plus de Franck Cornu (10)

SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...
SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...
SPS Québec - Votre intranet "Client-Side" en SharePoint Online/O365 avec PnP,...
 
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?
Evolution de l’Intranet d’entreprise avec Office 365 : quelles approches ?
 
Intranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site PublishingIntranets et sites web en SharePoint 2013 avec le Cross Site Publishing
Intranets et sites web en SharePoint 2013 avec le Cross Site Publishing
 
Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!
 
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...
Mettre en place un intranet ou un site web public en SharePoint 2013 autour d...
 
Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!Agilité et SharePoint: Incompatible? On gage que non!
Agilité et SharePoint: Incompatible? On gage que non!
 
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...
Mise en place d'un intranet ou d'un site web en SharePoint 2013 grâce au Cros...
 
Cross Site Publishing Solution for corporate news in SP 2013
Cross Site Publishing Solution for corporate news in SP 2013Cross Site Publishing Solution for corporate news in SP 2013
Cross Site Publishing Solution for corporate news in SP 2013
 
Concevoir des applications SharePoint basées sur la recherche
Concevoir des applications SharePoint basées sur la rechercheConcevoir des applications SharePoint basées sur la recherche
Concevoir des applications SharePoint basées sur la recherche
 
Réussir son analyse fonctionnelle SharePoint
Réussir son analyse fonctionnelle SharePointRéussir son analyse fonctionnelle SharePoint
Réussir son analyse fonctionnelle SharePoint
 

Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au Bot Framework et SPFx

  • 1. prochain assistant personnel d’intranet SharePoint grâce au Bot Framework et SPFx Franck Cornu Office 365 junkie @aequos_ca Montréal, Québec Blog: http://thecollaborationcorner.com/
  • 2. Merci à nos sponsors
  • 3. Je suis au #MSReBUILD avec @FranckCornu #ndw @nantesfr @communautesms Aidez-moi à faire le Buzz !
  • 4. Attention, ceci est une session pour les développeurs code
  • 5. Un bot dans un intranet SharePoint, pourquoi faire? Bot basique VS avancé, quelques scénarios… «Quelle est la politique de vacances de l’entreprise? » Scénario avancé  aide à l’action (avec Flow par exemple) « Je souhaite réserver une salle de conférence » « Je souhaite signaler un congé maladie » « Donne moi la liste de mes dernières requêtes à approuver » Scénario intermédiaire  aide à la recherche d’information Scénario basique (trop)  aide à la recherche d’information « Quel est le menu de la cantine ? »
  • 6. Bot Framework Aperçu • Bot ≠ IA, Bot = aiguilleur des discussions • Une implémentation logique pour plusieurs canaux (Web, Chat, Teams, Direct Line, etc.) • « WebApp Bot » ou « FunctionApp Bot » • SDK pour C# ou Node JS (BotBuilder) • Système de dialogue par défaut (routes + waterfall steps) • Prise en compte de formats par défaut pour afficher l’information (« cards ») • Stockage d’informations par utilisateur/conversation = Bot State Service • SDK disponible sur GitHub pour QnAmaker, LUIS, etc. • Un bot tout seul ne sert à rien…
  • 7. Bot Framework Développer localement (Node.js) • Bot framework emulator • Débogage local et distant • Visual Studio Code + Node JS • ngrok (http tunneling) pour le débogage de bots distants • Plein d’exemples pour démarrer! https://github.com/Microsoft/BotBuilder/tree/master/Node/examples
  • 8. Quelles problématiques d’intégration? • Bien que vous soyez déjà authentifié dans votre application (Teams, Office 365, etc), le bot ne connaît pas cette information… • Ex: impossible de récupérer le token d’accès courant et le transférer au bot avec SPFx (même avec AadHttpClient…). • Éviter l’authentification en mode« App Only » pour des raisons de sécurité évidentes. • Authentification avecAzureAD + accès délégué nécessaire...  Comment récupérer les informations propres à l’utilisateur (Microsoft Graph, service web métier, etc.) pour améliorer l’interactivité et la pertinence d’un bot, tout en gardant une expérience utilisateur conviviale pour un ou plusieurs canaux? La gestion de l’authentification, quelques challenges techniques
  • 9. Azure AD v1 vs v2 (aperçu) V1 V2 Portail d’enregistrement d’applications portal.azure.com apps.dev.microsoft.com Support des plateformes Une application par plateforme Un seule application pour toutes les plateformes (Web, Client natif) Types de comptes Comptes Azure AD uniquement Comptes Microsoft et Azure AD Gestion des permissions Permissions statiques définies au niveau de l’application elle-même. Permissions dynamiques pour l’accès aux ressources (« scopes ») Librairie clientes Javascript ADAL.js, ADAL (Node) MSAL.js, Pas de version Node.js
  • 10. 3 exemples Authentification avec un bot avec Azure AD Démo #1: Flux implicite OAuth2 avec MSAL.js (MicrosoftAuthentication Library) Démo #2: Flux avec code d’autorisation OAuth2 avec ADAL (Node.js) Démo #3:Authentification AzureAD intégrée avec Bot Service
  • 12. Démo #1 - Flux implicite avec MSAL
  • 13. Démo #1 - Flux implicite avec MSAL • Utilise le flux implicite OAuth2 avecAzureAD v2. L’utilisateur doit s’identifier une première fois sous forme de popup grâce à MSAL. • Utilisation du « backchannel » pour passer le token d’accès au bot qui le stocke pendant une durée configurable (conversation seulement ou plus étendu). • Le bot ne gère pas le processusd’authentification.La logique est plus simple et concentréesur les dialogues. • Le bot peut être implémenté avec uneAzure Function ou WebApp • Cette solution ne supporte qu’un seul canal (Web). • Utilisation du contrôle « Microsoft Bot Framework Web Chat » en React + extension SPFx pour l’interface avec l’utilisateur (extension obligatoire) pour que la popup MSALse ferme). Ce qu’il faut retenir https://github.com/SharePoint/sp-dev-fx- extensions/tree/master/samples/react-msal-bot
  • 14. DEMO #2 Flux avec code d’autorisation avec ADAL (Node.js)
  • 16. • Utilise le fluxavec coded’autorisationOAuth2 avecAzureAD v1. L’utilisateurdoit s’identifierunepremièrefois sousformed’un nouvel onglet grâce àADAL. L’URLpourl’authentification estconstruite manuellement. • Utilisation des cartes « Sign-In » à l’intérieurmêmede la conservation avec le bot. • Le bot gère le processusd’authentificationde bout en bout. La solutionest plus compliquéeet demandeplusde configuration. Utilisation du paramètre« state » pourpasser la session en cours avec le Bot aprèsl’authentification. • Contrôle totalsur la manièrede s’authentifier(grâce à l’URL) • Cette solutionsupporteplusieurscanaux(Teams, Skype, etc.) • Utilisation du contrôle « Microsoft Bot Framework Web Chat » en React + extension SPFx pourl’interfaceavec l’utilisateur. • WebApp seulement(pasd’Azure Function) Ce qu’il faut retenir https://github.com/SharePoint/sp-dev-fx- extensions/tree/master/samples/react-adal-bot d’autorisation avec ADAL (Node.js)
  • 18. • Le Bot service se charge de tout le processus d’authentification (gestion du token, etc.) pour vous. • SupporteAzureAD v1, v2 et une multitude de fournisseurs d’identité (GitHub, Facebook, etc). • Azure Function ou WebApp Bot • Fonctionnement opaque • Vient tout juste de sortir! Ce qu’il faut retenir Démo #3 – Authentification intégrée Azure Bot Service
  • 19. Pour aller plus loin… Utilisation des services cognitifs Microsoft• Reconnaissanced’intentions avec LUIS • Questions/Réponseavec le QnAmaker • Analyse de texte pour détection de langue, extraction de sentiments • Correcteur orthographiques Automatisation d’actions  Adaptive cards!• Couplées à MiccrosoftFlow +Azure Functions/LogicApps
  • 20. Conclusion Méthode   MSAL + Flux implicite Logique du bot plus simple à maintenir Librairie facile d’utilisation avec SPFx Azure AD v2 Pas de SSO (popup systématique) Expérience moins performante la première connexion Valide seulement pour un seul canal Web Pas de version Node.js ADAL.js (Node.js) + Flux avec code d’autorisation Approche valide pour plusieurs canaux Authentification en un clique en mode Web Contrôle total du flux (flexibilité) Plus complexe à mettre en œuvre au niveau du bot Azure AD v1 Authentification intégrée du Bot Service Peu de travail à faire au niveau du bot Pas de gestion du flux à faire à la main Pas éprouvé encore Pas de maitrise sur les paramètres et le flux d’authentification (opaque)
  • 21. Pour être vraiment efficace, un bot doit connaître ses utilisateurs… Conclusion  Quel scénario cherche t-on à résoudre (recherche, automatisation d'action, etc.)?  Est-ce qu’un bot est la bonne solution? Si oui: • Quels seront les canaux utilisés? • Quelles seront les ressources à accéder? De quelles permissions va-t-on avoir besoin? Vont-elles évoluer au cours du temps (v1 vs v2)? • Quelle sera l’expérience d’authentification pour chaque canal? • Quel(s) format(s) pour les résultats? Quelle est la compatibilité pour chaque canal? • Dois-je faire appel à des services externes (Flow, Azure, etc.)? De quelle information ai-je besoin? Quelques questions fondamentales à se poser avant de vous lancer dans un projet de bot dans votre intranet:

Notes de l'éditeur

  1. Session basée sur un projet réel