Bot Framework v4 bot authentication using Microsoft Graph sample
This bot has been created using Bot Framework, is shows how to uss 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.
-
.NET Core SDK version 2.1
# determine dotnet version dotnet --version
-
Update
appsettings.json
with required configuration settings- MicrosoftAppId
- MicrosoftAppPassword
- ConnectionName
-
Clone the repository
git clone https://github.com/microsoft/botbuilder-samples.git
-
In a terminal, navigate to
samples/csharp_dotnetcore/24.bot-authentication-msgraph
-
Run the bot from a terminal or from Visual Studio, choose option A or B.
A) From a terminal
# run the bot dotnet run
B) Or from Visual Studio
- Launch Visual Studio
- File -> Open -> Project/Solution
- Navigate to
samples/csharp_dotnetcore/24.bot-authentication-msgraph
folder - Select
BotAuthenticationMSGraph.csproj
file - Press
F5
to run the project
Microsoft 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 from here
- In Bot Framework Emulator Settings, enable
Use a sign-in verification code for OAuthCards
to receive the magic code
- Launch Bot Framework Emulator
- File -> Open Bot
- Enter a Bot URL of
http://localhost:3978/api/messages
This sample uses the bot authentication capabilities of 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, and so on. These updates also take steps towards an improved user experience by eliminating the magic code verification for some clients and channels. It is important to note that the user's token does not need to be stored in the bot. When the bot needs to use or verify the user has a valid token at any point the OAuth prompt may be sent. If the token is not valid they will be prompted to login.
This sample demonstrates using Azure Active Directory v2 as the OAuth2 provider and utilizes the Microsoft Graph API. Microsoft Graph is a Microsoft developer platform that connects multiple services and devices. Initially released in 2015, the Microsoft Graph builds on Office 365 APIs and allows developers to integrate their services with Microsoft products including Windows, Office 365, and Azure.
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.