jhipster spring boot 自定义身份验证提供程序
Posted
技术标签:
【中文标题】jhipster spring boot 自定义身份验证提供程序【英文标题】:jhipster spring boot custom authentication provider 【发布时间】:2017-11-21 09:24:49 【问题描述】:我想为我的 REST API 设置自定义身份验证机制。这将用于使用 JWT 令牌进行 IOT 设备身份验证,因此我不能使用现有的基于用户的 JHipster 身份验证。 有这方面的例子或指南吗?除了 Spring Boot 的底层机制之外,JHipster 还有什么特定的吗?
架构: 具有独立网关和微服务应用程序的典型 JHipster 架构。微服务应用程序为需要使用 jwt 令牌进行身份验证的其余服务提供服务。网关应用程序为 Web 用户生成令牌,凭据基于用户名和密码。
我想扩展此设置并为我们的物联网设备打开相同的休息服务。这些设备不是网络用户,因此它们没有用户名+密码凭据,因此不会生成 jwt 令牌。我们将在安全网络上注册这些设备并将 jwt 令牌嵌入到固件中。这些 jwt 令牌将基于设备 id、mac id 和密钥。
我还没有尝试任何方法,我正在寻找一个示例代码,我可以在其中扩展微服务应用程序的身份验证代码,以便它还可以对来自设备的请求进行身份验证。使用 Spring Boot 添加自定义身份验证提供程序似乎是要走的路,但我不确定。
【问题讨论】:
谢谢@GaëlMarziou,我已经更新了我的问题。 【参考方案1】:我在一些特定的安卓设备上做过类似的事情,我们的方法是只为设备部署一个网关,而不是尝试在同一个网关上与人类用户混合。所以这意味着每个特定用途都有一个网关。
两个网关发布的 JWT 令牌应该共享相同的密钥,以便服务可以验证它们的签名。然后,您要么保留 JHipster 令牌,只需为人和设备分配不同的角色和/或在令牌标头中添加网关发行者。
根据您的安全要求,您可以通过将“设备 ID + MAC 地址”映射到网关用户 ID 和您的密码作为用户密码来轻松构建此设备网关。
【讨论】:
这似乎是目前最简单的方法。编写自定义身份验证提供程序就像地狱一样,我根本找不到工作示例。另一种选择是使用更复杂的 UAA 和 Oauth2.0。感谢您的提示。以上是关于jhipster spring boot 自定义身份验证提供程序的主要内容,如果未能解决你的问题,请参考以下文章
CORS Origin Spring Boot Jhipster - 飞行前失败
在使用 JHipster 创建的 Spring Boot 应用程序中使用 npm install 时出错
Jhipster 和 Spring Security - 添加身份验证提供程序保持活动的默认 jdbcauthentication 模式