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

凭证

凭证是用于验证个人或系统身份的数据。它们充当对受保护资源进行身份验证和授权访问的一种方式,证明用户或系统就是他们所声称的身份。

凭证可以采取多种形式,包括但不限于:

  • 用户名和密码:唯一的用户名与秘密密码配对。
  • API 密钥或令牌:为应用程序或用户安全地访问 API 生成的字母数字字符串。

在 API7 网关中,凭证与消费者关联并包含认证数据。消费者可以与指定认证列表插件中的一个或多个凭证相关联,包括 key-authbasic-authjwt-authhmac-auth。凭证与消费者的解耦有利于凭证的重用和轮换以及增强的安全性。

考虑这样一种情况:API 密钥具有定义的使用寿命(例如一个月),配置多个相同类型的凭证允许管理员在现有密钥仍然有效时分配新的 API 密钥。该方法提供了一个缓冲期,在此期间两个密钥都被接受,使管理员能够使用新密钥更新客户端应用程序,同时避免对活动服务造成任何干扰。一旦使用新密钥,就可以安全地删除旧密钥,从而减轻与凭证突然更改相关的风险,并减少凭证轮换期间出现应用程序停机或访问问题的可能性。

API 密钥轮换的时间线:旧密钥和新密钥都附加到消费者并在重叠窗口期间被接受,客户端应用程序更新为在该窗口期间使用新密钥,然后删除旧密钥

主要特点

  • 与消费者具有一对多关系。
  • 支持多种认证方式的密钥管理,包括密钥认证、JWT、HMAC、基本认证。
  • 允许对消费者身份验证详细信息进行独立管理和更新,从而促进更好的安全实践、简化维护并防止对消费者进行意外更改。
  • 将包含配置的凭据 ID 的 X-Credential-Identifier 标头转发到上游服务,这允许实现额外的业务逻辑。
  • 检查消费者详细信息时,返回的信息不会暴露消费者关联的凭据,减少了攻击面。

用例

缓解配置漂移

当直接在消费者上配置身份验证凭据时,每次凭证轮换或重新配置都可能会无意中更改或覆盖现有的消费者配置,从而可能导致服务中断。当解耦凭证配置时,可以更新或旋转凭据,而无需触及消费者特定的设置,从而降低配置漂移的可能性,即意外更改随着时间的推移而累积,从而导致与最初计划的配置不匹配或冲突的情况。

支持凭证旋转

为消费者配置多个相同类型的消费者的能力可以实现凭据的平滑轮换,这对于维护安全访问同时最大限度地减少中断至关重要。例如,如果 API 密钥具有已定义的使用寿命(例如一个月),则拥有多个相同类型的凭证允许管理员分配新的 API 密钥,同时现有密钥仍然有效。这种受控的重叠周期有利于无缝过渡,其中两个键暂时保持活动状态,确保相关应用程序的不间断访问。一旦确认新的 API 密钥完全可操作,就可以安全地删除过时的凭证。

增强安全合规性

定期轮换凭证(可以通过在 API7 网关中使用凭证来促进这一过程)是与安全框架和标准保持一致的关键实践。例如,PCI-DSS(支付卡行业数据安全标准)要求经常更新处理持卡人数据的系统的密码和其他凭据,从而降低由于凭证过时或受损而导致未经授权访问的风险。