日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

cognito_将Spring Boot应用程序与Amazon Cognito集成

發(fā)布時(shí)間:2023/12/3 javascript 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cognito_将Spring Boot应用程序与Amazon Cognito集成 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

cognito

在本文中,我們將展示如何使用Spring Security 5.0中引入的OAuth 2.0客戶端庫 ,在Spring Boot應(yīng)用程序中為身份驗(yàn)證用戶使用Amazon Cognito服務(wù)。

什么是AWS Cognito?

Amazon Cognito是由AWS提供的服務(wù),除了提供支持訪問AWS服務(wù)的憑證授予支持之外,AWS還提供用戶管理服務(wù)(例如注冊(cè)和登錄)。 除了與Facebook,Google,SAML,OpenId等身份提供者集成之外,它還擁有自己的身份提供者

對(duì)于Web應(yīng)用程序開發(fā)人員有什么好處?

Web應(yīng)用程序開發(fā)人員(服務(wù)器端/單頁應(yīng)用程序)甚至移動(dòng)應(yīng)用程序開發(fā)人員都可以將用戶注冊(cè)和身份驗(yàn)證的負(fù)載卸載到Amazon Cognito,并專注于實(shí)現(xiàn)業(yè)務(wù)需求。

Cognito支持多因素身份驗(yàn)證(MFA),電子郵件和電話號(hào)碼驗(yàn)證,密碼強(qiáng)度管理等功能。 它還支持與其他身份提供商(例如Facebook,Google和自定義SAML集成)的身份驗(yàn)證,其中cognito充當(dāng)與它們集成的適配器。

簡而言之,開發(fā)人員可以專注于業(yè)務(wù)功能,并讓AWS處理用戶注冊(cè)和身份驗(yàn)證。

設(shè)置Amazon Cognito

Cognito包含兩個(gè)主要組件:

  • 用戶池–用于用戶和身份管理,管理應(yīng)用程序客戶端詳細(xì)信息(即將使用Cognito進(jìn)行身份驗(yàn)證的客戶端)
  • 身份池–用于授予AWS憑證來訪問AWS服務(wù)

讓我們配置用戶池,并創(chuàng)建一個(gè)可用于與cognito連接的應(yīng)用程序客戶端。

創(chuàng)建用戶池

創(chuàng)建應(yīng)用程序客戶端

設(shè)置應(yīng)用客戶端

設(shè)置用戶池域名

創(chuàng)建測試用戶

這些是設(shè)置Cognito用戶池和應(yīng)用程序客戶端要遵循的幾個(gè)步驟。

配置Spring Boot應(yīng)用程序

我們將利用Spring Security 5中包含的OAuth客戶端庫及其與Spring Boot的集成 。

更新pom.xml以添加OAuth客戶端依賴項(xiàng)

將以下依賴項(xiàng)添加到pom.xml ,以便能夠獲取OAuth客戶端庫

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency>

添加與OAuth客戶端相關(guān)的屬性

我們需要定義一些與注冊(cè)O(shè)Auth提供程序和設(shè)置OAuth提供程序有關(guān)的屬性。 需要添加以下屬性:

app.url=http://localhost:9999 cognito.rooturl=https://test-userpool.auth.eu-west-1.amazoncognito.com spring.security.oauth2.client.registration.cognito.provider=cognito spring.security.oauth2.client.registration.cognito.client-id=<client-id> spring.security.oauth2.client.registration.cognito.client-secret=<client-secret> spring.security.oauth2.client.registration.cognito.client-name=test-client spring.security.oauth2.client.registration.cognito.authorization-grant-type=authorization_code spring.security.oauth2.client.registration.cognito.scope=email,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.jwkSetUri=https://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.userNameAttribute=username

JWK URI是根據(jù)此處給出的準(zhǔn)則構(gòu)建的。

創(chuàng)建一個(gè)HTML頁面以顯示經(jīng)過身份驗(yàn)證的用戶詳細(xì)信息

我們添加了一個(gè)index.html來顯示使用Thymeleaf-Spring安全方言登錄的用戶詳細(xì)信息,如下所示:

<div class="container"><div class="row"><div class="col">Authenticated successfully as [[${#authentication.name}]]<br/>Principal: [[${#authentication.principal}]]<div><a th:href="@{/logout}" class="btn btn-primary">Logout</a></div></div></div> </div>

測試集成

只需運(yùn)行主類,該應(yīng)用程序?qū)㈤_始在http:// localhost:9999 /上運(yùn)行 。 導(dǎo)航到該URL時(shí),您將重定向到Cognito進(jìn)行身份驗(yàn)證,一旦成功通過身份驗(yàn)證,您將被帶到應(yīng)用程序頁面,如下所示:

該應(yīng)用程序的完整代碼可以在此處找到。 在后續(xù)文章中,我們將研究如何定制Principal對(duì)象,利用用戶信息端點(diǎn),通過Spring安全性進(jìn)行角色管理,以及單頁應(yīng)用程序如何利用Cognito。

翻譯自: https://www.javacodegeeks.com/2019/04/integrate-spring-boot-application-cognito.html

cognito

總結(jié)

以上是生活随笔為你收集整理的cognito_将Spring Boot应用程序与Amazon Cognito集成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。