jhipster spring 启动自定义身份验证提供程序

jhipster spring boot custom authentication provider

我想为我的 REST API 设置自定义身份验证机制。这将用于使用 JWT 令牌进行物联网设备身份验证,因此我无法使用现有的基于用户的 JHipster 身份验证。 有这方面的示例或指南吗?除了 Spring Boot 的底层机制之外,还有什么特定于 JHipster 的吗?

架构: 具有独立网关和微服务应用程序的典型 JHipster 架构。微服务应用程序提供需要使用 jwt 令牌进行身份验证的其余服务。网关应用程序为 Web 用户生成令牌,凭据基于用户名和密码。

我想扩展此设置并为我们的物联网设备打开相同的休息服务。这些设备不是网络用户,因此他们没有用户名+密码凭证,因此没有生成 jwt 令牌。我们将在安全网络上注册这些设备并将 jwt 令牌嵌入到固件中。这些 jwt 令牌将基于设备 ID、mac ID 和密钥。

我还没有尝试任何方法,我正在寻找一个示例代码,我可以在其中扩展微服务应用程序上的身份验证代码,以便它也可以验证来自设备的请求。使用 spring 引导添加自定义身份验证提供程序似乎是可行的方法,但我不确定。

我对一些特定的 android 设备做过类似的事情,我们的方法是只为设备部署一个网关,而不是尝试在同一个网关上与人类用户混合使用。所以这意味着每个特定用途一个网关。

2 个网关颁发的 JWT 令牌应共享相同的密钥,以便服务可以验证其签名。然后你要么保持 JHipster 令牌的原样,要么为人类和设备分配不同的角色 and/or 你还在令牌中添加网关发行者 header.

根据您的安全要求,您可以通过将 "device id + mac address" 映射到网关用户 ID 并将您的秘密作为用户密码来轻松构建此设备网关。