Reputation: 115
Right now, I have MS Teams Bot running under App Registration configured to use "Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)".
To begin with, I did a research on that topic and I am writing this question having in mind following resources:
All these answers, from my understanding, comes to this:
As other bots imperatively (explicitly) authorize using ex. MicrosoftAppCredentials
- MS Teams Bots have their authorization details configured declaratively in XML files like appsettings.json
in bot service.
How can I use Single tenant App Registration with Azure Bot used in MS Teams? Or is it not possible currently?
EDIT:
For future reader: using the answer, I prepared two places where you can access TenantId of incoming activity to perform whitelisting validation (in Multi-tenant setup, because Single-tenant is still not working on Teams):
BotController
: [HttpPost]
public async Task PostAsync()
{
// Here using
//this.Request.Headers["X-Ms-Tenant-Id"].ToString()
}
TeamsActivityHandler
instance method override: internal class /***/ : TeamsActivityHandler
{
//any method that have access to TurnContext or Activity
public override Task /***/(ITurnContext<IInvokeActivity> turnContext, ...)
{
// Here using
//turnContext.Activity.Conversation.TenantId
}
}
Having the TenantId you can compare it to the allowed tenant and reject or allow accordingly.
Upvotes: 0
Views: 1491
Reputation: 10804
I ran into this with another user on this site recently, where Proactive Messaging would not work because they had selected Single Tenant. It's a recent option, and it seems broken from my research - I would go with the MultiTenant option. If you really need to block the bot from being accessible from other tenants (which could well be recommended as it's possible for a bot to be access by any user in any Teams tenant, it might be best to white-list your Tenant Id(s). There's an old sample on how to do this here - haven't tested if it's still working: https://github.com/OfficeDev/microsoft-teams-sample-complete-csharp/blob/master/template-bot-master-csharp/middleware/Middleware.cs
Upvotes: 1