azure - 适用于 Microsoft Teams 的 Azure Bot App Reg 可以使用单租户吗?

标签 azure botframework microsoft-teams

现在,我在应用程序注册下运行 MS Teams Bot,配置为使用“任何组织目录(任何 Azure AD 目录 - Multi-Tenancy )中的帐户和个人 Microsoft 帐户(例如 Skype、Xbox)”。

首先,我对这个主题进行了研究,并且在写这个问题时考虑了以下资源:

根据我的理解,所有这些答案都是这样的:

  • 2021 年底之前,仅支持 Multi-Tenancy 应用作为机器人身份
  • 现在我应该能够使用 Single-tenat 进行应用注册,但这需要额外的配置
  • 上述更改生效的时刻是机器人尝试进行身份验证的时刻

由于其他机器人强制(明确)授权使用 ex。 MicrosoftAppCredentials - MS Teams Bot 在 XML 文件(如机器人服务中的 appsettings.json)中以声明方式配置其授权详细信息。

如何将单租户应用程序注册与 MS Teams 中使用的 Azure Bot 一起使用?还是目前无法实现?

编辑:
对于 future 的读者:根据答案,我准备了两个位置,您可以在其中访问传入事件的 TenantId 以执行白名单验证(在 Multi-Tenancy 设置中,因为单租户仍然无法在 Teams 上运行):

  1. BotController中:
        [HttpPost]
        public async Task PostAsync()
        {
            // Here using 
            //this.Request.Headers["X-Ms-Tenant-Id"].ToString()
        }
  • TeamsActivityHandler 实例方法重写中:
  •     internal class /***/ : TeamsActivityHandler
        {
            //any method that have access to TurnContext or Activity
            public override Task /***/(ITurnContext<IInvokeActivity> turnContext, ...)
            {
                // Here using
                //turnContext.Activity.Conversation.TenantId
            }
        }
    

    有了 TenantId,您可以将其与允许的租户进行比较,并相应地拒绝或允许。

    最佳答案

    我最近在这个网站上与另一位用户遇到了这个问题,主动消息传递不起作用,因为他们选择了单租户。这是最近的一个选项,而且它似乎与我的研究不符——我会选择 Multi-Tenancy 选项。如果您确实需要阻止其他租户访问机器人(这很推荐,因为任何 Teams 租户中的任何用户都可能访问机器人,最好将您的租户 ID 列入白名单)。这里有一个关于如何执行此操作的旧示例 - 尚未测试它是否仍然有效: https://github.com/OfficeDev/microsoft-teams-sample-complete-csharp/blob/master/template-bot-master-csharp/middleware/Middleware.cs

    关于azure - 适用于 Microsoft Teams 的 Azure Bot App Reg 可以使用单租户吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71688474/

    相关文章:

    azure - 如何获取Web应用程序服务的使用指标数据?

    botframework - Azure BOT 框架,将 QnA Maker 与 LUIS 集成

    node.js - 使用 Team 的附件按钮在机器人应用程序中上传文件时,Microsoft Teams 返回错误

    typescript - 获取 Botbuilder 登录按钮取消响应

    azure - 在 Postman 中请求受 Azure AD B2C 保护的 Azure 函数应用程序的访问 token

    azure - 从 "Get-AzureRmEventHubKey "命令 power-shell 中提取事件中心 Microsoft-azure 的主键

    c# - 如何通过 Bot Framework 向 Teams 中的用户发送通知?

    node.js - 扩展按钮以显示长消息

    javascript - 在添加为选项卡的 "Content page"中获取 Microsoft Team 上下文

    svn - 如何在 Windows Azure 实例上设置 VisualSVN 安装程序