介绍
kong oidc插件是诺基亚开源的,用于实现OpenID Connect依赖方(RP)功能。代码量不多,内部使用了lua-resty-openidc
库执行oidc协议的认证,而lua-resty-openidc
库通过利用lua-resty-session
来维护已认证用户的会话,从而在将会话状态存储在客户端浏览器cookie,或使用服务器端存储机制共享内存之间提供可配置的选择。
原理
oidc插件是oidc协议的RP,可以与外部的oidc认证授权服务器交互,并且使用session来维持会话,在网关层对前端屏蔽oidc协议的复杂度,提供统一的实现,前端无需关系认证授权相关逻辑。流程如下图所示。
总结
这种用法的争议点在于无状态,使用oidc协议及jwt就是为了无状态,现在网关层为了屏蔽认证的复杂度,又通过增加session变成了有状态,虽然可以通过session共享来处理这个问题。
究竟是要各前端自己实现oidc认证还是网关统一处理,就仁者见仁智者见智了。
来源:oschina
链接:https://my.oschina.net/wecanweup/blog/4332648