春季启动安全性使用密钥斗篷会话



我是安全领域的新手,我正在努力了解如何在不过度使用的情况下实现适当的安全性。

以下是我的问题。

  1. 我不想让第三方客户使用我的API,因此我认为OAuth 2.0没有任何重要性。因此,我希望在我的Spring Boot Security中使用keycloft(或Ory Kratos(生成的会话。关于如何做到这一点的任何指导
  2. 我遇到一个申请https://opstra.definedge.com/该安全性是使用密钥斗篷实现的(可以看到URL模式(。但在请求中,在执行任何网络请求时,我在chrome DevTools网络选项卡中看不到任何JWT令牌。我认为他们正在按照我想要的方式实施它。关于如何实施的概述

我不是definedge的架构师,但我很确定他们在Opstra中没有使用Keycapture会话(为此,他们必须在Keycapture servlet中运行Opstra(。看起来他们更像是使用OAuth2来验证Java客户端的用户,并且该客户端启用了自己的会话(opstra.definedge.comsso.definedge.com的JSESSIONID cookie(。这个java客户端很可能使用访问令牌来授权对资源服务器的请求,我们只是无法从浏览器中看到它。

限制允许使用API的客户端与授权方法几乎没有关系:

  • 具有基本授权头,任何具有登录名和密码的客户端都可以访问
  • 使用Bearer授权标头,任何具有有效令牌的客户端都可以访问(您已经预料到了(
  • 甚至JSESSIONID cookie也可以设置为任何来源(我相信(,在这种情况下,来自同一浏览器的任何请求都将被授权,无论网络客户端是什么

限制API客户端更多的是关于CORS配置,其目的仅在于:过滤哪些来源(主机+端口(可以访问哪些资源位置(URL(

Key斗篷中有一个机密客户端的概念,即客户端除了提供客户端id之外,还必须提供密码才能交换访问令牌的授权码,但这不适用于富客户端(在您无法信任的设备上运行的客户端(:Angular、Vue、React、原生移动应用程序等。代码可以通过引擎反转来读取密码。但是可以将您自己的Java客户端配置为";"机密";因此,只允许该客户端获取访问令牌以查询资源服务器(API(。

OAuth2带来的不仅仅是轻松的多客户端场景,JWT和无会话java应用程序大大简化了水平可扩展性和容错性。你应该阅读这篇文章来复习

  • OAuth2(及其值(
  • 资源服务器安全配置(带CORS(

相关内容

  • 没有找到相关文章

最新更新