airdb.id

airdb.id · 统一身份平台

一个身份,
通行所有
airdb 服务。

airdb.id 是 airdb 体系的身份中枢:为人提供 OIDC / OAuth 2.1 单点登录、 Passkey 多因素与零信任接入,也为机器人签发可追责的 Agent ID。 实名核验坚持「核验即弃」——证件是用来核验的,不是用来收藏的。

平台建设中 · 现行入口 sso.airdb.dev · 国内环境 id.airdb.net

airdb identitySPECIMEN · 样本
持有人 / Holder
示例 · SPECIMEN
签发方 / Issuer
id.airdb.net
证件号 / ID No.
hmac:8f3c…e21a
凭据 / Credential
Passkey · 已启用
实名状态 / Status
已核验 ✓
证件影像 / Image
未留存 —

▲ 示例样本:我们保存的全部,就是这张卡上的东西。

OIDC / 2.1
标准协议 · OpenID Connect + OAuth 2.1
1 个账号
通行 BBS、XAdmin 与全线 airdb 服务
0 份影像
证件核验即弃 · 只留结果与哈希
2 套环境
国内 id.airdb.net · 海外 airdb.id

平台能力

七件事,一个身份

登录、账号、多因素、审计、实名、零信任,再加上机器人—— 人和机器人的身份相关的事都归这里,业务系统不再各自管用户。 状态如实标注:没上线,就写规划中。

01建设中P0

统一登录 SSO

OIDC / OAuth 2.1 单点登录,BBS、XAdmin、门户共用一个账号,登录一次全线通行。

02建设中P0

账号中心

资料、第三方绑定、登录设备与历史,一处管理;授权过的应用随时一键撤销。

03规划中P1

Passkey 与多因素

WebAuthn 无密码登录作为一等公民,TOTP 与短信兜底,密码只是过渡方案。

04规划中P1

审计与风控

登录与授权事件全量留痕,只增不改;异地登录、异常行为主动告警。

05规划中P2

实名核验 · 核验即弃

对接权威数据源核验身份证与护照,只留「已核验」结果与哈希,不留任何影像。

06规划中P3

零信任接入

内部系统统一挂身份感知代理,按角色与 MFA 等级放行,业务自身不再做登录。

07规划中P4

机器人身份 · Agent ID

AI Agent、爬虫与自动化任务也持证上岗:登记归属到人,短时效凭据,委托授权,每一次调用都能追责到持有人。

核验即弃 · Verify & Discard

证件用来核验,
不用来收藏

身份证、护照、工作证——这类敏感证件,对平台来说存下来就是负债。 泄露一次,用户没法像改密码一样换一张身份证。

所以 airdb.id 把实名做成一条通道而不是一个仓库: 证件只在核验那一刻经过我们,比对完成即丢弃,系统里留下的只有结果、哈希与时间。

业务系统则更简单:只能问「这个人是否已实名」,得到一个布尔值,永远拿不到证件数据——因为我们自己也没有。

注:依照《个人信息保护法》,证件信息属于敏感个人信息——单独同意、最小化使用、 国内数据境内留存。「核验即弃」是把合规写进架构,而不是写进承诺。

提交核验

证件信息仅在这一次核验请求中使用,全程加密传输,不落任何中间存储。

权威源比对

对接公安三要素等权威数据源实时比对,我们做通道,不做证件的抄写员。

即时丢弃

比对完成即丢弃原始数据,只写下三样东西:结果、哈希、时间。

我们保存的
  • verified已实名 · 布尔值与核验等级
  • hmac(证件号)单向哈希 · 仅用于查重
  • verified_at核验时间与审计流水
我们不保存的
  • 证件影像身份证、护照、工作证照片
  • 明文证件号任何可还原的证件号码
  • 人脸数据活体检测的原始帧

机器人身份 · Agent ID

机器人上岗,也要证件

越来越多的访问不是来自人,而是来自替人干活的程序——AI Agent、爬虫、 CI 机器人、自动化脚本。行业正在形成共识:每个机器人都该有自己的身份, 而不是共用某个人的 Cookie,或一把谁都能复制的永久 API Key。

所以 airdb.id 把身份体系做成人机同源:机器人与人共用同一套 签发、授权与审计设施。登记归属、短票上岗、代行委托,每一次调用都能回答 「这是谁家的机器人、替谁、在做什么」。

  • 归属到人每个机器人登记时必须绑定一个已实名的持有人或组织,无主机器人不签发。
  • 短票不长钥不发永久 API Key:私钥签名换分钟级短时效 token,泄露即过期,随时可吊销。
  • 委托即授权代人行事的 token 带 act 声明,权限只能是持有人授权的子集,一键撤销。
  • 有据可查每次调用全量留痕;公开台账可以查证「这个机器人是谁家的、替谁干活」。

注:不发明私有轮子——签发走 OAuth 2.1 client credentials, 代行委托采用 Token Exchange 的 act 声明,对外请求可附 HTTP 消息签名(Web Bot Auth 方向),标准协议都能对上。

airdb agentSPECIMEN · 样本
机器人 / Agent
crawler-01
持有人 / Holder
示例 · 已实名
签发方 / Issuer
airdb.id
密钥指纹 / Key
sha256:ab12…9f
作用域 / Scope
bbs.read forum.post
凭据时效 / TTL
15 分钟 · 短票

▲ 示例样本:机器人的工作证——归属到人,凭据短时效。

开发者接入

标准 OIDC,不发明轮子

