## 整体流程
## 操作步骤
### 1. 客户端加密
凭据会在发送前先在本地设备上加密。明文机密绝不会在网络上传输。
### 2. 使用加密凭证发送请求
软件开发工具包(SDK)会将你的请求与加密后的凭证一同发送到 Dedalus。
### 3. 作用域令牌签发
DAuth 会存储加密后的凭据,并签发一个具有限定作用域的令牌,该令牌:
- 绑定到特定的 MCP 服务器
- 在密码学层面绑定到你的 Client 密钥(DPoP)
- 只能用于已授权的操作
### 4. MCP 服务器接收令牌
MCP 服务器会接收这个带作用域的令牌,并使用 DAuth 的公钥对其进行验证。服务器永远不会接触到明文凭证。
### 5. 封闭执行
当 MCP 服务器需要调用外部应用程序编程接口 API(GitHub、Slack 等)时,会将请求分派到一个**安全飞地(sealed enclave)**中:
- 使用硬件保护的密钥解密凭据
- 通过 TLS 连接调用外部应用程序编程接口 API
- 仅返回响应结果
- 立即从内存中清除凭据
安全属性
| 属性 | 含义 |
|---|---|
| 客户端加密 | 凭据在离开你的设备之前会被加密 |
| 作用域受限令牌 | 令牌仅适用于特定服务器和 Connection |
| 封闭执行 | 解密在隔离的硬件边界内完成 |
| 发送方约束(DPoP) | 被窃取的令牌在没有私钥的情况下毫无用处 |
| 不持久化凭据 | 机密按需解密,使用后立即擦除 |
## 为什么这很重要
传统架构要求你的应用程序直接处理凭证:
使用 DAuth
有关实现细节,请参阅 Authorization:- 使用
AuthorizationConfig启用 DAuth - 配置服务器级和每个 tool 的 scope
- 在你的 tool 中获取已认证用户的 claims