在本文中,我将向您展示如何使用Okta和Spring Boot通过两个客户端应用程序和一个资源服务器来实现单点登录。...我还将讨论如何使用访问策略来强制执行身份验证和授权策略,以及如何基于应用程序范围来限制对资源服务器的访问。在进入代码之前,您需要适当的用户身份验证配置。...创建授权服务器Okta的最后一步是创建和配置授权服务器。这使您可以配置自定义声明并设置自定义访问策略。这确定Okta是否在请求令牌时发出令牌,该令牌控制用户访问客户端应用程序和资源服务器的能力。...它确保通过对POST请求的响应来传递所有敏感信息(如令牌)。接下来,您将为第二个应用程序添加访问策略。此应用程序将仅允许第二个用户Tanya Tester对其进行访问。...第一个客户端应用程序对任何经过身份验证的用户(通过Okta的单点登录进行身份验证的任何用户)开放。第二个应用程序仅限于用户Tanya Tester。
如果您想深入挖掘,请查看JWT规范或深入了解有关在Spring Boot应用程序中使用JWT进行令牌身份验证的更长篇文章。 什么是JWT?...它是构建基于原始类型(数字,字符串等)的数据的紧凑方式。你可能已经非常熟悉JSON了。它就像没有所有括号的XML。 令牌可用于在各方之间发送任意状态。通常这里“聚会”表示客户端Web应用程序和服务器。...因为JWT在客户端应用程序和服务器之间来回传递,这意味着状态数据不必存储在某个数据库中(并随后在每个请求中检索);因此,它可以很好地扩展。...标题包含有关如何编码JWT的信息。身体是令牌的肉(声称存在的地方)。签名提供安全性。 关于如何编码令牌以及如何将信息存储在正文中,我们将不会详细介绍这些细节。如果需要,请查看前面提到的教程。...此外,以下是来自Okta博客的更多链接,以便您继续: Java应用程序的简单令牌认证 开始使用Spring Boot,OAuth 2.0和Okta 10种保护Spring Boot应用程序的绝佳方法 如果您的
因为JWT只是URL安全字符串,所以它们很容易通过URL参数等传递。...客户端(通常是浏览器或移动客户端)将访问某种登录页面 客户端将其凭据发送到服务器端应用程序 服务器端应用程序将验证用户的凭据(通常是电子邮件地址和密码),然后生成包含用户信息的JWT。...与正在使用的应用程序相关的任何其他数据 服务器端应用程序将此令牌返回给客户端 然后,客户端将存储此令牌,以便将来可以用它来标识自己。...,它将解析标记并使用“密钥”验证它 最后,如果令牌有效并且循环将完成,则服务器端应用程序将处理请求 简而言之:JWT用于识别客户端。...在Web或移动应用程序的上下文中,强制您的用户立即重置其密码,最好通过某种多因素身份验证流程,如Okta提供的那样。
今天,我将向您展示如何在Okta中使用OAuth 2.0登录支持。...我还将向您展示如何通过OpenID Connect(OIDC)检索用户的信息。 您知道Okta提供免费的开发人员帐户 ,每月最多有7,000个活跃用户,对吗?.../mvnw spring-boot:run将提示您登录。 Spring Security 4.x通过基本身份验证而不是登录表单提示您,因此这与Spring Security 5有所不同。...添加身份验证 在上一教程中 ,我向您展示了如何使用Spring Security OAuth为您的应用程序提供SSO。...给应用程序起一个您将记住的名称,将http://localhost:8080指定为基本URI,并将http://localhost:8080/login/oauth2/code/okta为登录重定向URI
服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略传送到浏览器。...如果使用OIDC进行身份验证,则无需担心如何存储用户、密码或对用户进行身份验证。相反,你可以使用身份提供商(IdP)为你执行此操作,你的IdP甚至可能提供多因素身份验证(MFA)等安全附加组件。...你可以使用像Keycloak这样的开源系统来设置自己的OIDC服务器。如果你不想在生产中维护自己的服务器,可以使用Okta的Developer API。 7.管理密码?使用密码哈希!...8.安全地存储秘密 应谨慎处理敏感信息,如密码,访问令牌等,你不能以纯文本形式传递,或者如果将它们保存在本地存储中。...在Okta,我们所有的生产代码和官方开源项目都需要通过我们的专家安全团队进行分析,你的公司可能没有安全专家,但如果你正在处理敏感数据,也许你应该这样做!
如果没有安全的外部身份验证和授权,您必须相信每个应用程序和每个开发人员不仅会考虑您的最大利益和隐私,而且知道如何保护您的身份并愿意跟上安全最佳实践. 这是一个相当高的要求,对吧?...OP 是一个OAuth 2.0服务器,能够对最终用户进行身份验证,并向依赖方提供有关身份验证结果和最终用户的信息。依赖方是一个 OAuth 2.0 应用程序,它“依赖”OP 来处理身份验证请求。...考虑因素包括应用程序的类型(如基于 Web 或本机移动应用程序)、您希望如何验证令牌(在应用程序中或在后端)以及您希望如何访问其他身份信息(进行另一个 API 调用或拥有它直接编码成令牌)。...然后可以将这些令牌返回给最终用户应用程序,例如浏览器,而浏览器不必知道client secret. 此流程允许通过使用refresh tokens....或者,他们的订阅到期。或者,他们被解雇了。在任何时候,管理员都可以撤销刷新令牌。然后,上面的第三步将失败,用户将被迫(尝试)通过身份验证建立一个新会话。
服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略与浏览器通信。Spring Security在缺省情况下发送此头,以避免在开始时不必要的HTTP跳转。 2....下图显示了OIDC如何进行身份验证。 ? 如果使用OIDC进行身份验证,就不必担心存储用户、密码或身份验证用户。相反,您将使用标识提供程序(IdP)为您完成这项工作。...您可以使用像Keycloak这样的开源系统来设置自己的OIDC服务器。如果您不希望在生产中维护自己的服务器,可以使用Okta的开发人员api。...存储机密安全 密码、访问令牌等敏感信息应谨慎处理。您不能将它们放在周围,不能以纯文本形式传递它们,或者如果将它们保存在本地存储中,则不能进行预测。...Vault使用被分配给策略的令牌,这些策略可以作用于特定的用户、服务或应用程序。还可以与常见的身份验证机制(如LDAP)集成以获得令牌。
那里有几种不同的横向移动技术,我将尝试从高层次的概述中介绍大的以及它们如何工作,但在介绍这些方法之前,让我们澄清一些术语。 命名管道:一种进程通过 SMB (TCP 445) 相互通信的方式。...当用户登录时,系统通过将其与存储在安全数据库中的信息进行比较来验证用户的密码。当用户的凭据通过身份验证时,系统会生成访问令牌。代表此用户执行的每个进程都有此访问令牌的副本。...使用 WebDAV 将 XML 文件托管在不需要身份验证的 SMB 共享上(例如,使用Impacket 的 SMBServer.py,但很可能需要攻击者将攻击机器连接到网络上) 尝试其他类似的“ExecuteShellCommand...对于 WebDAV,SSL 也是一个选项。唯一需要注意的是 WebDAV 不能在服务器上运行,因为默认情况下服务器操作系统上不存在该服务。...\build.xml","7") 这通过不需要任何身份验证来访问 WebDAV 服务器(在本例中也是 C2 服务器)解决了双跳问题。
服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略传送到浏览器。Spring Security默认发送此标头,以避免在开始时出现不必要的HTTP跃点。...如果使用OIDC进行身份验证,则无需担心如何存储用户、密码或对用户进行身份验证。相反,你可以使用身份提供商(IdP)为你执行此操作,你的IdP甚至可能提供多因素身份验证(MFA)等安全附加组件。...你可以使用像Keycloak这样的开源系统来设置自己的OIDC服务器。如果你不想在生产中维护自己的服务器,可以使用Okta的Developer API。 7.管理密码?使用密码哈希!...8.安全地存储秘密 应谨慎处理敏感信息,如密码,访问令牌等,你不能以纯文本形式传递,或者如果将它们保存在本地存储中。...在Okta,我们所有的生产代码和官方开源项目都需要通过我们的专家安全团队进行分析,你的公司可能没有安全专家,但如果你正在处理敏感数据,也许你应该这样做!
令牌中的信息包括与进程或线程关联的用户帐户的标识和特权。当用户登录时,系统通过将用户密码与安全数据库中存储的信息进行比较来验证用户密码。验证用户的凭证后,系统将生成访问令牌。...由于凭据没有发送到远程主机,因此远程主机无法向有效负载托管服务器进行身份验证。在Cobalt Strike中,使用wmic时通常会遇到这种情况,解决方法是为该用户创建令牌,因此可以从该主机传递凭据。...使用WebDAV 将XML文件托管在不需要身份验证的SMB共享上(例如,使用Impacket的SMBServer.py,但很可能要求攻击者在网络上拥有攻击机器) 尝试其他类似的“ ExecuteShellCommand...使用WebDAV,SSL也是一个选择。唯一需要注意的是,WebDAV在服务器上不起作用,因为默认情况下该服务在服务器操作系统上不存在。...\build.xml","7") 通过不需要任何身份验证即可访问WebDAV服务器(在本例中也是C2服务器),从而解决了双跳问题。
服务器使用名为Strict-Transport-Security的响应头字段将HSTS策略传送到浏览器。Spring Security默认发送此标头,以避免在开始时出现不必要的HTTP跃点。 2....如果使用OIDC进行身份验证,则无需担心如何存储用户、密码或对用户进行身份验证。相反,你可以使用身份提供商(IdP)为你执行此操作,你的IdP甚至可能提供多因素身份验证(MFA)等安全附加组件。...你可以使用像Keycloak这样的开源系统来设置自己的OIDC服务器。如果你不想在生产中维护自己的服务器,可以使用Okta的Developer API。 7....安全地存储秘密 应谨慎处理敏感信息,如密码,访问令牌等,你不能以纯文本形式传递,或者如果将它们保存在本地存储中。...在Okta,我们所有的生产代码和官方开源项目都需要通过我们的专家安全团队进行分析,你的公司可能没有安全专家,但如果你正在处理敏感数据,也许你应该这样做! 给大家推荐一个程序扣群:854818273。
我们来看看,它是如何做到的。...尽管Snowflake或Redshift这样的现代数据库的确可以通过Okta或IAM支持原生SSO,但大多数业务用户使用BI工具(如Looker、Tableau、Thoughtspot等)通过单个服务帐户来访问数据...应用程序可以在微服务之间传递此身份验证令牌,以验证用户的身份并做出授权决策。但是,一旦微服务接触到数据,它就会切换到共享服务帐户,于是身份上下文就丢失了。...我们使用相同的SSO身份验证机制,检索相同的JWT,并通过微服务传递此身份验证令牌。然后,我们要做一些新颖的事情:我们还将这个身份验证令牌传递给DSP的Sidecar(边车)代理。...有了DSP的Sidecar代理,我们就可以使用标准SSO工具,向我们的数据库进行身份验证。应用程序用户和非应用程序用户(如SRE、DBA、部署工具)都可以通过SSO进行身份验证。
它支持服务器到服务器应用程序、基于浏览器的应用程序、移动/本机应用程序和控制台/电视。 您可以将其视为酒店钥匙卡,但用于应用程序。如果您有酒店钥匙卡,则可以进入您的房间。您如何获得酒店钥匙卡?...它们不在桌面上运行或通过应用程序商店分发。人们无法对它们进行逆向工程并获得密钥。它们在最终用户无法访问的受保护区域中运行。 公共客户端是浏览器、移动应用程序和物联网设备。...幸运的是,OAuth 如今已经相当成熟,而且您最喜欢的语言或框架很可能有可用的工具来简化事情。 我们已经讨论了一些有关客户端类型、令牌类型和授权服务器的端点以及我们如何将其传递给资源服务器的内容。...它假定资源所有者和客户端应用程序位于不同的设备上。这是最安全的流程,因为您可以对客户端进行身份验证以兑换授权授予,并且令牌永远不会通过用户代理传递。...它是本地用户名/密码应用程序(例如桌面应用程序)的传统授权类型。在此流程中,您向客户端应用程序发送用户名和密码,然后它从授权服务器返回访问令牌。
它支持服务器到服务器应用程序、基于浏览器的应用程序、移动/本机应用程序和控制台/电视。 您可以将其视为酒店钥匙卡,但用于应用程序。如果您有酒店钥匙卡,则可以进入您的房间。您如何获得酒店钥匙卡?...客户可以是公开的和保密的。两者在 OAuth 命名法上有显着区别。可以信任机密客户端来存储秘密。它们不在桌面上运行或通过应用程序商店分发。人们无法对它们进行逆向工程并获得密钥。...幸运的是,OAuth 如今已经相当成熟,而且您最喜欢的语言或框架很可能有可用的工具来简化事情。 我们已经讨论了一些有关客户端类型、令牌类型和授权服务器的端点以及我们如何将其传递给资源服务器的内容。...它假定资源所有者和客户端应用程序位于不同的设备上。这是最安全的流程,因为您可以对客户端进行身份验证以兑换授权授予,并且令牌永远不会通过用户代理传递。...它是本地用户名/密码应用程序(例如桌面应用程序)的传统授权类型。在此流程中,您向客户端应用程序发送用户名和密码,然后它从授权服务器返回访问令牌。
本文将介绍如何使用Spring MVC和一些加密技术来保护您的RestAPI,以确保数据在传输过程中是安全的。 为什么需要加密RestAPI?...HTTPS是HTTP的安全版本,它通过使用SSL/TLS协议来加密数据传输。Spring Boot可以通过配置来启用HTTPS。 首先,我们需要为应用程序生成一个自签名的SSL证书。...使用JWT实现令牌身份验证 为了更进一步提高安全性,我们可以使用JWT(JSON Web Token)来实现令牌身份验证。JWT是一种轻量级的令牌,通常用于在客户端和服务器之间传递身份验证信息。...我们首先了解了为什么需要加密RestAPI以及如何使用HTTPS来加密通信。然后,我们引入了Spring Security以实现基本身份验证,并最终使用JWT来实现令牌身份验证。...通过将这些安全性措施整合到您的应用程序中,您可以确保您的RestAPI在传输和访问时是安全的,从而保护用户的数据和隐私。这对于构建现代Java应用程序来说至关重要,特别是在处理敏感信息的情况下。
OAuth2.0 OpenID Connect 三 JWT 的好处是能够在其中携带信息。有了可用于您的应用程序的此信息,您可以轻松强制执行令牌过期并减少 API 调用次数。...影响最终将在返回的令牌和/userinfo端点中找到的内容的两个查询参数是response_type和scope。 OIDC 响应类型 目前,我们将搁置scope并专注于response_type....在令牌中包含自定义声明的能力(可通过密码验证)是身份提供者的一项重要功能。Okta 的实现为此提供了支持。...@afitnerd.com" } 由于它需要 OIDC 客户端 ID 和密码,因此此操作通常会在可以安全拥有这些凭据的应用程序服务器中完成。...使用声明中找到的公钥n和安全库,我们可以确认 ID 令牌未被篡改。所有这些都可以在最终用户 SPA、移动应用程序等上安全地完成。
JWT-JSON Web令牌的深入介绍 从桌面应用程序到Web应用程序或移动应用程序,身份验证是几乎所有应用程序中最重要的部分之一。...本教程是JWT(JSON Web令牌)的深入介绍,可帮助您了解: 基于会话的身份验证与基于令牌的身份验证(为什么JWT诞生了) JWT是如何工作的。 如何创建JWT。...签名 结合一切 JWT如何保护我们的数据 服务端如何校验从客户端过来的JWT 结论 进一步阅读 基于会话的身份验证和基于令牌的身份验证 对于使用任何网站,移动应用程序或桌面应用程序……您几乎需要创建一个帐户...让我们转到下一部分,我们将知道它是如何工作的。 JWT是如何工作的 现在看下面的流程: ? 您会发现它很容易理解。 服务器没有创建会话,而是从用户登录数据生成了JWT,并将其发送给客户端。...但是,对于要在许多平台上扩展为大量用户的应用程序,首选JWT身份验证,因为令牌将存储在客户端。 祝您学习愉快,再见!
1.通过设计确保安全 设计安全,意味着从一开始就应该将安全性纳入软件设计中。关于安全,其中最常见的一个威胁就是恶意字符。 我问我的朋友罗伯·温奇(Rob Winch)他对删除恶意字符的想法。...我将在下面显示如何加密密钥。 你可能还想强制使用HTTPS。你可以在我以前的博客文章“ 保护Spring Boot应用程序的10种出色方法”中看到如何做。...如果你想请求具备OAuth 2.0和React功能的GraphQL服务器,则只需传递一个Authorization标头即可。...使用多因素身份验证可以减慢入侵者的速度,还可以帮助检测特权级别较高的人何时通过关键服务器进行身份验证。...随处使用TLS 启用具有最低权限的RBAC,禁用ABAC并使用审核日志记录 使用第三方身份验证程序(例如Google,GitHub或Okta) 分布式部署你的etcd群集,并为其提供防火墙 旋转加密密钥
本教程将足以应用于本地和远程的服务器和桌面安装。 先决条件 在开始本指南之前,您需要以下内容: 一个Ubuntu 18.04服务器或桌面环境。...第一个问题将询问您是否希望令牌基于时间。 基于时间的身份验证令牌将在一段时间后过期,在大多数系统上默认为30秒。 基于时间的令牌比不基于时间的令牌更安全,并且大多数2FA实现使用它们。...您的验证码:这是此特定QR码生成的第一个六位数验证码。 您的紧急暂存代码:也称为备用代码,如果您丢失了身份验证设备,这些一次性令牌将允许您通过2FA身份验证。...注意:如果要在通过SSH访问的远程计算机上启用2FA,例如DigitalOcean Droplet,则需要按照Ubuntu 16.04上的如何为SSH设置多重身份验证指南中的第2步和3进行操作,然后再继续执行此操作教程...Droplet或受证书身份验证保护的其他远程服务器上进行测试,则不会提示您输入密码,您的密钥将自动传递和接受。
API Gateway 还可以将安全令牌用作会话令牌 模式:访问令牌 API Gateway 将包含用户信息(例如其身份和角色)的令牌传递给它调用的服务。...图 4 显示了APIGateway如何验证来自API客户端的请求。APIGateway通过向OAuth 2.0授权服务器发出请求来验证API客户端,该服务器返回访问令牌。...然后,API Gateway将包含访问令牌的一个或多个请求发送到服务。 ? 图4 API Gateway 通过向 OAuth 2.0 身份验证服务器发出请求来验证 API 客户端。...身份验证服务器返回访问令牌,API Gateway 将其传递给服务。...如果刷新令牌尚未过期或未被撤消,则授权服务器将返回新的访问令牌。API Gateway 将新的访问令牌传递给服务并将其返回给客户端。 使用 OAuth 2.0 的一个重要好处是它是经过验证的安全标准。
领取专属 10元无门槛券
手把手带您无忧上云