首页 > 解决方案 > Spring Boot - 如何创建独立的身份验证 MICROSERVICE?

问题描述

我编写了我的第一个后端 Spring Boot 应用程序。

我还创建了一个单独的前端应用程序。

我想创建一个独立的基本身份验证微服务。认证技术目前不相关。它可以使用 JWT、OUTH2、OKTA 等等。

我强调 MICROSERVICE,而不是向应用程序代码添加类。

这是因为我在网上和几本书中可以找到的所有内容都是将此身份验证部分作为嵌入代码添加到整个 Spring Boot 应用程序中。

我想构建一个单独的身份验证微服务,例如我的其他微服务(目前我只有一个 SP,但还会有更多),将能够使用它来对用户进行身份验证。

我希望我解释得对:)

你能给我指点一下正确的实现,或者一些可以帮助我完成这项任务的更新教程吗?


更新:

我找到了一个非常棒且最新的教程:

https://dzone.com/articles/step-by-step-a-simple-spring-boot-microservices-ba

享受!


谢谢!

标签: spring-bootspring-security

解决方案


由于您需要身份验证服务,您可以验证身份验证微服务生成的令牌。

你可以:

  1. 从您的身份验证微服务返回一个令牌;
  2. 在主微服务中创建令牌验证服务

下面的链接展示了如何通过 JWT 实现认证应用程序,就像认证网关一样工作: https ://medium.com/@mool.smreeti/microservices-with-spring-boot-authentication-with-jwt-和-spring-security-6e10155d9db0

或者,您可以添加第 3 方解决方案以链接到 Spring Security。对于这个选项,application.yml 中类似下面的代码应该可以工作:

spring:
  security:
    oauth2:
      client:
        registration:
          sts:
            provider: sts
            client-id: ${STS_CLIENT_ID}
            client-secret: ${STS_SECRET_ID}
            client-authentication-method: post
            authorization-grant-type: client_credentials
        provider:
          sts:
            token-uri: ${STS_URL}

在我看来,这两种方式都是有效的。这取决于您的上下文和范围。


推荐阅读