我正在做一个微服务项目,使用JHipster,我正在使用Consul for Service Discovery和JWT进行身份验证,但这是我的问题:
对于其他客户端访问我的微服务,他们需要通过将带有凭据的JSON通过POST传递给网关进行身份验证,最后获得de id_token。但网关如何在服务中进行身份验证?网关做了类似于我们在外部客户端时所做的事情?或者与服务发现有关?
我在application-dev.yml中找到了这个:
security:
authentication:
jwt:
secret: my-secret-token-to-change-in-production
我的猜测是,微服务和网关共享一个共同的密钥,但我没有找到这个密钥,只有yml上的这一部分。
答案 0 :(得分:1)
您发现它,网关使用密钥在生成令牌时对令牌进行签名,微服务使用相同的密钥来验证签名。网关是一个Zuul代理,它将身份验证头传递给代理的微服务。
Consul中的此属性可通过8500端口的本地Consul代理获取所有这些应用程序,请参阅Spring Cloud Consul。