Copilot Studio Client S2S深度解析:Microsoft 365 Agents SDK如何通过D2E API免Bot Service直连
2026/8/24 11:56:55 网站建设 项目流程

Copilot Studio Client S2S深度解析:Microsoft 365 Agents SDK如何通过D2E API免Bot Service直连

【免费下载链接】AgentsThe Microsoft 365 Agent SDK simplifies building full stack, multichannel, trusted agents for platforms including M365, Teams, Copilot Studio, and Webchat.项目地址: https://gitcode.com/gh_mirrors/agents/Agents

本文带你完整理解 Copilot Studio Client S2S 直连机制:微软开源的 Microsoft 365 Agents SDK(GitHub 加速计划 / agents / Agents 项目)基于 D2E(Direct-to-Engine)API,让你的应用跳过 Azure Bot Service,凭 Entra ID 令牌直接调用已发布的 Copilot Studio 智能体。这是目前构建跨后端、多通道、可信任 Agent 应用的关键能力,全文将用最简步骤带你跑通第一条对话。

📌 什么是 S2S 直连?一张表看懂 D2E 与 DirectLine 的区别

传统上,程序化调用 Copilot Studio 智能体需要走 DirectLine 通道,中间必须经过一次 Azure Bot Service(ABS)中转。而 S2S(Server-to-Server)直连模式下,请求路径被大幅缩短:

对比维度DirectLineD2E 直连(S2S)
请求路径客户端 → Azure Bot Service → MCS客户端 → PPAPI 网关 → MCS
身份认证DirectLine secret/token(自定义)仅支持 Entra ID(AAD)JWT
通信协议Activity ProtocolActivity Protocol
时延表现较高(多一跳 ABS)更低(无 ABS 中转)
S2S 支持需自定义流程原生支持 App-only 或 OBO 令牌

💡PPAPI是位于 D2E 控制器之前的"前门",负责校验 JWT 签名,下游所有服务直接信任网关已验证的声明,因此直连链路依然安全可控。

该能力目前处于Private Preview阶段,按环境/租户粒度开启,官方完整说明见 docs/copilot-studio-client-s2s-doc.md。

⚡ 两种集成模式:App-only 与用户委托(OBO)怎么选?

模式令牌类型用户上下文适用场景
True S2S(应用上下文)客户端凭据流程获取的 App-only 令牌后端到后端、调度/代理类应用、匿名智能体(Agent 需设为 "No Authentication" 模式)
用户委托 S2S(OBO)委托令牌(On-Behalf-Of)应用代表用户发起调用、已启用身份认证的智能体

OBO 模式的访问规则:应用代理至少拥有 Agent 的 viewer 权限,且用户本人也具备访问权(owner / viewer / editor),两者缺一不可。

🚀 快速上手:四步完成 Copilot Studio Client S2S 连接

第一步:在 Copilot Studio 创建并发布 Agent

在 Copilot Studio 中创建 Agent 并发布,然后进入Settings → Advanced → Metadata记下三个关键值:Schema NameEnvironment IdTenant Id。若使用 True S2S 模式,还需将智能体认证设为No Authentication

第二步:在 Entra ID 创建应用注册并授权

  1. 在 Azure 门户创建新的 App Registration;
  2. 添加Power Platform APICopilotStudio.Copilots.Invoke权限(按场景选择 Delegated 或 Application);
  3. 由租户管理员授予管理员同意;
  4. 生成 Client Secret(或接入托管身份/联合凭据)。

第三步:将 Agent 共享给应用身份

在 Copilot Studio 打开 Agent,点击右上角 "…" →Share,搜索并选中你的应用身份,授予 viewer 权限并确认共享列表中已出现该应用。这一步是运行时 ACL 校验的前提。

第四步:配置并运行 Copilot Studio Client

核心配置项如下(.NET 示例取自samples/dotnet/copilotstudio-client/appsettings.json):

配置项说明
EnvironmentId/SchemaName/TenantId来自 Agent 元数据,三件套定位目标智能体(也可直接提供DirectConnectUrl替代)
AppClientId应用注册的 Client ID
AppClientSecret仅 True S2S 需要
UseS2SConnectiontrue= 应用上下文;false= 用户委托(OBO)

项目为三大语言提供了官方客户端示例,均可直接参考:

  • .NET 示例:samples/dotnet/copilotstudio-client/(核心代码 Program.cs、S2S 令牌处理 AddTokenHandlerS2S.cs)
  • Node.js 示例:samples/nodejs/copilotstudio-client/
  • Python 示例:samples/python/copilotstudio-client/

运行前按各示例中的 env/appsettings 模板填入凭据,启动后即可获得控制台对话界面,完成与已发布 Agent 的第一轮对话。

🔒 三道安全护栏:防止跨轮次会话劫持

S2S 直连虽然免去了 Bot Service,但安全校验并未减少。系统会在每轮请求中执行三项身份一致性检查:

检查项行为失败时错误码
应用身份一致性应用发起的会话只能由同一应用(相同 ObjectId)继续CallerIdentityMismatch
用户身份一致性用户委托会话只能由同一用户继续CallerIdentityMismatch
身份类型一致性App-only 会话不能被委托身份继续,反之亦然CallerIdentityTypeMismatch

这些检查叠加在 PPAPI 网关 JWT 校验、每 Agent 共享 ACL 以及不可变的 ConversationInfo 记录之上。此外请牢记两条硬约束:仅限同租户(调用方应用必须与 Agent 在同一租户),以及True S2S 要求匿名模式(应用上下文中无用户,用户级认证的工具与连接不可用)。

官方建议在启用 S2S 时通过 DLP(数据防泄漏)策略限制智能体通道,仅保留明确用于 S2S 的入口,以符合企业安全治理要求。

📚 延伸阅读与项目资源

  • S2S 官方设计文档(含 Hello World 全流程、测试场景清单):docs/copilot-studio-client-s2s-doc.md
  • .NET S2S 客户端示例:samples/dotnet/copilotstudio-client/
  • Node.js 客户端示例:samples/nodejs/copilotstudio-client/
  • Python 客户端示例:samples/python/copilotstudio-client/
  • OBO 授权完整示例(用户委托 S2S 的进阶参考):samples/dotnet/obo-authorization/
  • 错误码速查:AgentErrorCodes.mdAgentErrorCodesJS.md

🎯一句话总结:只需完成"应用注册 + 共享授权 + 客户端配置"三步,Microsoft 365 Agents SDK 的 Copilot Studio Client 即可通过 D2E API 免 Bot Service 直连你的智能体——更低时延、原生 Entra 认证、企业级 ACL 护栏,一次搞定。

【免费下载链接】AgentsThe Microsoft 365 Agent SDK simplifies building full stack, multichannel, trusted agents for platforms including M365, Teams, Copilot Studio, and Webchat.项目地址: https://gitcode.com/gh_mirrors/agents/Agents

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询