个人作品展示网站,建设银行app下载手机银行官网,设计公司名字创意,wordpress页面添加自定义面板在本文中#xff0c;我们将展示如何使用Spring Security 5.0中引入的OAuth 2.0客户端库 #xff0c;在Spring Boot应用程序中为身份验证用户使用Amazon Cognito服务。  什么是AWS Cognito#xff1f; Amazon Cognito是由AWS提供的服务#xff0c;除了提供对访问AWS服务的授…   在本文中我们将展示如何使用Spring Security 5.0中引入的OAuth 2.0客户端库 在Spring Boot应用程序中为身份验证用户使用Amazon Cognito服务。  什么是AWS Cognito  Amazon Cognito是由AWS提供的服务除了提供对访问AWS服务的授予凭证的支持外AWS还提供用户管理服务例如注册和登录。 除了与FacebookGoogleSAMLOpenId等身份提供者集成之外它还拥有自己的身份提供者  对于Web应用程序开发人员有什么好处  Web应用程序开发人员服务器端/单页应用程序甚至移动应用程序开发人员都可以将用户注册和身份验证的负载卸载到Amazon Cognito并专注于实现业务需求。   Cognito支持多因素身份验证MFA电子邮件和电话号码验证密码强度管理等功能。 它还支持与其他身份提供商例如FacebookGoogle和自定义SAML集成的身份验证其中cognito充当与它们集成的适配器。   简而言之开发人员可以专注于业务功能并让AWS处理用户注册和身份验证。  设置Amazon Cognito  Cognito包含两个主要组件   用户池–用于用户和身份管理管理应用程序客户端详细信息即将使用Cognito进行身份验证的客户端  身份池–用于授予AWS凭证来访问AWS服务   让我们配置用户池并创建一个可用于与cognito连接的应用程序客户端。  创建用户池  创建应用客户端  设置应用客户端  设置用户池域名  创建测试用户   这些是设置Cognito用户池和应用程序客户端要遵循的几个步骤。  配置Spring Boot应用程序  我们将利用Spring Security 5中包含的OAuth客户端库及其与Spring Boot的集成 。  更新pom.xml以添加OAuth客户端依赖项  将以下依赖项添加到pom.xml 以便能够获取OAuth客户端库  dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-oauth2-client/artifactId
/dependency添加与OAuth客户端相关的属性  我们需要定义一些与注册OAuth提供程序和设置OAuth提供程序有关的属性。 需要添加以下属性  app.urlhttp://localhost:9999
cognito.rooturlhttps://test-userpool.auth.eu-west-1.amazoncognito.com
spring.security.oauth2.client.registration.cognito.providercognito
spring.security.oauth2.client.registration.cognito.client-idclient-id
spring.security.oauth2.client.registration.cognito.client-secretclient-secret
spring.security.oauth2.client.registration.cognito.client-nametest-client
spring.security.oauth2.client.registration.cognito.authorization-grant-typeauthorization_code
spring.security.oauth2.client.registration.cognito.scopeemail,openid
spring.security.oauth2.client.registration.cognito.redirect-uri-template${app.url}/login/oauth2/code/cognitospring.security.oauth2.client.provider.cognito.authorizationUri${cognito.rooturl}/oauth2/authorize
spring.security.oauth2.client.provider.cognito.tokenUri${cognito.rooturl}/oauth2/token
spring.security.oauth2.client.provider.cognito.jwkSetUrihttps://cognito-idp.eu-west-1.amazonaws.com/eu-west-1_Mi1q5QPXa/.well-known/jwks.json
spring.security.oauth2.client.provider.cognito.user-info-uri${cognito.rooturl}/oauth2/userInfo
spring.security.oauth2.client.provider.cognito.userNameAttributeusername JWK URI是根据此处给出的准则构建的。  创建一个HTML页面以显示经过身份验证的用户详细信息  我们添加了一个index.html来显示使用Thymeleaf-Spring安全方言登录的用户详细信息如下所示  div classcontainerdiv classrowdiv classcolAuthenticated successfully as [[${#authentication.name}]]br/Principal: [[${#authentication.principal}]]diva th:href{/logout} classbtn btn-primaryLogout/a/div/div/div
/div测试集成  只需运行主类该应用程序将开始在http// localhost9999 /上运行 。 导航到该URL时您将重定向到Cognito进行身份验证一旦成功通过身份验证您将被带到类似于以下内容的应用程序页面    该应用程序的完整代码可以在此处找到。 在后续文章中我们将研究如何定制Principal对象利用用户信息端点通过Spring安全性进行角色管理以及单一页面应用程序如何利用Cognito。  翻译自: https://www.javacodegeeks.com/2019/04/integrate-spring-boot-application-cognito.html