最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄功能

 更新時(shí)間:2019年10月30日 11:37:00   作者:川川Jason  
Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個(gè)Kurbernetes Native Java框架,計(jì)劃2019年底正式發(fā)布。這篇文章主要介紹了Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄,需要的朋友可以參考下

Keycloak

Keycloak為現(xiàn)代應(yīng)用和服務(wù)提供開源的認(rèn)證和訪問管理,即通常所說的認(rèn)證和授權(quán)。Keycloak支持OpenID、OAuth 2.0和SAML 2.0協(xié)議;支持用戶注冊(cè)、用戶管理、權(quán)限管理;支持代理OpenID、SAML 2.0 IDP,支持GitHub、LinkedIn等第三方登錄,支持整合LDAP和Active Directory;支持自定義認(rèn)證流程、自定義用戶界面,支持國(guó)際化。

Keycloak支持Java、C#、Python、Android、iOS、JavaScript、Nodejs等平臺(tái)或語言,提供簡(jiǎn)單易用的Adapter,僅需少量配置和代碼即可實(shí)現(xiàn)SSO。

Keycloak新的發(fā)行版命名為Quarkus,專為GraalVM和OpenJDK HotSpot量身定制的一個(gè)Kurbernetes Native Java框架,計(jì)劃2019年底正式發(fā)布。

安裝

Keycloak構(gòu)建在WildFly application server之上,從官網(wǎng)下載Standalone server distribution解壓后運(yùn)行bin/standalone.sh即可啟動(dòng)。默認(rèn)使用h2數(shù)據(jù)庫,可以修改配置使用其它數(shù)據(jù)庫。Standalone Clustered Mode、Domain Clustered Mode啟動(dòng)模式和更多配置請(qǐng)參閱官方文檔。

默認(rèn),本地網(wǎng)址為http://localhost:8080/auth ,首次登錄時(shí)必須創(chuàng)建admin用戶:

直接登錄Admin Console http://localhost:8080/auth/admin/

Realm

為保護(hù)不同的應(yīng)用,通常創(chuàng)建不同的Realm,各Realm間的數(shù)據(jù)和配置是獨(dú)立的。初始創(chuàng)建的Realm為Master,Master是最高級(jí)別的Realm。Master Realm內(nèi)的admin用戶(授予admin角色的用戶)擁有查看和管理任何其它realm的權(quán)限。因此,不推薦使用master realm管理用戶和應(yīng)用,而應(yīng)僅供超級(jí)管理員來創(chuàng)建和管理realm。每個(gè)realm有專用的管理控制臺(tái),可以設(shè)置自已的管理員賬號(hào),比如接下來我們創(chuàng)建的heroes realm,控制臺(tái)網(wǎng)址為http://localhost:8080/auth/admin/heroes/console 。創(chuàng)建Heroes realm,點(diǎn)擊左上角下拉菜單-》Add realm:

Login Tab中有多個(gè)可配置選項(xiàng):用戶注冊(cè)、編輯用戶名、忘記密碼、記住我、驗(yàn)證email、使用email登錄、需要SSL。

其中,Require SSL有三個(gè)選項(xiàng):all requests、external requests、none,默認(rèn)為external requests,在生產(chǎn)環(huán)境中應(yīng)配置為all requests。

all requests 所有請(qǐng)求都需通過HTTPS訪問external requests localhost和私有IP不需通過HTTPS訪問none 任何客戶端都不需HTTPS

Themes Tab可以配置界面主題、啟用國(guó)際化:

Tokens Tab可以配置token簽名算法、過期時(shí)間等。

Client

Client是realm中受信任的應(yīng)用。

創(chuàng)建realm后自動(dòng)創(chuàng)建以下client:

account 賬戶管理

如Realm配置中啟用了User-Managed Access則可以管理自己的Resource:

