这是一个示例架构。
在浏览器和微服务之间提供授权检查的最佳方法是什么?解决方案需要解决微服务问题" C"没有关联的"会话" /角色。
具体做法是:
答案 0 :(得分:1)
OAUTH2.0是最好的解决方案。
请找到教程列表
https://spring.io/guides/tutorials/spring-boot-oauth2/
https://projects.spring.io/spring-security-oauth/docs/oauth2.html
http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/
答案 1 :(得分:1)
只需要授权检查,而不是身份验证,因为不涉及最终用户,这是B2B案例。 在这种情况下,您需要使用客户端凭据OAuth2 流程。 您可以在http://proficientblog.com/microservices-security/
上找到有关它的更多详细信息答案 2 :(得分:0)
对于来自“C”的请求使用OAuth或JWT怎么样?服务A只需要另一个身份验证提供程序(我假设您已经有一个来自API网关的请求)来验证令牌。然后,可以包含权限或根据令牌中的其他信息提供信息以查找权限。这样就可以保留方法级别的auth注释。
答案 3 :(得分:0)
API网关可以使用httpsessionheaderStrategy在标头中设置x-auth-token。 然后,每个服务都可以使用GenericFilter根据场景设置身份验证上下文。