最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

keycloak域中tokens的配置

2023-03-15 10:19 作者:bfyxzls  | 我要投稿

keycloak域中tokens的配置

一?認(rèn)證響應(yīng)體

{

????"access_token":?"xxx",

????"expires_in":?180,

????"refresh_expires_in":?180,

????"refresh_token":?"xxx",

????"token_type":?"Bearer",

????"not-before-policy":?1670293935,

????"session_state":?"28c2220c-0908-41d4-bb57-c1014d03ed2e",

????"scope":?"roles?my-application-scope?extension-roles?email?profile"

}

?

二?JWT數(shù)據(jù)載體

keycloak的Access_token(上面返回的)是JWT的,它的PAYLOAD數(shù)據(jù)載體主要包括用戶ID,用戶名,用戶角色,過期時間等信息,下面具體介紹:

Sub:用戶ID

preferred_username:賬號名稱

Name:用戶姓名

Email:電子郵件

realm_access:領(lǐng)域角色

resource_access:客戶端(資源服務(wù))角色

Azp:授權(quán)客戶端

Typ:token的類型

Aud:被授權(quán)的客戶端列表

Exp:token的過期時間

Iat:token建立的時間

Iss:?當(dāng)前領(lǐng)域的開放API,token頒發(fā)的機構(gòu),例如https://cas.pkulaw.com/auth/realms/fabao,只有來自這個域名的請求,才能使用咱們的token

三?tokens配置

選擇域realms設(shè)置-tokens標(biāo)簽;新版本叫sessions

14.0.0截圖

?

19.0.0截圖

下面對每一項進行說明:

1.?收回?Refresh?TokenRevoke?Refresh?Token):如果開啟?refresh?tokens只能使用一次,否則refresh?token不會被收回并且可以使用多次。

2.?SSO會話空閑時間SSO?Session?Idle):設(shè)置會話在過期之前可以空閑的時間長度,當(dāng)會話過期時?Token?和瀏覽器會話都會被設(shè)置為無效。

3.?SSO會話最長時間SSO?Session?Max):refresh_token的有效期一般比access_token的長,這也就是通過refresh_token來換取新的access_token的一個前提,下面來配置一個這兩個token的超時時間;refresh_token超時時間refresh_expires_in通過配置SSO?Session?Max進行設(shè)置。

4.?SSO?Session?Idle?Remember?Me記住密碼空閑時間

5.?SSO?Session?Max?Remember?Me記住密碼最大超時時間

6.?離線會話的空閑時間Offline?Session?Idle):離線會話允許的空閑時間。你需要使用離線Token在這段時間內(nèi)至少刷新一次否則會話就會過期,對接角色offline_access。

7.?Offline?Session?Max?Limited開啟離線token的不受限制

8.?Client?Session?Idle客戶端token空閑時間

9.?Client?Session?Max【不知道它的實際作用】:客戶端token的最大超時時間,在生成的JWT中指向expires_in,而客戶端的refresh_expires_in永遠(yuǎn)是0,即永不過期,不過在測試?keycloak過程中發(fā)現(xiàn),通過client_credentials的方式獲取的access_token,它的有效期也是由Access?Token?Lifespan來控制的,就是說和其它認(rèn)證獲取的token有效期是一樣的。

10.?Access?Token?Lifespantoken的超時時間

11.?隱式認(rèn)證token超時時間(Access?Token?Lifespan?For?Implicit?Flow):Max?time?before?an?access?token?issued?during?OpenID?Connect?Implicit?Flow?is?expired.?This?value?is?recommended?to?be?shorter?than?SSO?timeout.?There?is?no?possibility?to?refresh?token?during?implicit?flow,?that's?why?there?is?a?separate?timeout?different?to?'Access?Token?Lifespan'.

12.?Client?login?timeout客戶端登錄過程中超時時間

13.?Login?timeout登出的超時時間

?

四?refresh_token和access_token有效期配置

refresh_token的有效期一般比access_token的長,這也就是通過refresh_token來換取新的access_token的一個前提,下面來配置一個這兩個token的超時時間。

refresh_token超時時間refresh_expires_in,在realms?settings中,選擇tokens進行配置,對SSO?Session?Max進行設(shè)置

?


access_token超時時間expires_in,在realms?settings中,選擇tokens進行配置,對Access?Token?Lifespan進行設(shè)置

這個用戶會話,對應(yīng)的sessionId(session_state)可以在瀏覽器cookie中找到,或者在kc管理后臺的用戶-》會話中查看,這個sessionId被客戶端訪問,都會刷新這個“最后訪問”時間,如圖

?


當(dāng)access_token時間到期后,用戶在瀏覽器訪問時,會出現(xiàn)會話過期,并且在kc管理后臺會看到用戶-》會話中的那邊會話被刪除。

?


如果用戶訪問資源,在token過期,而refresh_token(sso?session?max)未過期時,你可以通過refresh_token來獲取新的token,這時會有新的會話產(chǎn)生;但如果refresh_token也過程時,它將跳轉(zhuǎn)到登錄頁,從新進行認(rèn)證。

五?refresh_token永久性

對于用戶登錄后,如果授權(quán)碼模式,如果希望refresh_token永不過期,可以使用offline_access這種scope?,前提是需要為用戶添加這個offline_access角色。

?


生成的refresh_token的超時時間將是0,即永不超時。

六?客戶端認(rèn)證

客戶端認(rèn)證client_credentials,獲取的token中沒有refresh_token,但出現(xiàn)了refresh_token的過期時間為0,它表示永不過期,或者對refresh_token無效。

沒有refresh_token的解釋:當(dāng)使用客戶端憑據(jù)授權(quán)時,客戶端應(yīng)用程序使用其客戶端?ID?和客戶端密碼向授權(quán)服務(wù)器進行身份驗證.如果獲得授權(quán),它會取回資源的訪問令牌.在這種情況下沒有用戶交互,因此不需要發(fā)出刷新令牌.

當(dāng)訪問令牌過期時,客戶端可以使用自己的憑據(jù)來請求新令牌.當(dāng)客戶端想要代表用戶訪問資源(當(dāng)時可能沒有與客戶端交互)時,使用刷新令牌.

?

七?接口鑒權(quán)

權(quán)限校驗方法:Org.keycloak.phone.utils.TokenUtils.requireRole方法

?


八?認(rèn)證失敗解析

1.?客戶端失敗

?

2.?密碼認(rèn)證失敗

3.?授權(quán)碼失敗

相關(guān)文檔參考

https://www.rfc-editor.org/rfc/rfc6749



keycloak域中tokens的配置的評論 (共 條)

分享到微博請遵守國家法律
宣恩县| 芮城县| 海兴县| 寿光市| 绥滨县| 屯门区| 保定市| 平阴县| 大方县| 凤翔县| 陵水| 吉林市| 广饶县| 赫章县| 五指山市| 安塞县| 沙坪坝区| 海门市| 福泉市| 咸宁市| 邯郸市| 米林县| 丹阳市| 凤台县| 泽州县| 民勤县| 晋中市| 汤原县| 凌云县| 焦作市| 婺源县| 深水埗区| 尉犁县| 南京市| 乌兰县| 南充市| 寿宁县| 广宗县| 客服| 长沙县| 徐州市|