凭证
凭证是用于验证个人或系统身份的数据。系统使用凭证完成身份认证并授权访问受保护资源,从而确认用户或系统的身份真实有效。
凭证可以采取多种形式,包括但不限于:
- 用户名和密码:唯一用户名与密码的组合。
- API Key(API 密钥)或令牌:为应用程序或用户安全地访问 API 生成的字母数字字符串。
在 API7 网关中,凭证与消费者关联并保存身份认证数据。消费者可以关联一个或多个凭证,并通过 key-auth、basic-auth、jwt-auth 和 hmac-auth 等插件完成身份认证。将凭证与消费者解耦,有助于复用和轮换凭证并增强安全性。
例如,某个 API Key 的有效期为一个月。通过配置多个同类型凭证,管理员可以在旧密钥仍然有效时分配新密钥。在新旧密钥同时有效的过渡期内,管理员可以更新客户端应用,使其改用新密钥,而不会中断在线服务。确认新密钥生效后,即可安全删除旧密钥,从而降低凭证突然变更导致服务停机或访问异常的风险。

主要特性
- 与消费者具有一对多关系。
- 支持密钥认证、JWT、HMAC 和基本认证等多种身份认证方式的凭证管理。
- 支持独立管理和更新消费者的身份认证信息,便于落实安全实践、简化维护,并避免意外修改消费者配置。
- 将包含所用凭证 ID 的
X-Credential-Identifier请求头转发到上游服务,以便实现额外的业务逻辑。 - 查询消费者详情时不返回其关联凭证,减少攻击面。
用例
缓解配置漂移
如果直接在消费者上配置身份认证凭证,每次轮换或重新配置凭证都可能意外修改或覆盖现有消费者配置,进而造成服务中断。将凭证配置与消费者解耦后,可以更新或轮换凭证而无需改动消费者设置,从而降低配置漂移的风险,避免意外变更不断累积并偏离预期配置。
支持凭证轮换
为消费者配置多个同类型凭证,可以在保障安全访问的同时平滑轮换凭证,尽量减少服务中断。例如,如果 API Key 的有效期为一个月,管理员可以在旧密钥仍然有效时分配新密钥。新旧密钥在受控的过渡期内同时生效,确保相关应用能够持续访问;确认新密钥正常工作后,即可安全删除旧凭证。