跳到主要内容
版本:3.9.x

配置开发者门户

部署开发者门户后,使用 Provider Portal 配置公共访问和门户 Token 等受支持的设置。此版本已发布的 Provider Portal 不提供身份认证或 SCIM 控制;电子邮件密码定制和 SCIM 都需要基于源码定制的前端。

门户设置​

门户设置在 Provider Portal 中每个门户的 Settings 页面下进行管理,并分为以下部分。

公共访问​

Public Access 开关控制未经过身份认证的用户能否访问开发者门户:

  • Enabled:未经过身份认证的访问者可以浏览 API Hub 并查看公开 API 产品。
  • Disabled:所有访问者必须先完成身份认证,才能访问门户内容。

门户 Token​

门户 Token 用于开发者门户应用程序向门户 API 进行身份认证。每个 Token 都以 a7prt 为前缀,并且可以配置过期日期。

操作描述
Generate创建一个带有名称和可选过期日期的新 Token。Token 值仅在创建时显示。
Rename更新 Token 的显示名称。
Regenerate生成新 Token 值并使原 Token 值失效。使用新 Token 更新开发者门户的 config.yaml,然后重启应用程序。
Delete删除 Token。如果开发者门户正在使用该 Token,它将失去与门户 API 的连接。
警告

重新生成或删除 Token 后,请更新开发者门户主机上的 config.yaml 并重启应用程序。没有有效 Token 时,门户将无法正常运行。

内置身份认证状态​

已发布的 Provider Portal 不提供自助注册、注册审批、电子邮件登录,以及启用或禁用内置身份认证的控制项。控制台源码仍保留通过 /api/portal/login_options 读取和写入这些设置的代码,但已发布的控制面没有注册该路由。不要依赖此版本中不可用的 Provider Portal 流程。

警告

不要尝试通过 Provider Portal 禁用或替换当前可用的电子邮件密码登录方式。请联系 API7 支持,确认所安装补丁版本中该路由不一致问题的状态。

基于源码定制的前端可以通过 config.yaml 中的 auth.emailAndPassword 配置电子邮件密码认证;参阅定制开发者门户。依赖该方式开放开发者访问之前,请在定制部署中测试注册和登录。

SSO(外部登录选项)​

外部身份提供商原本用于为开发者门户提供额外的登录选项,但已发布的控制台与控制面目前为该配置暴露了相互冲突的 API 契约。尝试配置外部身份提供商前,请先参阅开发者门户 SSO 状态。

SCIM 预配​

SCIM(跨域身份管理系统)可以将外部身份提供商中的身份预配到自定义开发者门户。已发布的前端未注册 SCIM 插件,因此更改 Provider Portal 设置不会启用该端点。

如需基于 Developer Portal Boilerplate v0.10.0 自定义实现,请参阅使用 Okta 为自定义开发者门户配置 SCIM 预配。该流程会添加服务端插件、更新身份认证路由,并迁移前端身份认证数据库。SCIM 不提供交互式登录或账户关联,预配身份也不会自动获得门户组织成员资格或 API 产品访问权限。请在自定义应用中分别集成并测试这些身份认证和授权路径。

应用程序配置​

以下设置是在开发者门户的 config.yaml 文件中配置的,需要重启才能生效。

门户 API 连接​

config.yaml
portal:
url: https://<CONTROL_PLANE_HOST>:4321 # 门户 API 端点
token: a7prt-xxxxxxxxxxxx # 从 Provider Portal 获取的门户 Token

数据库​

config.yaml
db:
url: "postgres://user:password@host:5432/dbname"

开发者门户使用 PostgreSQL 兼容的数据库来存储用户会话、身份认证数据和组织信息。

身份认证密钥​

config.yaml
auth:
secret: "<base64-encoded-secret>"

此密钥用于签署身份认证会话。使用以下命令生成密钥:

openssl rand -base64 32

应用程序 URL​

config.yaml
app:
name: "My Developer Portal" # 显示在浏览器标题和页眉中
desc: "API documentation portal" # 用作 SEO 元描述
baseURL: "https://portal.example.com"
trustedOrigins:
- "https://portal.example.com"

环境变量替换​

配置值支持环境变量替换:

语法行为
${VAR}必填。如果未设置变量,配置将失败。
${VAR:default}可选。如果未设置变量,则使用默认值。

示例:

config.yaml
portal:
url: ${PORTAL_API_URL}
token: ${PORTAL_TOKEN}
auth:
secret: ${AUTH_SECRET}

其他资源​