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

凭证

凭证是开发者在应用程序中创建的身份认证令牌,用于通过网关对 API 请求进行身份认证。凭证是连接开发者应用程序与网关数据面身份认证机制的纽带。

凭证类型

开发者门户支持三种凭证类型,分别对应 API 产品上配置的身份认证类型:

API Key(API 密钥)身份认证

API Key 身份认证凭证包含一个 API Key,开发者通常通过请求头或查询参数将其加入 API 请求。

字段描述
密钥API Key 值。如果创建时未指定,则自动生成。

基本身份认证

基本身份认证凭证提供开发者使用 HTTP 基本身份认证方案在 API 请求中包含的用户名和密码对。

字段描述
用户名用于身份认证的用户名。
密码用于身份认证的密码。

OAuth(DCR)

OAuth 凭证通过动态客户端注册(DCR)向外部身份提供商注册。开发者创建 OAuth 凭证时,门户会通过配置的 DCR 提供商注册客户端,并返回客户端 ID 和客户端密钥。

字段描述
客户端 IDOAuth 2.0 客户端标识符,由身份提供商分配。
客户端密钥OAuth 2.0 客户端密钥,由身份提供商分配。
重定向 URI向身份提供商注册的回调 URL。
客户端密钥过期时间客户端密钥的过期时间戳(0 表示永不过期)。

凭证生命周期

创建

开发者在应用程序中创建凭证。凭证类型必须与应用程序订阅的 API 产品上启用的身份认证类型之一匹配。

  • API Key 身份认证:如果未提供 API Key,则会自动生成。API Key 在存储前会经过 AES 加密。
  • 基本身份认证:开发者提供用户名和密码。密码在存储前已加密。
  • OAuth:门户调用 DCR 提供商注册新客户端。客户端 ID、客户端密钥和注册令牌会加密存储在门户数据库中。

重新生成

开发者可以重新生成凭证的身份认证信息:

  • API Key 身份认证:生成新的 API Key,使原 API Key 失效。
  • 基本身份认证:重新生成密码。
  • OAuth(仅限 HTTP 桥):通过 DCR 提供商轮换客户端密钥。OIDC 类型的 DCR 提供商不支持客户端密钥轮换。

删除

删除凭证会将其从门户数据库中删除。对于 OAuth 凭证,门户还会从身份提供商中删除已注册的客户端。

凭证在运行时如何工作

当启用身份认证的 API 产品发布时,门户 API 会将 portal-auth 插件配置推送到关联的网关服务。此插件会根据门户数据库中存储的凭证验证传入的 API 请求。

身份认证流程如下:

  1. 开发者向网关发送 API 请求,并携带凭证(API Key、基本身份认证请求头或 OAuth 令牌)。
  2. 网关的 portal-auth 插件从请求中提取凭证。
  3. 插件通过门户 API 的缓存开发者查询服务验证凭证。
  4. 如果凭证有效,并且开发者拥有该 API 产品的有效订阅,则请求将转发到上游服务。
  5. 如果凭证无效或开发者没有有效订阅,网关会返回身份认证错误。

安全

  • 所有凭证密钥(API Key、密码、客户端密钥和注册访问令牌)在存储到数据库前均经过 AES 加密。
  • 凭证值仅在创建时完整返回。随后的 API 响应会屏蔽敏感字段。
  • 每个凭证都链接到一个开发者标识符记录,该记录可以在不暴露原始凭证值的情况下启用索引查找。

其他资源