凭证
凭证是用于验证个人或系统身份的数据。它们充当对受保护资源进行身份验证和授权访问的一种方式,证明用户或系统是他们声称的那样。
凭证可以采用各种形式,包括但不限于:
- 用户名和密码:与秘密密码配对的唯一用户名。
- API 密钥或令牌:为应用程序或用户生成的字母数字字符串,用于安全地访问 API。
在 API7 企业版中,凭证与消费者相关联并包含身份验证数据。一个消费者可以关联一个或多个来自指定身份验证插件列表的凭证,包括 key-auth、basic-auth、jwt-auth 和 hmac-auth。凭证与消费者的解耦有助于凭证复用和轮换,并增强安全性。
考虑这样一个场景:API 密钥具有定义的生命周期(例如一个月),配置同一类型的多个凭证允许管理员分配新的 API 密钥,而现有的密钥仍然有效。该方法提供了一个缓冲期,在此期间两个密钥都被接受,使管理员能够使用新密钥更新客户端应用程序,同时避免对活动服务造成任何中断。一旦新密钥投入使用,旧密钥就可以安全地删除,从而减轻与突然更改凭证相关的风险,并减少凭证轮换期间应用程序停机或访问问题的可能性。

关键功能
- 与消费者建立一对多关系。
- 支持多种身份验证方法的密钥管理,包括密钥认证、JWT、HMAC 和基本认证。
- 允许独立管理和更新消费者身份验证详细信息,从而促进更好的安全实践,简化维护并防止对消费者进行意外更改。
- 将包含配置的凭证 ID 的
X-Credential-Identifier标头转发到上游服务,这允许实施额外的业务逻辑。 - 在检查消费者详细信息时,返回的信息不会暴露与消费者关联的凭证,从而减少攻击面。
用例
缓解配置漂移
当直接在消费者上配置身份验证凭证时,每次凭证轮换或重新配置都可能无意中更改或覆盖现有的消费者配置,从而可能导致服务中断。解耦凭证配置后,可以在不触及特定于消费者的设置的情况下更新或轮换凭证,从而减少配置漂移的可能性——配置漂移是指随着时间的推移意外更改累积,导致配置与最初计划的不匹配或冲突的情况。
支持凭证轮换
能够为消费者配置同一类型的多个凭证,可以实现平滑的凭证轮换,这对于维护安全访问同时最大程度地减少中断至关重要。例如 ,在 API 密钥具有定义的生命周期(例如一个月)的情况下,拥有同一类型的多个凭证允许管理员分配新的 API 密钥,而现有的密钥仍然有效。这种受控的重叠期促进了无缝过渡,其中两个密钥暂时保持活动状态,确保依赖应用程序的不间断访问。一旦确认新 API 密钥完全可操作,就可以安全地删除过时的凭证。
增强安全合规性
定期轮换凭证(API7 企业版中的凭证使用可以促进这一过程)是与安全框架和标准保持一致的关键实践。例如,PCI-DSS(支付卡行业数据安全标准)要求处理持卡人数据的系统频繁更新密码和其他凭证,从而降低因过时或泄露的凭证而导致未经授权访问的风险。