本文解答了有关连接到Azure 机器人服务的Microsoft 365 智能体 SDK代理的常见安全和隐私问题。
注册到Azure 机器人服务的代理是否收集个人信息?
每个代理都是各自独立的服务。 这些服务的开发人员负责提供服务条款和隐私声明,并保护其代理收集的数据。
是否可以在自己的服务器上托管代理?
是的。 可以在 Internet 上的任何位置托管代理,包括自己的服务器、Azure或其他数据中心。 代理必须公开可公开访问的 HTTPS 终结点。
如何禁止或从服务中删除代理?
用户可以通过目录中该代理的联系人名片举报行为不当的代理。 开发人员必须遵循Azure服务条款才能参与该服务。
我需要在企业防火墙中允许哪些 URL 访问Azure 机器人服务?
如果出站防火墙阻止从代理到 Internet 的流量,请将以下 URL 添加到允许列表:
-
login.botframework.azure.cn(代理身份验证) -
login.partner.microsoftonline.cn(代理身份验证) -
*.botframework.azure.cn(通道) -
login.chinacloudapi.cn(Windows登录) -
login.windows.com(Windows登录) -
sts.chinacloudapi.cn(Windows登录) - 你的智能体所使用的特定 Azure 机器人服务 通道所需的其他 URL
注释
如果不想向允许列表添加包含星号的 URL,请为代理使用的每个通道添加 <channel>.botframework.azure.cn 。 示例包括 directline.botframework.azure.cn和 webchat.botframework.azure.cn。 测试代理时监视防火墙流量,以确定其他阻止的流量。
是否可以阻止发往我的代理的所有流量,但来自 Azure 机器人服务 的流量除外?
Azure 机器人服务托管在全球Azure数据中心,Azure IP 地址列表会定期更改。 将单个 IP 地址添加到允许列表可能会暂时工作,然后在地址更改时停止工作。
创建和部署代理需要哪个Azure RBAC 角色?
在Azure门户中创建Azure机器人资源需要订阅或特定资源组的参与者角色。 具有资源组 参与者 角色的用户可以在该组中创建资源。 具有订阅 参与者 角色的用户可以在新的或现有的资源组中创建资源。
使用 Azure CLI 时,可以使用权限受到更多限制的 Azure 基于角色的访问控制 (RBAC) 自定义角色。 以下权限允许用户使用Azure机器人资源、存储和 Application Insights 创建和部署代理:
"Microsoft.Web/*",
"Microsoft.BotService/*",
"Microsoft.Storage/*",
"Microsoft.Resources/deployments/*",
"Microsoft.Insights/*",
"Microsoft.Insights/components/*"
继承的拒绝分配优先于这些允许的权限。
什么可以保护我的代理免受冒充 Azure 机器人服务 的客户端的侵害?
Azure 机器人服务和代理 SDK 使用以下保护:
- 验证Azure 机器人服务请求包括 JSON Web 令牌(JWT),其中包含代理可以验证的加密签名。 此验证可防止攻击者模拟受信任的服务。
- 每个请求附带的安全令牌包括服务 URL。 获取令牌的攻击者无法将会话重定向到另一个服务 URL。
- 如果传入令牌缺失或格式不正确,则代理 SDK 不会在响应中生成令牌。 此行为限制了错误配置的代理的潜在影响。
- 您可以手动查看令牌中的服务 URL。 如果服务拓扑发生更改,此方法会使代理更加脆弱,因此不建议这样做。
注释
这些保护适用于从代理到 Internet 的出站连接。 Azure 机器人服务 不会公布其用于连接到代理的入站连接所使用的固定 IP 地址或 DNS 名称列表。 不支持向允许列表添加入站 IP 地址。
在用户授权期间,magic 代码的用途是什么?
Web 聊天控件支持两种机制来验证正确的用户登录:
- Magic 代码:在登录过程结束时,用户会收到随机生成的六位数代码。 用户在聊天中输入此代码以完成登录。 此方法会中断用户体验,并且容易受到网络钓鱼攻击,因为恶意用户可能会欺骗其他用户登录并共享代码。
- Direct Line增强身份验证:Azure 机器人服务可确保登录过程仅在与Web 聊天相同的浏览器会话中完成。 若要使用此保护,请使用包含受信任源列表(也称为受信任域)的Direct Line令牌开始Web 聊天,该令牌可以托管代理的Web 聊天客户端。 可以在Direct Line配置页上指定受信任的源列表。 请参阅Direct Line 增强型身份验证,了解更多信息。
由于 magic 代码的安全性和用户体验限制,因此尽可能使用Direct Line增强的身份验证。
Azure 机器人服务如何处理标识和访问管理?
标识和访问管理(IAM)是策略和技术的框架,可让适当的人员访问技术资源。 Azure 机器人服务和代理 SDK 提供以下机制:
- 代理身份验证:确定请求是否来自合法源。 Azure 机器人服务控制此过程,以支持代理和通道之间的安全通信。 请参阅在您的代理中配置身份验证了解更多信息。
- 用户授权:允许代理代表用户访问受保护的联机资源。 OAuth 对用户进行身份验证,并授权代理访问资源。 在 配置代理以使用 OAuth 中了解详细信息。
Azure 机器人服务通过验证请求来自预期通道来处理服务到服务身份验证。 代理负责用户授权和其他应用程序级访问控制。