如果我的网关已经安全,为什么我还必须保护我的资源服务?
Why do i have to secure my Resource-Service if my Gateway is already secured?
我正在阅读有关如何使用令牌中继模式保护我的 Spring 云网关的文章。
https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway
见https://static.spring.io/blog/bwilcock/20190801/demo.png
用户请求资源后,网关将其重定向到身份提供者的登录页面以进行身份验证。
成功后,身份提供者会将您重定向回原始请求的资源(网关),包括身份提供者提供的访问令牌。
所以现在网关是安全的。为什么资源服务器必须针对身份提供者再次验证访问令牌?网关不是刚刚验证了吗?
或者不是,网关就在那里将访问令牌中继到资源服务器,以便他可以验证它?
基本上从不信任 JWT。
Finally, the Resource Server needs to know where it can find the public keys to validate the authenticity of the access token which it has been given. The UAA provides an endpoint which both the Resource Server and the Gateway rely upon at runtime to do this check. The endpoint is configured in the application.yml for each application
资源服务器永远不能 100% 确定访问令牌是由身份提供者创建的,甚至不能来自网关。因此,至少,您应该确保访问令牌是由身份提供者使用 public 密钥签署的,由配置的端点公开。
我正在阅读有关如何使用令牌中继模式保护我的 Spring 云网关的文章。
https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway
见https://static.spring.io/blog/bwilcock/20190801/demo.png
用户请求资源后,网关将其重定向到身份提供者的登录页面以进行身份验证。 成功后,身份提供者会将您重定向回原始请求的资源(网关),包括身份提供者提供的访问令牌。
所以现在网关是安全的。为什么资源服务器必须针对身份提供者再次验证访问令牌?网关不是刚刚验证了吗? 或者不是,网关就在那里将访问令牌中继到资源服务器,以便他可以验证它?
基本上从不信任 JWT。
Finally, the Resource Server needs to know where it can find the public keys to validate the authenticity of the access token which it has been given. The UAA provides an endpoint which both the Resource Server and the Gateway rely upon at runtime to do this check. The endpoint is configured in the application.yml for each application
资源服务器永远不能 100% 确定访问令牌是由身份提供者创建的,甚至不能来自网关。因此,至少,您应该确保访问令牌是由身份提供者使用 public 密钥签署的,由配置的端点公开。