使用 Okta 为自定义开发者门户配置 SCIM 预配
本指南介绍如何为基于 API7 Developer Portal Boilerplate 的自定义开发者门户启用 SCIM(跨域身份管理系统)预配。通过集成 Okta,你可以自动将开发者账户同步到门户。
本指南涵盖自定义门户应用中所需的代码级更改,以便它能够暴露 SCIM 端点并处理预配请求。
前置条件
- 你的自定义开发者门户通过 API7 Developer Portal Boilerplate 部署。
- 你已配置门户并可以访问其身份认证路由。
- 你拥有具有管理权限的 Okta 账户。
开发者门户 SCIM 的基本设置请参见配置开发者门户。
步骤 1:在 Okta 中创建 SCIM 应用程序
在修改门户代码之前,请在 Okta 中创建 SCIM 应用程序。
- 登录 Okta Admin Console。
- 转到 Applications -> Applications。
- 单击 Browse App Catalog。
- 搜索
SCIM。 - 选 择 SCIM 2.0 Test App (Header Auth)。
- 单击 Add Integration。
- 在 General Settings 中,为应用命名,例如
API7 Portal。 - 在 Sign-On Options 中,选择 Secure Web Authentication (SWA)。
- 单击 Done。



步骤 2:安装 SCIM 插件
在项目根目录或 apps/site 目录中,安装 Better Auth SCIM 插件。确保该版本与你的 better-auth 版本匹配。
pnpm add @better-auth/scim@1.4.10
步骤 3:在门户代码中注册插件
更新服务器和客户端身份认证代码以注册 SCIM 支持。
apps/site/src/lib/auth/server.ts
import {
organization,
openAPI,
} from 'better-auth/plugins';
import { scim } from '@better-auth/scim';
export const auth = betterAuth({
plugins: [
nextCookies(),
organization(),
openAPI(),
scim(),
...getTestingConfig(),
],
});
apps/site/src/lib/auth/client.ts
import {
genericOAuthClient,
} from 'better-auth/client/plugins';
import { scimClient } from '@better-auth/scim/client';
export const authClient = createAuthClient({
basePath: AUTH_BASE_PATH,
plugins: [
organizationClient(),
magicLinkClient(),
genericOAuthClient(),
scimClient(),
],
});
步骤 4:更新路由处理程序
SCIM 预配操作需要额外的 HTTP 方法。请相应更新身份认证路由处理程序。
apps/site/app/api/auth/[...all]/route.ts
export const { GET, POST, PUT, PATCH, DELETE } = toNextJsHandler(auth.handler);