我正在针对OAuth2服务进行身份验证,该服务为我提供了3个端点:
http://bobsoauth.com/oauth2/authorize
http://bobsoauth.com/oauth2/token
http://bobsoauth.com/oauth2/userdata
此服务不发布JWT。
我需要使用一个Angular客户端应用程序,连接到一个Spring Cloud Gateway,然后连接到多个Spring Boot微服务。
如果没有JWT,我还能在网关和微服务之间使用令牌中继设置吗?
如果没有JWT,您将不得不使用令牌内省来配置资源服务器(在springsecurity-conf中,http.oauth2ResourceServer().opaqueToken()
而不是http.oauth2ResourceServer().jwt()
(。这远不如JWT解码有效,因为每个微服务都必须为其处理的每个请求向授权服务器提交令牌。
此处示例:https://github.com/ch4mpy/spring-addons/tree/master/samples/tutorials/resource-server_with_introspection
端点通常称为introspect
,但我想您必须想办法在您的情况下使用userdata
。
让您的Angular应用程序根据您的授权服务器进行身份验证,并使用网关转发Authorization
标头。
对于Angular,我使用Angular auth-oidc客户端。只需将您在问题中提到的URL放在conf中即可。