“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。
Spring Security不仅是一个功能强大且可高度自定义的身份验证和访问控制框架,它还是保护基于Spring的应用程序的实际标准。 从前,Spring Security需要使用大量的XML来配置所有内容,但是那段日子已经过去了。 如今,Spring Security通过Spring的JavaConfig提供了更简单的配置。 如果您看一下我最近写的JHipster OIDC示例中的`SecurityConfiguration.java`类,您会发现它少于100行代码!
Spring Security 5.0可以解析400多个票证,并且具有许多新功能 :
今天,我将向您展示如何在Okta中使用OAuth 2.0登录支持。 我还将向您展示如何通过OpenID Connect(OIDC)检索用户的信息。
您知道Okta提供免费的开发人员帐户 ,每月最多有7,000个活跃用户,对吗? 这应该足以使您的杀手级应用破土动工。
Spring Security使使用OAuth 2.0进行身份验证变得非常容易。 它还提供了通过OIDC获取用户信息的功能。 请按照以下步骤了解更多信息!
什么是OIDC? 如果您不熟悉OAuth或OIDC,建议您阅读OAuth到底是什么 。 开放ID连接流涉及以下步骤:
- 发现OIDC元数据
- 执行OAuth流以获取ID令牌和访问令牌
- 获取JWT签名密钥并有选择地动态注册客户端应用程序
- 根据内置日期和签名在本地验证JWT ID令牌
- 根据需要使用访问令牌获取其他用户属性
创建一个Spring Boot应用
在浏览器中打开start.spring.io 。 Spring Initialzr是一个站点,可让您快速轻松地创建新的Spring Boot应用程序。 将Spring Boot版本(在右上角)设置为2.0.0.M7
。 输入组和工件名称。 从下面的屏幕快照中可以看到,我选择了com.okta.developer
和oidc
。 对于依赖项,选择Web , Reactive Web , Security和Thymeleaf 。
单击“ 生成项目” ,下载zip,将其展开到硬盘上,然后在您喜欢的IDE中打开该项目。 使用./mvnw spring-boot:run
运行该应用程序, ./mvnw spring-boot:run
将提示您登录。
Spring Security 4.x通过基本身份验证而不是登录表单提示您,因此这与Spring Security 5有所不同。
Spring Security启动程序创建一个默认用户,其用户名为“ user”,并且密码每次启动应用程序时都会更改。 您可以在终端中找到该密码,类似于以下密码。
Using default security password: 103c55b4-2760-4830-9b