跳到主要内容

ARC 2.0.0-beta.28

ARC 中的 DID Connect

ARC 内嵌 DID Connect service 代码,把受信凭据解析为调用者信息以及可选的 instance membership 上下文。

Node 运行时导入内嵌的 @arcblock/did-connect-service,并在认证边界使用它。解析器接受受信凭据,为 AFS 构造调用者信息,并在服务端提供受信 instance DID 时附加 instance membership 角色。

运行时接缝

部件在 ARC 中的角色
createEmbeddedAuthService在 daemon home 下对本地 SQLite(或注入的)auth 数据库启动 connect-service
HTTP handler提供 host 暴露的 /.well-known/service/* connect 端点
rpc.resolveIdentity把 JWT / access-key 输入变成 connect-service 身份 DTO
共享 resolveCallerFromCredentials把该 DTO 映射为 AFS CallerInfo(Node 与 Cloudflare 共用)
@aigne/afs-members可选的、针对固定 instance DID 的只读 memberships AFS 视图

Membership 上下文不是客户端选择的。只有服务端解析的 instance DID 可以进入 membership 解析。请求不能仅靠点名某个 instance 就创造更强关系。

对接什么

把 ARC 的调用者上下文当作面向 AFS 的 Blocklet 交接面:

  1. 依赖运行时产生 CallerInfo
  2. 需要时把呈现绑定到 session 事实。
  3. 交接之后仍由 provider 与 session 策略授权每个操作。

如果需要 ARC 运行时接缝之外的 DID Connect 协议、钱包流程或 SDK 用法,使用 DID Connect 自己的文档与包。不要把本页当成完整的 DID Connect 产品手册。

不要当作 ARC 产品表面的东西

材料如何对待
历史 DID Connect 管理 / admin UI沿革或可选 host UI — 不是新应用的稳定 ARC 扩展合同
独立历史产品营销页仅作连续性参考;不证明已完整迁入 ARC
arc did 的 developer / provider / blocklet 身份工具面向实体 manifest 的独立 CLI 身份工作流;不是终端用户 session 登录

arc did infoarc did check 要求当前目录存在实体 manifest(blocklet.yaml.aup/ 及相关布局)。在空目录运行会失败:

text
ERROR: No entity manifest found in current directory (looked for blocklet.yaml, .aup/, index.html, index.{txt,md,ans}, package.json)

对 session 认证工作来说,这个失败是预期的;这些命令用于 package/provider 身份,不是检查已登录终端用户。

相关