admin-cli brokerrealm-management 預(yù)置了realm管理角色,創(chuàng)建realm管理員時(shí)需要分配這些角色security-admin-console realm管理控制臺(tái)

創(chuàng)建heroes client,點(diǎn)擊Clients右上方的Create:

Client Protocol使用默認(rèn)值openid-connect。Access Type有三個(gè)選項(xiàng)confidential、public、bearer-only,保持默認(rèn)值public。confidential需要client secret,但我們將在web應(yīng)用中使用此client,無法以安全的方式傳輸secret,必須使用public client,只要嚴(yán)格使用HTTPS,可以保證安全。Valid Redirect URIs輸入 http://localhost:4200/* 。

認(rèn)證流程:

  • Standard Flow 即OAuth 2.0規(guī)范中的Authorization Code Flow,推薦使用的認(rèn)證流程,安全性高。keycloak驗(yàn)證用戶后附加一次性、臨時(shí)的Authorization Code重定向到瀏覽器,瀏覽器憑此Code與keycloak交換token(identity、access和refresh token)
  • Implicit Flow keycloak驗(yàn)證用戶后直接返回identity和access token
  • Direct Access Grants REST client獲取token的方式,使用HTTP Post請(qǐng)求,響應(yīng)結(jié)果包含access和refresh token

調(diào)用示例,請(qǐng)求地址:http://localhost:8080/auth/realms/heroes/protocol/openid-connect/token

Client Scope

Client Scope定義了協(xié)議映射關(guān)系,keycloak預(yù)定義了一些Scope,每個(gè)client會(huì)自動(dòng)繼承,這樣就不必在client內(nèi)重復(fù)定義mapper了。Client Scope分為default和optional兩種, default scope會(huì)自動(dòng)生效,optional scope指定使用時(shí)才生效。

啟用optional scope需要使用scope參數(shù):

啟用相應(yīng)scope或配置mapper后,才能在client的token或userinfo中顯示相應(yīng)的屬性。比如,上圖中我們啟用了phone scope,phone mapper中定義了phone number:

如果用戶屬性中定義了phoneNumber,在token中則會(huì)顯示phone_number,可以在heroes client -> Client Scopes -> Evaluate查看效果:

Role、Group、User

Role

Role分為兩種級(jí)別:Realm、Client,默認(rèn)Realm Role:offline_access、uma_authorization。

offline access

OpenID規(guī)范中定義了offline access,用戶登錄獲得offline token,當(dāng)用戶退出后offline token仍可使用。在很多場(chǎng)景中是非常有用的,比如每日離線備份數(shù)據(jù)。要獲得offline token除需offline_access角色外,還需指定offline_access Scope。默認(rèn),offline token不會(huì)過期,但需每30天刷新一次。offline token可以撤銷:

uma_authorization

uma是User-Managed Access的縮寫,Keycloak是符合UMA 2.0功能的授權(quán)服務(wù)器。

Role、Group和User的關(guān)系

User可以屬于一個(gè)或多個(gè)Group,Role可以授予User和Group。

創(chuàng)建Realm管理用戶

添加用戶:

授予realm-management權(quán)限:

Authentication

Keycloak預(yù)定義了Browser、Direct Grant、Registration、Reset Credentials等認(rèn)證流程,用戶也可以自定義。以Brower流程為例:

Required是必須執(zhí)行的,Alternative至少須執(zhí)行一個(gè),Optional則由用戶自己決定是否啟用。

Identity ProviderADFSSalesforceSpring BootAngular參考文檔

Keycloak A Quick Guide to Using Keycloak with Spring Boot AD FS Docs Spring Boot and OAuth2 OAuth 2.0 Login Sample Spring Boot and OAuth2 with Keycloak Spring SAML Springboot Oauth2 Server 搭建Oauth2認(rèn)證服務(wù) How to Setup MS AD FS 3.0 as Brokered Identity Provider in Keycloak

總結(jié)

