什么是 DAT?
DAT (Distributed Access Token) 是一种由共享同一证书的签发服务和验证服务使用的访问令牌规范。验证无需再向签发服务发起请求,也无需中央会话存储,因此可在耦合较松的服务间传递认证结果。
....
plain
bytes
secure
bytes
signature
bytes
由点分隔的字段组成一个 DAT。
组成部分
DAT
用户或服务随请求发送的字符串。它包含有效期和证书 ID,并可同时携带公开数据和加密数据。
证书
包含创建和验证 DAT 所需的算法、密钥和时间范围。证书 ID cid 不可变;轮换密钥时请使用新的 cid。
管理器
客户端库的管理器存储证书,用当前可签发的证书创建 DAT,并用与各 DAT 的 cid 匹配的证书进行验证。
DAT CMS
一个可选服务器,用于创建、存储证书并将其分发给服务。它可向签发服务提供完整证书,向仅验证令牌的服务提供仅验证证书。
签发与验证
person 用户
workspace_premium DAT CMS
证书管理
基于版本的同步
凭据
DAT
login 签发服务
完整证书
DAT
受保护功能
apps 验证服务
仅验证证书
签发服务选择 plain 和 secure 数据并创建 DAT。验证服务检查有效期、签名和密文,然后将两个数据区域交给应用。plain 已签名但未加密,请勿在其中放入机密或个人数据。
证书更改后仍可验证的原因
新证书可签发后,之后的 DAT 使用其新 cid。之前的证书在其签发的所有 DAT 的 TTL 结束前仍可用于验证。这样可一并管理密钥轮换和现有令牌的验证期。
DAT 适用场景
- 认证与应用功能由不同服务处理的环境
- 多种运行时签发或验证同一令牌格式的环境
- 无需中央会话查询即可携带短期授权数据的系统
- 需在同一令牌内分离公开路由信息与受保护数据的系统
DAT 本身不定义授权策略。DAT 有效与应用是否允许请求是两件不同的事。
后续步骤
- DAT 规范:令牌字段和验证规则
- 证书:密钥与时间范围
- DAT CMS 规范:同步契约
- 库:应用集成