现在项目代码耦合在一起,现在打算进行重构,目的是用不同语言来对功能模块进行重构。
现在是 nginx+lua 作为一个简单的网关,进行消息转发。
现在比较困惑的就是,认证与鉴权是直接在网关层做,
还是说在后端起一个鉴权服务来进行处理。
这两者之间比较困惑, 所以想知道下主流的技术方案。
1
moremoney 2022-08-25 10:11:05 +08:00
我觉得在网关层比较好,后面一马平川,像有些接口服务之间调用比较多的话,频繁的鉴权也影响效率
|
2
helone 2022-08-25 10:12:07 +08:00
网关层
|
3
zzzzz001 2022-08-25 10:13:08 +08:00
我的理解,网关 调用 鉴权服务。
|
4
iamtsm 2022-08-25 10:17:52 +08:00
楼主用 nginx+lua 这块,像网关鉴权的话,市面上也比较多的一些优秀开源框架,kong, apisix, orange 都有类似鉴权插件的。或者自己写一个也行。
|
5
coderxy 2022-08-25 10:27:59 +08:00
lua 里面去调用鉴权服务进行鉴权。
|
6
awanganddong OP 明白大家的意思了,自己用 nginx+lua 写的话,比较可控。
|
7
wetalk 2022-08-25 10:40:24 +08:00
当然 api 层,否则 req 进入到集群内部,不可能每个服务都做一次鉴权
|
8
morty0 2022-08-25 10:45:56 +08:00 2
网关做通用鉴权, 鉴权服务做特殊业务的鉴权
|
10
qfdk 2022-08-25 13:33:41 +08:00 via iPhone
来你可以来抄作业了…… 鉴权在 gateway 做, 每个请求都知道是否鉴权了. 就算是前端的请求来了也知道是不是登录了. 虽然可以向 openid 获取 /user 来获取用户. 这样会先一步知道有没有登陆. 每个用户鉴权成功会有 session 在 gateway 产生,具体就是会有个 cookie 存在客户端,每个请求都带有他. 鉴权是单独做的 openid 服务器. gateway 也管着 token 续命.
|
11
adoal 2022-08-25 13:38:47 +08:00
认证在网关,鉴权看情况
|
12
Aliberter 2022-08-25 13:42:13 +08:00
最近刚做了这块,单独起的 auth 服务,然后在网关全局过滤器里通过 feign 调用 auth 服务进行鉴权
|
13
runningman 2022-08-25 13:54:04 +08:00
nginx + lua 复杂吗
|
14
xuanbg 2022-08-25 15:57:47 +08:00
网关!合适做身份认证和鉴权的只有网关。
|
15
mmdsun 2022-08-25 18:55:37 +08:00 via iPhone
|
16
saberscarlet 2022-08-26 00:38:49 +08:00
网关做认证,鉴权,调用单独的 auth 服务,接口权限根据业务判断了,注意 token 的传递
|