以上所述是小編給大家介紹的Spring Boot/Angular整合Keycloak實(shí)現(xiàn)單點(diǎn)登錄功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity是一個(gè)強(qiáng)大且靈活的身份驗(yàn)證和訪問控制框架,本文主要介紹了SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Spring Boot 快速入門指南

    Spring Boot 快速入門指南

    Spring 框架是非常著名的 Java 開源框架,歷經(jīng)十多年的發(fā)展,整個(gè)生態(tài)系統(tǒng)已經(jīng)非常完善甚至是繁雜,Spring Boot 正是為了解決這個(gè)問題而開發(fā)的,為 Spring 平臺(tái)和第三方庫提供了開箱即用的設(shè)置,只需要很少的配置就可以開始一個(gè) Spring 項(xiàng)目
    2017-03-03
  • mybatis plus條件構(gòu)造器queryWrapper、updateWrapper

    mybatis plus條件構(gòu)造器queryWrapper、updateWrapper

    這篇文章主要介紹了mybatis plus條件構(gòu)造器queryWrapper、updateWrapper,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java接口的本質(zhì)解析

    Java接口的本質(zhì)解析

    Java接口是初學(xué)者必須經(jīng)歷的基礎(chǔ),但初學(xué)之時(shí)肯定不會(huì)完全懂,溫故而知新本篇文章就帶你重拾接口全面掌握
    2022-03-03
  • 使用Java Api操作HDFS過程詳解

    使用Java Api操作HDFS過程詳解

    這篇文章主要介紹了使用Java Api操作HDFS過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 解讀spring.factories文件配置詳情

    解讀spring.factories文件配置詳情

    這篇文章主要介紹了解讀spring.factories文件配置詳情,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • IDEA創(chuàng)建maven項(xiàng)目時(shí)在tomcat運(yùn)行瀏覽器404的問題

    IDEA創(chuàng)建maven項(xiàng)目時(shí)在tomcat運(yùn)行瀏覽器404的問題

    這篇文章主要介紹了IDEA創(chuàng)建maven項(xiàng)目時(shí)在tomcat運(yùn)行瀏覽器404的問題及解決方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot3整合SpringSecurity6快速入門示例教程

    SpringBoot3整合SpringSecurity6快速入門示例教程

    SpringSecurity 是Spring大家族中一名重要成員,是專門負(fù)責(zé)安全的框架,本文給大家介紹SpringBoot3整合SpringSecurity6快速入門示例教程,感興趣的朋友一起看看吧
    2025-04-04
  • 超詳細(xì)講解Java異常

    超詳細(xì)講解Java異常

    Java 異常機(jī)制可以使程序中異常處理代碼和正常業(yè)務(wù)代碼分離,保證程序代碼更加優(yōu)雅,并提高程序健壯性。本文超詳細(xì)講解了Java異常,感興趣的小伙伴可以參考一下這篇文章
    2021-09-09
  • JAVA裝飾者模式(從現(xiàn)實(shí)生活角度理解代碼原理)

    JAVA裝飾者模式(從現(xiàn)實(shí)生活角度理解代碼原理)

    裝飾者模式可以動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加功能來說,Decorator模式相比生成子類更為靈活。這篇文章主要介紹了JAVA裝飾者模式的相關(guān)資料,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

嘉荫县| 石城县| 石屏县| 汨罗市| 乌拉特后旗| 六枝特区| 罗山县| 虹口区| 高雄市| 古田县| 大理市| 平定县| 铜山县| 上杭县| 陆丰市| 玉溪市| 大邑县| 盐源县| 阳东县| 闽清县| 顺昌县| 临沭县| 郴州市| 德清县| 长治市| 新化县| 河源市| 长白| 班戈县| 晋江市| 德惠市| 漯河市| 喀喇| 黄山市| 文昌市| 兰州市| 云霄县| 平顶山市| 丽水市| 衢州市| 建湖县|