单点登录(Single Sign-On,SSO)功能允许企业成员使用公司统一的身份认证体系登录 TRAE。
企业管理员在 TRAE 控制台中配置 SSO(Single Sign-On)登录后,成员只需输入企业邮箱即可跳转至企业的身份认证系统完成登录。
参与方说明如下:
|
角色 |
描述 |
|---|---|
|
用户 |
希望登录 TRAE 的企业成员。 |
|
TRAE 企业版控制台 |
企业配置管理平台,用于让企业管理员管理 SSO 登录相关的配置。 |
|
TRAE 的账号服务 |
TRAE 后端服务,负责 SSO 配置匹配、身份验证和会话管理。 |
|
企业的身份认证服务 |
企业自有的身份认证服务(IdP),如 Okta、Azure AD、Google Workspace 等。 |
流程说明如下:
|
序号 |
步骤 |
描述 |
|---|---|---|
|
1 |
发起 SSO 登录 |
企业成员访问 TRAE 登录页面,选择 “企业 SSO 登录” 方式。 |
|
2 |
输入企业邮箱 |
成员输入企业邮箱地址,系统根据邮箱域名找到对应的 SSO 配置。 |
|
3 |
跳转企业认证 |
TRAE 将该成员的浏览器重定向至企业的 IdP 页面(如 Okta、Azure AD 等)。 |
|
4 |
完成身份验证 |
该成员在企业的 IdP 页面中完成身份验证(支持账号密码、MFA 等方式)。 |
|
5 |
返回 TRAE |
认证成功后,浏览器自动跳转回 TRAE。 |
|
6 |
登录完成 |
TRAE 的账号服务验证该成员的身份信息,建立登录会话,然后将该用户登入 TRAE IDE。 |
在企业的 IdP 中,为 TRAE 创建一个 OAuth 应用,并获取以下信息:
登录 TRAE 企业版控制台。
前往 企业配置 > 通用设置。
在 更多登录 > SSO 登录 部分,点击 ··· > 配置。
界面上出现 SSO 登录配置 窗口。
在 回调地址 部分,复制 TRAE 为你的企业自动生成的回调地址。
前往企业的 IdP 服务管理中心,打开你为 TRAE 企业版创建的 OAuth 应用,然后将应用的重定向地址配置为上一步中复制的回调地址。
返回 SSO 登录配置面板,然后点击 下一步 按钮。
你将进入 OAuth 参数配置面板。
配置以下 OAuth 参数:
|
参数 |
是否必填 |
描述 |
|---|---|---|
|
Client ID |
是 |
你在 IdP 中为 TRAE 创建的 OAuth 应用的唯一标识符。 |
|
Client Secret |
是 |
你所创建的 OAuth 应用的密钥。TRAE 用该密钥向 IdP 服务换取访问令牌。 |
|
OAuth URL |
是 |
IdP 的授权端点。用户将被重定向至此页面完成认证。 |
|
Token URL |
是 |
IdP 的令牌端点。TRAE 后端通过此端点用授权码换取访问令牌。 |
|
UserInfo URL |
是 |
IdP 的用户信息端点。TRAE 调用此接口获取用户的身份信息。 |
|
Scope |
否 |
请求的授权范围,定义了 TRAE 可以访问的用户信息。多个值用英文逗号分隔。 |
注意
Client Secret 属于高敏感凭据,请勿在任何客户端代码、日志或版本控制系统中暴露。TRAE 仅在后端服务器与 IdP 之间使用此密钥,不会将其暴露给前端或用户。
更多关于参数的说明参考 “SSO 配置详解” 部分。
完成参数配置后,你可以:
打开 SSO 登录开关。
TRAE 的 OAuth 回调地址由系统自动生成,在 SSO 登录配置弹窗的第一步中展示。接入 SSO 登录前,必须将此地址精确填写到 IdP 的 OAuth 应用的 “Redirect URI” 或 “Allowed Callback URLs” 中。
需注意:
Scope 参数用于向 IdP 声明 TRAE 需要获取的用户信息权限范围。TRAE 使用访问令牌调用 UserInfo 接口时,IdP 会根据已授权的权限范围决定返回哪些用户属性。
在 TRAE 的 SSO 登录配置表单中,Scope 参数以英文逗号分隔多个值,例如:
openid,profile,email
建议至少包含以下权限,以确保 TRAE 能获取必要的用户信息:
|
值 |
描述 |
|---|---|
|
|
OIDC 基础权限,允许 TRAE 获取用户的唯一标识( |
|
|
允许 TRAE 获取用户的名称( |
|
|
允许 TRAE 获取用户的邮箱地址( |
提示
不同 IdP 对 Scope 的值的命名可能不同。如果使用非 OIDC 标准的 IdP(如内部自研认证系统),请参考该 IdP 的文档获取正确的值。
state 是 OAuth 2.0 流程中的防 CSRF 安全参数,由 TRAE 服务端在每次发起授权请求时自动生成,企业无需手动配置。
IdP 必须将接收到的 state 原封不动地附加在回调地址上返回给 TRAE。若 state 被修改或丢弃,TRAE 将拒绝该回调请求并报错。
针对不同 IdP 的行为差异,TRAE 已内置以下兼容处理:
%3D 转换为 =)。+,同时兼容部分将 + 解码为空格的 IdP。在通过授权码换取访问令牌时(调用 Token URL),TRAE 使用 OAuth 2.0 Auto-Detect 模式,会自动探测 IdP 支持的认证方式:
client_id 和 client_secret 通过 Authorization: Basic 请求头传递。client_id 和 client_secret 作为表单参数放在请求体中。两种方式 TRAE 均支持,IdP 只需支持其中之一即可。
TRAE 在获取访问令牌后,会调用配置的 UserInfo URL 来获取用户的身份信息。以下是对该接口的规范要求。
TRAE 优先使用 HTTP Bearer Token 方式调用 UserInfo 接口:
GET {UserInfo URL}
Authorization: Bearer {access_token}
如果接口返回非 200 状态码,TRAE 会自动回退到 Query Parameter 方式重试:
GET {UserInfo URL}?access_token={access_token}
提示
TRAE 最多重试 3 次,两种调用方式均会尝试,建议至少保证一种方式可用。
UserInfo 接口必须返回 JSON 格式数据,TRAE 会从中提取以下字段:
|
字段 |
类型 |
是否必填 |
描述 |
|---|---|---|---|
|
|
string |
是 |
用户的邮箱地址,用于匹配 TRAE 账号。若缺失则登录失败。 |
|
|
string / number |
否(建议传入) |
用户在 IdP 中的唯一标识,用于账号关联。 |
|
|
string |
是 |
用户的展示名称。若缺失则登录失败。 |
|
|
string (URL) |
否 |
用户的头像地址。若缺失,则保留用户当前在 TRAE 中使用的头像。 |
字段提取顺序:
TRAE 优先从响应根层级提取上表中的字段;若未命中,则自动回退到 data 字段下查找。企业无需做额外的字段映射配置,两种响应形态均可被正确解析:
{ "email": "user@example.com", "name": "张三" }data 字段(嵌套格式):{ "data": { "email": "user@example.com", "name": "张三" } }邮箱匹配规则:
TRAE 会对比 IdP 返回的 email 字段与用户在登录页面输入的邮箱。两者必须一致(大小写不敏感),否则登录会被拒绝并返回 “email not match” 错误。企业需确保成员使用其在 TRAE 中注册的企业邮箱发起 SSO 登录。
企业可以在飞书开放平台上创建自建应用,然后直接复用飞书身份体系接入 TRAE SSO。这是飞书接入 TRAE SSO 的主流方式,适合尚未部署独立 SSO 网关的企业。
|
参数 |
参考值 |
|---|---|
|
OAuth URL |
|
|
Token URL |
|
|
UserInfo URL |
|
|
Scope |
|
前置操作:
https://console.enterprise.trae.cn/oauth/callback)和企业专属域名的回调地址(https://vpcxxxxxxx.trae.volces.com/oauth/callback),从而避免因后续修改域名访问策略而导致 SSO 登录失败。contact:user.email:readonly:用于获取邮箱contact:user.employee_id:readonly:用于获取用户 ID提示
飞书的 UserInfo 接口将用户信息包裹在 data 字段下(如 data.email、data.name)。TRAE 已内置对此结构的自动兼容,无需额外配置字段映射。用户邮箱对应 data.email(个人邮箱),用户唯一标识对应 data.open_id。
企业可以在飞书集成平台上构建统一的 SSO 网关(聚合多个 IdP),然后让 TRAE 复用该统一接入点。
|
参数 |
参考值 |
|---|---|
|
OAuth URL |
|
|
Token URL |
|
|
UserInfo URL |
|
|
Scope |
|
前置操作:
参考此文档,在飞书集成平台(anycross.feishu.cn)创建 SSO 自建应用,并启用 OAuth 2.0 协议。参数配置要求如下:
https://console.enterprise.trae.cn/oauth/callback)和企业专属域名的回调地址(https://vpcxxxxxxx.trae.volces.com/oauth/callback),从而避免因后续修改域名访问策略而导致 SSO 登录失败。authorization_code,为权限范围(Scope)配置 Email 和 profile,将返回类型设置为 code。{应用标识} 为飞书集成平台中自建应用的唯一标识,将其替换为实际值。提示
飞书集成平台的 UserInfo 接口遵循标准 OIDC 格式,email、name 字段位于响应根层级,TRAE 可直接解析,无需额外配置。