Forward Auth 能巧妙地将认证与授权逻辑转移至专门的外部服务中,网关会将用户的请求转发至认证服务中,并在认证服务响应非 20x 状态时,阻止原有请求并替换结果。通过这样的方式,就可以实现认证未通过时,返回自定义报错或用户重定向至认证页面。
本文将介绍 Apache APISIX 2.12.0 版本中新增插件 forward-auth
的使用方法,为大家简单说明下如何使用这款设计简洁的认证模型。
原理
关于 forward-auth
插件在 Apache APISIX 中的运行原理与流程如上图所示,具体总结为以下几步:
-
第一步:由客户端向 APISIX 发起请求
-
第二步:由 APISIX 向用户配置的认证服务发起请求
-
第三步:认证服务响应(2xx 或异常状态)
-
第四步:APISIX 会根据认证服务响应,决定向上游转发请求或直接****向客户端发送拒绝响应
如何使用
步骤一:设置认证服务
假设有这样一项认证服务,用户向其发送带有 Authorization 请求头的请求。如果这个数据通过验证则返回 200 状态码和一个名为X-User-ID
的响应头;如果没有通过验证则认为认证状态过期,