云云​(留言 | 贡献)
创建页面,内容为“'''CaelLabID''' 是虚舟实验室(CaelLab)推出的统一身份认证系统,基于 OAuth 2.0 标准协议构建,为第三方应用提供安全的用户身份验证与授权服务。<ref name="docs">[https://id.caellab.com/docs 概述 | CaelLabID 开放平台]</ref>该系统允许应用接入 CaelLabID 的用户体系,用户可通过 CaelLabID 账户登录第三方应用,无需为每个应用单独注册。<ref name="docs" />{{Infobox|标题=CaelLab…”
 
IdleTap-bot​(留言 | 贡献)
由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行)
 
(未显示3个用户的7个中间版本)
第1行: 第1行:
'''CaelLabID''' 是虚舟实验室(CaelLab)推出的统一身份认证系统,基于 OAuth 2.0 标准协议构建,为第三方应用提供安全的用户身份验证与授权服务。<ref name="docs">[https://id.caellab.com/docs 概述 | CaelLabID 开放平台]</ref>该系统允许应用接入 CaelLabID 的用户体系,用户可通过 CaelLabID 账户登录第三方应用,无需为每个应用单独注册。<ref name="docs" />{{Infobox|标题=CaelLabID|内容={{!}}-
'''[[CaelLab]]ID''' 是[[虚舟实验室(CaelLab)]]推出的统一身份认证与授权开放平台,基于 OAuth 2.0 标准协议构建。作为面向第三方开发者的开放平台<ref name="docs2">[https://id.caellab.com/docs 概述 | CaelLabID 开放平台]</ref>,CaelLabID 允许任何开发者注册应用并接入其[[用户]]体系,通过标准化的授权流程为应用提供安全的用户身份验证服务。[[虚舟]]实验室自身的其他应用在平台中也仅作为普通第三方应用存在,与其他开发者的应用遵循相同的接入规范和技术标准。<ref name="docs2" />{{Infobox
! 中文名
| title = CaelLabID
{{!}} CaelLabID
 
{{!}}-
| label1 = 平台类型
! 所属机构
| data1 = 统一身份认证与授权开放平台
{{!}} 虚舟实验室(CaelLab)
 
{{!}}-
| label2 = 所属团队
! 协议标准
| data2 = [[虚舟实验室(CaelLab)]]
{{!}} OAuth 2.0 Authorization Code Grant
 
{{!}}-
| label3 = 协议标准
! 认证方式
| data3 = OAuth 2.0 Authorization Code Grant
{{!}} HTTP Basic Auth / POST body
 
{{!}}-
| label4 = 认证方式
! 密码存储
| data4 = [[HTTP]] Basic Auth / POST body
{{!}} SHA-256 哈希(服务端不存明文)
 
{{!}}-
| label5 = 密码存储
! 授权码有效期
| data5 = SHA-256 哈希(服务端不存明文)
{{!}} 10 分钟
 
{{!}}-
| label6 = 授权码有效期
! Access Token 有效期
| data6 = 10 分钟
{{!}} 1 小时
 
{{!}}-
| label7 = Access Token 有效期
! 官网
| data7 = 1 小时
{{!}} [https://id.caellab.com id.caellab.com]}}
 
| label8 = 官网
| data8 = [https://id.caellab.com id.caellab.com]
}}


== 概述 ==
== 概述 ==
CaelLabID 是虚舟实验室的统一身份认证系统,遵循 OAuth 2.0 标准协议中的 Authorization Code Grant(授权码模式)流程。<ref name="docs" />该系统旨在为开发者提供标准化的身份认证接入方案,使第三方应用能够安全地接入 CaelLabID 用户体系,获取用户授权并调用用户基本信息。<ref name="docs" />
CaelLabID 是[[虚舟实验室]]面向开发者提供的统一身份认证开放平台,遵循 OAuth 2.0 标准协议中的 Authorization Code Grant(授权码模式)流程。<ref name="docs2" />该平台允许任意开发者注册应用,并通过标准化的 OAuth 2.0 流程安全接入 CaelLabID 的用户体系,获取用户授权并调用用户基本信息。<ref name="docs2" />平台在服务端不[[存储]]用户明文密码,而是采用 SHA-256 哈希算法进行存储,以增强安全性。<ref name="docs2" />


系统在服务端不存储用户明文密码,而是采用 SHA-256 哈希算法进行存储,以增强安全性。<ref name="docs" />
作为开放平台,CaelLabID 对所有接入应用采取统一的技术标准和管理规范。虚舟实验室自身开发的其他应用(例如其旗下的各服务)在 CaelLabID 平台中同样作为普通第三方应用接入,需要按照相同的流程创建应用、获取独立的 client_id 和 client_secret,并遵循同样的 OAuth 2.0 授权流程,不存在特权接入通道。<ref name="docs2" />这一机制确保了平台的开放性和中立性。


== 核心功能 ==
== 核心功能 ==
CaelLabID 提供以下核心功能:
CaelLabID 开放平台提供以下核心功能:<ref name="docs2" />


* '''OAuth 2.0 授权码流程''':标准化的授权码模式,支持第三方应用通过用户授权获取访问令牌。<ref name="docs" />
* '''OAuth 2.0 授权码流程''':标准化的授权码模式,支持第三方应用通过用户授权获取访问令牌。
* '''跨应用隐私保护''':为每个应用分配独立的用户标识符(sub),防止第三方应用通过用户 ID 进行跨应用关联追踪。<ref name="docs" />
* '''跨应用隐私保护''':为每个应用分配独立的用户标识符(sub),防止第三方应用通过用户 ID 进行跨应用关联追踪。
* '''Refresh Token 轮换''':每次刷新令牌时签发新的 Refresh Token,旧的令牌自动失效,提升会话安全性。<ref name="docs" />
* '''Refresh Token 轮换''':每次刷新令牌时签发新的 Refresh Token,旧的令牌自动失效,提升会话安全性。
* '''Token 撤销''':支持主动撤销 Access Token 和 Refresh Token。<ref name="docs" />
* '''Token 撤销''':支持主动撤销 Access Token 和 Refresh Token。


== 技术规格 ==
== 技术规格 ==
=== 支持的 Scope ===
=== 支持的 Scope ===
CaelLabID 当前仅开放 `openid` scope,用于获取用户的基本身份标识。<ref name="docs" /> `profile`(用户名、显示名、头像、简介)和 `email`(邮箱地址及验证状态) scope 计划在后续版本中逐步开放。<ref name="docs" />
CaelLabID 当前仅开放 `openid` scope,用于获取用户的基本身份标识。<ref name="docs2" /> `profile`(用户名、显示名、头像、简介)和 `em[[AI|ai]]l`(邮箱地址及验证状态) scope 计划在后续版本中逐步开放。<ref name="docs2" />


=== 令牌有效期 ===
=== 令牌有效期 ===
系统对各类型令牌设定了以下有效期:<ref name="docs" />
系统对各类型令牌设定了以下有效期:<ref name="docs2" />


* 授权码(Authorization Code):10 分钟
* 授权码(Authorization Code):10 分钟
第49行: 第51行:


== OAuth 2.0 接入流程 ==
== OAuth 2.0 接入流程 ==
CaelLabID 的 OAuth 2.0 接入遵循标准的授权码模式,整体流程如下:<ref name="oauth">[https://id.caellab.com/docs/quickstart/oauth-flow OAuth 接入流程 | CaelLabID 开放平台]</ref>
CaelLabID 的 OAuth 2.0 接入遵循标准的授权码模式,整体流程如下:<ref name="oauth2">[https://id.caellab.com/docs/quickstart/oauth-flow OAuth 接入流程 | CaelLabID 开放平台]</ref>


# '''引导用户授权''':第三方应用将用户浏览器重定向至 CaelLabID 的授权端点(`/oauth/authorize`),用户登录并确认授权。<ref name="oauth" />
# '''引导用户授权''':第三方应用将用户[[浏览器]]重定向至 CaelLabID 的授权端点(`/oauth/authorize`),用户登录并确认授权。<ref name="oauth2" />
# '''处理回调''':用户授权后,CaelLabID 通过 302 重定向将授权码(code)返回至应用指定的回调地址。<ref name="oauth" />
# '''处理回调''':用户授权后,CaelLabID 通过 302 重定向将授权码(code)返回至应用指定的回调地址。<ref name="oauth2" />
# '''换取令牌''':应用服务端使用授权码,通过向 `/oauth/token` 端点发起 POST 请求,换取 Access Token 和 Refresh Token。<ref name="oauth" />
# '''换取令牌''':应用服务端使用授权码,通过向 `/oauth/token` 端点发起 POST 请求,换取 Access Token 和 Refresh Token。<ref name="oauth2" />


=== 授权端点 ===
=== 授权端点 ===
授权 URL 构造方式如下:<ref name="oauth" /><pre>
授权 URL 构造方式如下:<ref name="oauth2" /><pre>
https://id.caellab.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_CALLBACK_URL&scope=openid&state=RANDOM_STRING
https://id.caellab.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_CALLBACK_URL&scope=openid&state=RANDOM_STRING
</pre>主要请求参数包括:<ref name="oauth" />
</pre>主要请求参数包括:<ref name="oauth2" />


* `response_type`:固定值 `code`
* `response_type`:固定值 `code`
* `client_id`:应用注册时获得的 Client ID
* `client_id`:应用注册时获得的 Client ID
* `redirect_uri`:回调地址,须与注册时填写的一致
* `redirect_[[URI|uri]]`:回调地址,须与注册时填写的一致
* `scope`:权限范围,当前仅支持 `openid`
* `scope`:权限范围,当前仅支持 `openid`
* `state`:推荐使用的随机字符串,用于防止 CSRF 攻击
* `state`:推荐使用的随机字符串,用于防止 CSRF 攻击


=== 令牌端点 ===
=== 令牌端点 ===
换取 Access Token 需向 `/oauth/token` 端点发起 POST 请求,支持以下两种认证方式:<ref name="oauth" />
换取 Access Token 需向 `/oauth/token` 端点发起 POST 请求,支持以下两种认证方式:<ref name="oauth2" />


* '''POST body 传参''':在请求体中传递 `client_id` 和 `client_secret`
* '''POST body 传参''':在请求体中传递 `client_id` 和 `client_secret`
* '''HTTP Basic Auth''':在 Authorization 头中使用 Base64 编码的 `client_id:client_secret`
* '''[[HTTP]] Basic Auth''':在 Authorization 头中使用 Base64 编码的 `client_id:client_secret`
 
成功响应返回 [[Js|JS]]ON 格式[[数据]],包含 `access_token`、`token_type`、`expires_in`、`refresh_token` 等字段。<ref name="oauth2" />


成功响应返回 JSON 格式数据,包含 `access_token`、`token_type`、`expires_in`、`refresh_token` 等字段。<ref name="oauth" />
== 开发者资源 ==
CaelLabID 开放平台为开发者提供了完整的接入文档,包括快速开始指南、OAuth 流程详解以及多种[[编程]]语言([[PHP]]、[[Node.js]])和 c[[URL]] 的代码示例。<ref name="oauth2" />开发者可通过官方文档了解应用注册、授权流程配置、令牌管理等详细技术信息。


== 参考文献 ==
== 参考文献 ==
<references />
<references />