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

配置开发者门户

部署开发者门户后,在 Provider Portal 中配置门户设置,以控制访问、身份认证和开发者管理。

门户设置

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

公共访问

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

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

门户令牌

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

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

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

内置身份认证

内置身份认证选项控制开发者门户上的电子邮件和密码注册与登录。

设置描述
Enable self-registration启用后,开发者可以直接在开发者门户注册。禁用后,只能通过邀请或外部身份提供商添加开发者。
Registration auto-approval启用后,新开发者账户会立即激活。禁用后,管理员必须在 Provider Portal 中审批每个注册请求。
Login with email启用后,开发者可以使用电子邮件地址登录。

可以完全启用或禁用内置身份认证选项。禁用它会从开发者门户中删除电子邮件/密码登录选项。至少一个登录选项(内置或 SSO)必须保持启用状态。

SSO(外部登录选项)

你可以将外部身份提供商配置为开发者门户的附加登录选项。这些是与内置身份认证分开管理的。有关详细说明,请参阅为开发者门户配置 SSO

SCIM 预配

SCIM(跨域身份管理系统)支持从外部身份提供商自动进行用户同步。启用后,将根据身份提供商的更改在开发者门户中自动创建、更新和停用用户账户。

启用 SCIM:

  1. 进入门户的 Settings 页面。
  2. 启用 SCIM Provisioning
  3. 生成用于配置身份提供商的 SCIM 令牌。
  4. 使用 SCIM 端点 URL 和令牌配置身份提供商(例如 Okta)。

有关完整的 Okta 演练,请参阅使用 Okta 为自定义开发者门户配置 SCIM 预配

SCIM 端点遵循以下格式:

https://<PORTAL_DOMAIN>/api/auth/scim/v2

应用程序配置

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

门户 API 连接

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

数据库

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}

其他资源