跳到主要内容
版本: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 响应会屏蔽敏感字段。
  • 每个凭证都链接到一个开发者标识符记录,该记录可以在不暴露原始凭证值的情况下启用索引查找。

其他资源​