是否可以使用2服务器和kubernetes api网关入口。
在打电话之前,我已经和zuul一起使用它来验证用户的身份。我能对入口做类似的事吗?
编辑1:
为了更清楚地解释,我想要达到的目标
我正在使用spring云提供的基于令牌的oAuth2实现。
这样,我们就可以在没有有效令牌的情况下阻止任何下游交通。
我们可以在入口中使用运行在集群中的auth服务器进行令牌验证吗?
发布于 2019-09-20 08:04:43
我没有使用Spring 2,但是由于OAuth是一个标准,我相信如果您使用Nginx作为入口控制器,可以设置它,您可以在入口上指定和外部OAuth (因为Oauth通常有相同的流):
...
metadata:
name: application
annotations:
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
...您可以通过一个使用GitHub作为OAuth提供程序的示例找到更多信息OAuth。
发布于 2019-11-08 10:08:43
目前有三种不同的nginx入口控制器(请看这里),它们的功能不同。我相信,这些入口控制器本身都不能执行oauth令牌自省。但是,可以使用auth_request模块将请求路由到授权服务器的内省接口。
对于您的情况,您可以使用入口控制器中的auth注释(看见)将请求定向到spring oauth2服务器(看见)的内省接口。默认情况下,当使用@EnableAuthorizationServer时,内省接口在/oaut/check_token下可用。如果内省接口返回2XX,入口将转发请求。此功能基于auth_request模块,如果允许访问,则期望来自外部服务的2xx响应代码,如果拒绝则期望有401或403。
如果您使用JWT,并且只希望通过检查签名来验证请求,那么在某些情况下,这实际上可以由入口本身完成。据我所知,只有nginx +入口控制器(付费)才能验证JWT。但也有一款基于nginx的孔进控制器,你可以用它来装备普金斯(请看这里)。例如,通过oauth2集成和JWT验证进行了推广。
你发现的比我多吗?
https://stackoverflow.com/questions/58023276
复制相似问题