Bot Framework v4 bot authentication using Microsoft Graph sample
This bot has been created using Bot Framework, is shows how to use the bot authentication capabilities of Azure Bot Service. In this sample we are assuming the OAuth 2 provider is Azure Active Directory v2 (AADv2) and are utilizing the Microsoft Graph API to retrieve data about the user. Check here for information about getting an AADv2 application setup for use in Azure Bot Service. The scopes used in this sample are the following:
email
Mail.Read
Mail.Send.Shared
openid
profile
User.Read
User.ReadBasic.All
NOTE: Microsoft Teams currently differs slightly in the way auth is integrated with the bot. Refer to sample 46.teams-auth.
- Clone the repository
git clone https://github.com/Microsoft/botbuilder-samples.git
- Bring up a terminal, navigate to
botbuilder-samples\samples\24.bot-authentication-msgraph
folder - Activate your desired virtual environment
- In the terminal, type
pip install -r requirements.txt
- Deploy your bot to Azure, see Deploy your bot to Azure
- Add Authentication to your bot via Azure Bot Service
- Modify
APP_ID
,APP_PASSWORD
, andCONNECTION_NAME
inconfig.py
After Authentication has been configured via Azure Bot Service, you can test the bot.
- Run your bot with
python app.py
Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.
- Install the Bot Framework Emulator version 4.3.0 or greater from here
- Launch Bot Framework Emulator
- File -> Open Bot
- Enter a Bot URL of
http://localhost:3978/api/messages
- Enter the app id and password
This sample uses bot authentication capabilities in Azure Bot Service, providing features to make it easier to develop a bot that authenticates users to various identity providers such as Azure AD (Azure Active Directory), GitHub, Uber, etc. These updates also take steps towards an improved user experience by eliminating the magic code verification for some clients.
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.