掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在上一篇Keycloak系列文章中,我們把Keycloak同Spring Security成功適配,其中用了一個(gè)keycloak.json的配置。它包含了不少屬性,我覺得在深入學(xué)習(xí)Keycloak的過程中有必要和大家共同學(xué)習(xí)一下。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比米脂網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式米脂網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋米脂地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
在Spring Security集成Keycloak 適配器時(shí)需要引入一些額外的配置屬性。一般我們會(huì)把它配置到Spring Boot的配置文件中。
Keycloak領(lǐng)域名稱,這是一個(gè)必須項(xiàng)。
應(yīng)用的client_id,Keycloak服務(wù)器上注冊的每個(gè)客戶端都有一個(gè)獨(dú)一無二的標(biāo)識。這是一個(gè)必須項(xiàng)。
PEM格式的realm公鑰,不建議客戶端配置。每次Keycloak Adapter會(huì)自動(dòng)拉取它。
Keycloak服務(wù)器的基本地址,格式通常是https://host:port/auth,這是一個(gè)必須項(xiàng)。
Keycloak 服務(wù)器的通信使用HTTPS的范圍,是可選的,有三個(gè)選項(xiàng):
Keycloak服務(wù)器的安全端口,默認(rèn) 8443。
如果設(shè)置為true, Keycloak Adapter將檢查令牌攜帶的用戶角色是否跟資源一致;否則會(huì)去查詢r(jià)ealm中用戶的角色。默認(rèn)false。
設(shè)置為true則不需要為客戶端配置密碼,否則需要配置keycloak.credentials.secret。生成secret的方法是在Keycloak控制臺上修改對應(yīng)客戶端設(shè)置選項(xiàng)的訪問類型為confidential,然后在安裝中查看對應(yīng)配置項(xiàng)。當(dāng)訪問類型不是confidential時(shí)該值為false。
開啟跨域(cors)支持。可選項(xiàng),默認(rèn)false。如果設(shè)置為true就激活了cors-開頭的配置項(xiàng),這些配置項(xiàng)都不啰嗦了,都是常見的跨域配置項(xiàng)。
對于服務(wù),這應(yīng)該設(shè)置為true。如果啟用,適配器將不會(huì)嘗試對用戶進(jìn)行身份驗(yàn)證,而只會(huì)驗(yàn)證不記名令牌。如果用戶請求資源時(shí)沒有攜帶Bearer Token將會(huì)401。這是可選的。默認(rèn)值為false。
如果你的應(yīng)用不僅僅是Web應(yīng)用而且還提供API服務(wù)(現(xiàn)在通常是Restful Service),開啟了這一配置后Keycloak服務(wù)器會(huì)通過請求標(biāo)頭相對“智能”地引導(dǎo)未認(rèn)證的用戶到登錄頁面還是返回401狀態(tài)。比bearer-only更加智能一些。
為適配器開啟Basic Authentication認(rèn)證,如果開啟就必須提供secret。默認(rèn)false。
JavaScript CORS 請求通過根路徑下/k_query_bearer_token用來從服務(wù)器獲取令牌的,好像是nodejs相關(guān)的后端應(yīng)用使用的東西,我折騰了半天沒有調(diào)用成功。
當(dāng)客戶端的訪問類型(access type)為Confidential時(shí),需要配置客戶端令牌,目前支持secret和jwt類型。參考public-client中的描述。
上面列舉了大部分我們常用的屬性,后面的屬性和定制Keycloak服務(wù)器相關(guān)暫時(shí)不介紹了。Keycloak剩下的配置項(xiàng)可以到Keycloak Java適配器配置項(xiàng)[1]查看。下一篇我將對Keycloak Spring Security認(rèn)證授權(quán)的流程作出一個(gè)分析。
參考資料
[1]Keycloak Java適配器配置項(xiàng): https://www.keycloak.org/docs/latest/securing_apps/index.html#_java_adapter_config
本文轉(zhuǎn)載自微信公眾號「碼農(nóng)小胖哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)小胖哥公眾號。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流