我正在使用 MSFT Bot Framework 来构建团队机器人,但我的机器人只与我的组织相关。实际上,我不希望我组织之外的任何人能够与它交谈。
我一直在寻找如何将我的机器人限制到特定的 Office 365 组织,但找不到如何去做。我唯一能找到的是使用对方用户字符串来查看他们住在哪个组织中。
我的问题:有没有办法将我的机器人限制在单个 O365 组织中?
谢谢
布拉姆
我正在使用 MSFT Bot Framework 来构建团队机器人,但我的机器人只与我的组织相关。实际上,我不希望我组织之外的任何人能够与它交谈。
我一直在寻找如何将我的机器人限制到特定的 Office 365 组织,但找不到如何去做。我唯一能找到的是使用对方用户字符串来查看他们住在哪个组织中。
我的问题:有没有办法将我的机器人限制在单个 O365 组织中?
谢谢
布拉姆
已经 2 年了,但没有真正的答案,它出现在我的相关列表中...
如今,您可以编写一个简单的中间件来执行租户过滤,如下所示:
public static string TenantFilterSettingAny = "#ANY#";
/// <summary>
/// Here are below scenarios -
/// #Scenario 1 - Reject the Bot If Tenant is configured in web.config and doesn't match with Incoming request tenant
/// #Scenario 2 - Allow Bot for every Tenant if Tenant is not configured in web.config file and default value is #ANY#
/// </summary>
/// <param name="activity"></param>
/// <param name="currentTenant"></param>
/// <returns></returns>
public static bool RejectMessageBasedOnTenant(IMessageActivity activity, string currentTenant)
{
if (!String.Equals(ConfigurationManager.AppSettings["OFFICE_365_TENANT_FILTER"], TenantFilterSettingAny))
{
//#Scenario 1
return !string.Equals(ConfigurationManager.AppSettings["OFFICE_365_TENANT_FILTER"], currentTenant);
}
else
{
//Scenario 2
return false;
}
}
它取自这个样本
目前最可靠的方法是实现用户身份验证,如AuthBot 所示,然后检查登录用户的租户 ID。