This sample uses 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
A bot is an app that users interact with in a conversational way using text, graphics (cards), or speech. It may be a simple question and answer dialog, or a sophisticated bot that allows people to interact with services in an intelligent manner using pattern matching, state tracking and artificial intelligence techniques well-integrated with existing business services.
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.
- Clone the repository.
git clone https://github.com/microsoft/botbuilder-samples.git
- Update
ConnectionSettingName
inGraphAuthenticationBot.cs
so the bot can perform OAuth calls through Azure Bot Service - [Optional] Update the
appsettings.json
file underbotbuilder-samples/samples/csharp_dotnetcore/24.bot-authentication-msgraph
with your botFileSecret. For Azure Bot Service bots, you can find the botFileSecret under application settings.
- Navigate to the samples folder (
botbuilder-samples/samples/csharp_dotnetcore/24.bot-authentication-msgraph
) and open BotAuthenticationMSGraph.csproj in Visual Studio - In Visual Studio right click on the solution and select "Restore NuGet Packages".
- Run the project (press
F5
key)
- Install the .NET Core CLI tools.
- Using the command line, navigate to
botbuilder-samples/samples/csharp_dotnetcore/24.bot-authentication-msgraph
- Type
dotnet run
.
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.
- Launch the Bot Framework Emulator.
- File -> Open bot and navigate to
botbuilder-samples/samples/csharp_dotnetcore/24.bot-authentication-msgraph
folder. - Select
bot-authentication-msgraph.bot
file.
You can use the MSBot Bot Builder CLI tool to clone and configure any services this sample depends on. In order to install this and other tools, you can read Installing CLI Tools.
To clone this bot, run
msbot clone services -f deploymentScripts/msbotClone -n <BOT-NAME> -l <Azure-location> --subscriptionId <Azure-subscription-id> --appId <YOUR APP ID> --appSecret <YOUR APP SECRET PASSWORD>
NOTE: You can obtain your appId
and appSecret
at the Microsoft's Application Registration Portal