Bot Framework v4 bot authentication using Federation Identity Certificate (FIC). Currently, FIC feature is supported for Microsoft tenants only.
This bot has been created using Bot Framework, is shows how to use the bot authencation capabilities of Azure Bot Service. In this sample, we use federated identity certificate configuration to create the Bot Framework Authentication.
-
.NET SDK version 8.0
# determine dotnet version dotnet --version
-
Bot Framework SDK version 4.22.8 onwards
-
Create an user assigned managed identity.
- Record the client ID of the managed identity.
-
For a new bot
- Create Azure App and Bot
-
Create App Registration
- This can be either Single or Multi tenant.
- Record the Application and Tenant ID's.
- To create trust using the FIC, we need to link the managed identity to the App Registration. On the App Registration:
- Click on the add credential under Certificates & Secrets, Federated credentials
- On the Add a credential page, select the Federated credential scenario as Customer Managed Keys.
- Select the managed identity that you created in the previous step.
- Enter name for the credential and click on Add.
-
Create an Azure Bot in the desired resource group and use the App Registration from the previous step.
-
- Create Azure App and Bot
-
For an existing bot
- Navigate to the App Registration for the Azure Bot
- To create trust using the FIC, we need to link the managed identity to the App Registration. On the App Registration:
- Click on the add credential under Certificates & Secrets, Federated credentials
- On the Add a credential page, select the Federated credential scenario as Customer Managed Keys.
- Select the managed identity that you created in the previous step.
- Enter name for the credential and click on Add.
- Navigate to the App Service for the bot
- Add the User managed identity created in previous step to the Azure App Service under Configuration -> Identity -> User Assigned Managed Identity.
- Navigate to the App Registration for the Azure Bot
-
Set appsettings.json variables
-
MicrosoftAppType: {SingTenant | MultiTenant}
-
MicrosoftAppId: {appId}
-
MicrosoftAppTenantId: {tenantId}
-
MicrosoftAppClientId: {clientId of managed identity}
-
-
A bot using Federated Credentials, like UserManagedIdentity, cannot be run locally. It must be deployed to Azure.
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.