- Keycloak構(gòu)建在WildFly應(yīng)用程序服務(wù)器之上檩小,并且它是子項目验毡,如Infinispan(用于緩存)和Hibernate(用于持久性)逗鸣。
- 一個針對現(xiàn)代應(yīng)用程序和服務(wù)的開源身份和訪問管理卦碾,為應(yīng)用程序和安全服務(wù)添加最小化身份驗證图云。無需處理存儲用戶或驗證用戶,常說的單點登錄和權(quán)限控制功能可以通過它實現(xiàn)卤材,開箱即用。
- 是RedHat的開源身份和訪問管理解決方案
- 開發(fā)了用戶管理峦失,登錄扇丛,注冊,密碼策略尉辑,安全問題帆精,二步驗證,密碼重置等功能。登錄卓练,注冊界面所需字段都是可配置隘蝎,可自定義的。
- 用戶角色襟企,權(quán)限管理功能嘱么,用戶組功能。用戶sessions管理顽悼。
- 一個為瀏覽器和 RESTful Web 服務(wù)提供 SSO 的集成曼振。基于 OAuth 2.0 和 JSON Web Token(JWT) 規(guī)范蔚龙。最開始是面向 JBoss 和 Wildfly 通訊冰评,但已經(jīng)計劃為其他諸如 Tomcat、Jetty木羹、Node.js甲雅、Rails、Grails 等環(huán)境提供解決方案坑填。
核心概念:
users:用戶是一個可以登陸系統(tǒng)的實體抛人,它可以擁有聯(lián)系它們自身的屬性,例如郵箱穷遂、用戶名函匕、地址、電話號碼或生日等蚪黑,可以為user分配組別或者角色盅惜。
authentication:相當(dāng)于密碼,可以驗證和識別一個user忌穿。
authorization:給予用戶訪問的過程抒寂。
credentials:證書,可以供keycloak驗證用戶的東西掠剑,例如密碼屈芜、一次性密碼、證書朴译、指紋等井佑。
roles:相當(dāng)于用戶的一個分類 ,一個組織可能有Admin\user\manager\emplee等角色眠寿,應(yīng)用程序經(jīng)常會分配權(quán)限給角色躬翁,而不是用戶,因為用戶太難管理盯拱。
user role mapping:定義了一個用戶及角色的關(guān)系盒发,一個用戶可以屬于零個或多個角色例嘱,用戶與角色的映射關(guān)系,這樣就可以決定用在各種資源訪問的權(quán)限管理宁舰。
composite roles:復(fù)合角色可以包含其他的角色拼卵,用戶擁有了復(fù)合角色就相當(dāng)于擁有了它下面的所有子角色。
groups:組可以一組的用戶蛮艰,也可以將角色映射到角色中腋腮,用戶可以成為組員后繼承用組的角色
realms:領(lǐng)域,領(lǐng)域管理著一批印荔,用戶低葫、證書、角色仍律、組等嘿悬,一個用戶只能屬于且能登陸到一個域,域之間是互相獨立的水泉,域只能管理在它下面的用戶善涨。
clients:客戶端是一個實體,可以請求keycloak對用戶進(jìn)行身份驗證草则,大部分情況下钢拧,客戶端是應(yīng)用或服務(wù)希望使用keycloak來保護(hù)自己和提供一個單點登錄的解決方案】缓幔客戶端也可以是一個實體源内,請求身份信息或一個訪問信息,這樣就可以調(diào)用其他keycloak保護(hù)的應(yīng)用或服務(wù)了份殿。