任何支持 OpenID Connect 的语言和框架都能直接接入, 三个端点走完标准授权码流程,不需要学习私有协议。

  • 强制 PKCE,不提供隐式流——按 OAuth 2.1 的姿势来。
  • 短时效 Access Token,Refresh Token 旋转,一次一换。
  • 实名查询只返回布尔与等级,业务方永远接触不到证件数据。
  • Webhook 推送注册、注销与风险事件,业务侧无需轮询。
$ curl https://airdb.id/.well-known/openid-configuration

{
  "issuer":                 "https://airdb.id",
  "authorization_endpoint": "https://airdb.id/oauth/authorize",
  "token_endpoint":         "https://airdb.id/oauth/token",
  "jwks_uri":               "https://airdb.id/oauth/jwks",
  "scopes_supported":       ["openid", "profile", "email"],
  "code_challenge_methods_supported": ["S256"]
}
GET /oauth/authorize
    ?client_id=bbs-airdb-net
    &response_type=code
    &scope=openid profile
    &redirect_uri=https://bbs.airdb.net/auth/callback
    &code_challenge=E9Melhoa…OT41gw   # PKCE · S256,强制
    &state=af0ifjsldkj

302 → https://bbs.airdb.net/auth/callback?code=…&state=…
POST /oauth/token
    grant_type=authorization_code
    code=SplxlOBeZQQYbYS6WxSbIA
    code_verifier=dBjftJeZ4CVP…

{
  "access_token":  "eyJhbG…",  # JWT · 短时效
  "refresh_token": "v1.MjAy…", # 旋转 · 一次一换
  "id_token":      "eyJhbG…"
}
POST /oauth/token                          # 机器人换短票
    grant_type=client_credentials
    client_assertion_type=…jwt-bearer       # 私钥签名 · 私钥不出机器
    client_assertion=eyJhbG…
    scope=bbs.read forum.post

{
  "access_token": "eyJhbG…",       # 15 分钟 · 短票
  "sub":  "agent:crawler-01",       # 机器人自己的身份
  "act":  { "sub": "user:8f3c…" }  # 替谁干活 · 可追责
}

路线图

五步走,不许愿

每一期都是可独立交付的能力:先把 SSO 落地,再做加固, 然后才轮到实名、零信任与机器人身份。

P0

SSO 落地

OIDC IdP 上线,BBS 与 XAdmin 首批接入,账号中心提供资料与密码管理。

建设中
P1

安全加固

Passkey / TOTP 多因素,登录历史与全量审计,管理后台与应用注册。

规划中
P2

实名体系

核验即弃的实名核验上线;业务方只能查询「是否已实名」,拿不到证件数据。

规划中
P3

零信任

身份感知代理覆盖内部系统,SCIM 用户同步与细粒度授权。

规划中
P4

机器人身份

Agent 注册与签发上线:短时效凭据、act 代行委托、请求签名验证与公开台账。

规划中

环境与接入方

两套环境,一一对应

.id 与 .dev 一样无法 ICP 备案,所以国内、海外各一套,账号互通; 国内用户的敏感数据只落国内节点。

CN · 已备案

id.airdb.net

国内环境,国内用户数据只落国内节点,敏感数据不跨境同步。

GLOBAL

airdb.id

海外环境,与国内系统一一对应;.id 域名无法 ICP 备案,仅部署海外节点。

常见问题

问得最多的,
先答在这

关于核验即弃、数据去向和接入方式。没找到答案的问题,去 GitHub 提 issue, 答完会补充到这里。

「核验即弃」之后,你们手里还有什么?

只有三样:已实名的布尔结果与核验等级、证件号的单向哈希(仅用于查重,无法还原)、核验时间与审计流水。证件影像、明文证件号、活体检测的原始帧,在比对完成的那一刻即时丢弃,不落任何存储。

业务系统能拿到我的证件信息吗?

不能。业务方只能调用实名查询接口,得到「是否已实名」与核验等级两个字段。这不是权限问题,而是架构问题——证件数据我们自己也没有留存,想给也给不出来。

国内和海外是一个账号吗?数据存在哪里?

账号一一对应、全线互通:国内走 id.airdb.net(已备案),海外走 airdb.id。依照《个人信息保护法》,国内用户的敏感数据只落国内节点,不做跨境同步。

为什么不让各系统自己做登录?

登录这件事做一次就够了。密码策略、Passkey、风控、审计,集中在一处建设和修补,比散落在每个系统里各修各的可靠得多;业务系统只做业务,暴露的攻击面也更小。

机器人也要办「证件」?给谁用的?

给所有代替人干活的程序:AI Agent、爬虫、CI 机器人、自动化脚本。它们访问 airdb 服务时不再共用某个人的 Cookie,也不再靠一把谁都能复制的永久 API Key,而是持自己的 Agent ID 上岗——登记归属到已实名的人或组织,按需授权,全程留痕。对业务系统来说,「谁在访问」从此有标准答案:要么是一个人,要么是一个登记在册、能追责到人的机器人。

机器人的凭据泄露了怎么办?

损失被架构限制在最小:机器人拿到的是分钟级短时效 token,泄露即过期;换票依靠私钥签名,私钥不经过网络传输;持有人可在账号中心一键吊销整个 Agent。且 Agent 的权限只能是持有人授权的子集,拿到 token 也越不了权。

现在可以接入吗?

SSO 正在建设中(P0 阶段)。接入走标准 OIDC:先在 GitHub 提 issue 登记排期,IdP 上线后把 discovery 地址指向 airdb.id 即可,业务逻辑无需改造。

让系统少管一件事

把登录和用户交给 airdb.id,业务只做业务。接入排期、能力建议、台账缺漏——都欢迎提 issue。