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网关架构中对不同的配置文件进行身份验证和授权

微服务上的 Jhipster + PertmitAll

JHipster - 如何在 Eclipse 中仅调试微服务架构中的一个网关(或微服务)?

JHipster 微服务和网关 - 网关可扩展性

jhipster - 如何掌握数据管理和微服务通信?

如何在微服务架构中进行身份验证和授权