当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot2上实现基于筛选器的JWT身份验证vs OAuth2 JWT身份验证

林星华
2023-03-14

注意:我的问题与Spring-Boot REST API+web应用程序的安全性有关。

共有1个答案

秦凯旋
2023-03-14

我找到了一个关于同一问题的讨论,我摘录了以下要点。

从技术的角度来看,我仍然不清楚哪种实现、何时、何地实现,但这有助于我做出决定。

>

  • 当我只需要JWT身份验证时,我个人对引入OAuth犹豫不决。这感觉很混乱,老实说,我不想增加使用@enableResourceServer等的复杂性,也许这只是几行配置,但如果感觉有点过头了。
  • 有人能告诉我为什么用JWT令牌设置一个OAuth2提供程序如此困难吗?如果您想要JWT令牌,那么所有的代码都已经在这里了。为什么仅仅使用它就这么难呢?

    @Override
            protected void configure(HttpSecurity http) throws Exception {
        http
            .jwt()
                .loginUrl(new AntPathRequestMatcher("/api/login", "POST"))
                .secret("my-super-duper-secret")
                .claimsProvider(new MyClaimsProvider)
    

    这个问题中描述的用例不是在概念上不同于OAuth2的用例吗?这里我们有一个密码作为输入,JWT令牌作为输出,然后使用JWT令牌访问资源。OAuth2规范的JWT配置文件指定了一种不同的情况,其中JWT令牌是令牌服务的输入,访问令牌是输出,然后访问令牌用于访问资源。

    只有简单的基于JWT令牌的身份验证,而不需要OAuth,这对于小型项目来说有时会很复杂。

    https://github.com/spring-projects/spring-security-oauth/issues/368

  •  类似资料:
    • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

    • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie

    • 我正在编写一个程序,它使用了带有Spring Security的JWT身份验证。我已经实现了自定义授权和身份验证过滤器。另外,我需要持久化我的令牌,它是由这些过滤器形成的。为此,我创建了令牌DAO服务,它自动连接到过滤器,并用注释标记我的过滤器以自动连接该服务。但我无法正确自动执行身份验证管理器。 我尝试在安全配置类中公开身份验证管理器bean,但没有结果。 这个错误是我在尝试构建项目时遇到的。

    • 我读了一些关于“JWT vs Cookie”的帖子,但它们只会让我更加困惑…… > 我想澄清一下,当人们谈论“基于令牌的身份验证与cookie”时,这里的cookie仅指会话cookie?我的理解是,cookie就像一个介质,它可以用来实现基于令牌的身份验证(在客户端存储可以识别登录用户的东西)或者基于会话的身份验证(在客户端存储与服务器端会话信息匹配的常量) 为什么我们需要JSON web令牌?

    • 所以我正忙着为twitter开发一个应用程序,我希望人们使用PIN进行身份验证。(https://dev.twitter.com/oauth/pin-based). 要向人们显示PIN码,我需要使用以下命令:https://dev.twitter.com/oauth/reference/get/oauth/authorize 那里的例子说:https://api.twitter.com/oauth

    • 我一直在读关于智威汤逊的文章。 但从我读到的内容来看,它不是一种身份验证机制,而更像是身份验证机制中的一个关键组件。 我目前已经实现了一个可以工作的解决方案,但这只是为了试用JWT并看看它是如何工作的。但我现在所追求的是一个人应该如何利用它。根据我的经验,它基本上只是一个加密机制,给你一个唯一的加密密钥。您还可以将信息放入此令牌中。 我希望在ASP.NET web API2上实现它,以供移动应用程