JHipster - 网关如何在微服务中进行身份验证?
Posted
技术标签:
【中文标题】JHipster - 网关如何在微服务中进行身份验证?【英文标题】:JHipster - How the gateway authenticate within the microservices? 【发布时间】:2018-05-04 01:39:21 【问题描述】:我正在做一个使用 JHipster 的微服务项目,我使用 Consul 进行服务发现和 JWT 进行身份验证,但这是我的问题:
为了让其他客户端访问我的微服务,他们需要通过 POST 将带有凭据的 JSON 传递到网关进行身份验证,最后获得 de id_token。但是网关如何在服务中进行身份验证?网关做的事情类似于我们在有外部客户端时所做的事情?还是与 de Service Discovery 有关?
我在 application-dev.yml 中找到了这个:
security:
authentication:
jwt:
secret: my-secret-token-to-change-in-production
我的猜测是微服务和网关共享一个公共密钥,但我没有找到这个密钥,只有 yml 上的这一部分。
【问题讨论】:
【参考方案1】:你找到了,网关在生成令牌时使用密钥对令牌进行签名,微服务使用相同的密钥验证签名。网关是一个 Zuul 代理,将身份验证标头传递给代理的微服务。
Consul 中的此属性可通过端口 8500 的本地 Consul 代理对所有这些应用程序使用,请参阅Spring Cloud Consul。
【讨论】:
那么consul提供网关访问微服务的token?我也会在文档中搜索,如果找到,我会写在这里。 不,Consul 提供了签署令牌的密钥,而不是令牌本身。 Consul 提供服务注册和集中配置。令牌由网关在身份验证期间生成。 哦!谢谢!! :)以上是关于JHipster - 网关如何在微服务中进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
如何在微服务和API网关架构中对不同的配置文件进行身份验证和授权