openid-connect
令牌自省通过针对 Oauth 2 授权服务器验证令牌来帮助验证请求。 前提条件是,您应该在身份服务器中创建受信任的客户端,并生成用于自省的有效令牌(JWT)。 下图显示了通过网关进行令牌自省的示例(成功)流程。
以下是 curl 命令,用于将插件启用到外部服务。 通过自省请求标头中提供的令牌,此路由将保护 服务)。
当 Oauth 2 授权服务器返回结果里面除了 token 之外还有过期时间, token 将在 APISIX 中缓存直至过期。 具体细节参见:
- lua-resty-openidc 的文档和代码。
公钥自省
您还可以提供 JWT 令牌的公钥来验证令牌。 如果您提供了公共密钥和令牌自省端点,则将执行公共密钥工作流,而不是通过身份服务器进行验证。如果要减少额外的网络呼叫并加快过程,可以使用此方法。
以下配置显示了如何向路由添加公钥自省。
通过 OIDC 依赖方认证流程进行身份验证
以下命令将此操作模式添加到路由:
在该例子中,插件可以强制在各自配置的请求头中设置访问令牌、ID 令牌和 UserInfo 对象。
如果 APISIX 无法解析/连接到身份提供者,请检查/修改 DNS 设置(conf / config.yaml
)。