通过Ambassador保护REST应用时服务调用应选API密钥还是服务账号认证
Ambassador 同端点多身份认证方案选型
两种实现方式都支持,你可以根据自身场景的改造成本、后续运维需求选择:
- 方案1:新增独立API密钥认证规则
Ambassador 原生支持通过Filter+FilterPolicy配置多优先级的认证规则,你可以单独新增一套API密钥校验过滤器,给该服务的请求(可通过来源IP、特定请求标识匹配)配置高于全局用户名密码校验的优先级,匹配到的服务请求只需携带合法API密钥即可通过认证,无需传递普通用户的用户名密码。
该方案的优势是服务身份和普通用户身份完全隔离,API密钥的生成、轮换、权限管控完全独立,不会和现有用户体系耦合,适合后续需要对该服务做单独调用量限制、审计的场景。 - 方案2:创建专属服务账号复用现有认证逻辑
无需调整Ambassador现有过滤器配置,直接在你的用户体系中创建独立服务账号,分配对应的专属角色权限即可。该服务调用时和普通用户一样在请求头中携带该账号的用户名密码即可通过校验。
该方案的优势是改造成本极低,完全复用现有认证逻辑,不需要修改网关侧的任何配置,适合快速上线、没有额外隔离需求的场景。
注意:如果选择两种认证方式共存,必须在FilterPolicy中明确规则优先级,避免服务请求被低优先级的全局用户名密码规则拦截。
内容的提问来源于stack exchange,提问作者Akka Jaworek
相关产品推荐
相关产品推荐

