SuperAPI AI 工具集

oracle-idcs-better-auth-setup

安全与审计

查看项目

更新于 10-15 10:28

技能介绍

用途

该技能是 Oracle IDCS + Better Auth 搭建工作的入口技能,属于认证基础层,负责 Oracle 适配器、OIDC 配置、可信来源、回调 URL、provider 启动引导,以及跨应用一致性等主题。

它被明确定位为“路由器,而非深度实现指南”:用于诊断问题所在层,再交接给合适的技能,而不是直接给出完整实现细节。

问题归属决策

  • 问题位于认证基础(安装、配置、引导)→ 留在本技能。
  • 问题位于 Fastify 运行时请求/会话处理 → 转至 fastify-better-auth-bridge。
  • 问题位于登录后成员关系、groups 或 org_members 写入 → 转至 oracle-idcs-org-provisioning。
  • 用户不确定 bug 在哪一层 → 先用本技能核对安装检查清单。

基础验证顺序

诊断安装问题时,需按以下顺序验证,后续项依赖前面项:

  1. 数据库中存在 Oracle 适配器和 Better Auth 表。
  2. IDCS 机密应用使用正确的回调 URL。
  3. scope 包含 openid,email,profile,urn:opc:idm:__myscopes__。
  4. 可信来源和 cookie 属性与已部署应用拓扑匹配。
  5. 在编辑数据库管理的 provider 设置之前,环境配置即可冷启动认证。
  6. 环境到数据库的引导是幂等的,且从不覆盖已有的 provider 行。

不明显但重要的安装规则

环境优先引导: 在数据库中不存在 provider 行之前,认证必须仅凭环境变量即可工作。provider 行用于运维可见性,而不是用于冷启动。若顺序颠倒,首次部署在任何数据库 seed 运行前认证就会中断。

共享构建块: Oracle 适配器、cookie 规则、IDCS profile 映射器和会话钩子行为必须在 Fastify 与 Next.js 应用之间共享。二者出现分歧会导致难以追踪的 token/session 不一致。

命名稳定: 当代码库已经在使用 IDCS 与 OCI_IAM_* 环境变量命名时,应保持。混合命名方案(例如引入 ORACLE_* 变量)会破坏脚本并使环境变量矩阵混乱。

回调 URL 失败模式: 错误的回调 URL 表现像 OAuth 流程成功(IDCS 重定向回来),但本地会话创建在此后立即失败。若登录看似“完成”但用户未通过认证,应优先检查此项,再调试其他内容。

常见陷阱

症状 可能原因
token 中没有 groups 声明 缺少 urn:opc:idm:__myscopes__ scope
OAuth 成功,会话失败 IDCS 应用配置中的回调 URL 错误
部署时 provider 行被清除 引导逻辑不幂等
本地认证正常,生产失败 可信来源缺少生产域名

脚本

# 校验所有必需环境变量已设置
node scripts/validate-idcs-env.js

# 打印完整安装检查清单及当前状态
node scripts/print-auth-checklist.js

参数

$ARGUMENTS:可选,指定安装关注点。

示例:/oracle-idcs-better-auth-setup callback-url

示例:/oracle-idcs-better-auth-setup trusted-origins

若留空:审计完整的共享认证安装流程。