中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

keycloak~作為第(di)三方登錄的(de)對接標(biao)準

當某些合作商(shang)希望把(ba)你(ni)的(de)(de)keycloak作為他們的(de)(de)一(yi)種第三方(fang)登錄方(fang)式(shi)時,就(jiu)(jiu)像微信(xin),google,github,使用你(ni)的(de)(de)keycloak上的(de)(de)賬戶資源時,你(ni)就(jiu)(jiu)需要考慮(lv)如何做一(yi)個開(kai)放的(de)(de),標(biao)準的(de)(de)文檔了。

一 基本角色

  • 認證提供者:keycloak服務,
  • 第三方應用:先到keycloak上注冊,由keycloak頒發client_id和client_secret,并與第三方應用確定好callback回調地址。
  • 用戶:使用keycloak服務完成登錄,然后去訪問第三方應用,當然也可以訪問對接到keycloak上的所有服務資源。

二 接入流程

1 向(xiang)keycloak管理(li)員提供(gong)第(di)三方(fang)應用(yong)基本信(xin)息,應用(yong)名(ming)稱,回(hui)調地址,管理(li)員添加好之后(hou),連同client_id和client_secret告(gao)訴(su)第(di)三方(fang)應用(yong)。

2 在第三方應用(yong)中,添加(jia)法寶登錄鏈接(jie),例如:

<a href="//kc.xxx.com/auth/realms/fabao/protocol/openid-connect/auth?client_id=aaa&redirect_uri=//localhost:8080/callback%3Fredirect_uri%3Dhttp%3A%2F%2Flocalhost%3A8080%2Fhello&response_type=code&scope=openid">kc登錄</a>
  • 客戶端ID client_id=aaa
  • 授權類型 response_type=code
  • scope類型 scope=openid
  • 三方應用的回調地址 redirect_uri

注意:您在對接時(shi),需要對redirect_uri參數進行urlencode編碼。

3 登錄成功后,keycloak會根據你的回調地址,重定向到你的系統中,并帶著code和redirect_uri及session等信息。

  • 三方應用系統的回調地址:redirect_uri
  • 授權碼:code
  • 會話標識:session_state

三 獲取用戶信息

在三方應用自己的callback接口里,可以進行用戶的映射與持久化,你可以通過傳過來的code來獲取當前用戶在keycloak平臺的access_token,然后你再根據access_token獲取用戶基本的開放的信息,你可以將這個用戶信息保存到應用的本地數據庫,當然也可以與你現有用戶進行綁定。
1 通過code來(lai)獲取access_token:/auth/realms/xxx/protocol/openid-connect/token

響應內(nei)容為access_token和(he)refresh_token

2 通過access_token來獲取用戶信息,正常返回200,如果是返回401,你需要從新獲取
獲取(qu)用戶(hu)信息:/auth/realms/xxx/open/userinfo

{
    "nickname": "張三",
    "userId": "347c9e9e-076c-45e3-be74-c482fffcc6e5",
    "username": "test"
}

3 當三(san)方應(ying)用通過keycloak的(de)(de)接(jie)口獲取(qu)到了用戶信息之后,您(nin)就可以與(yu)本地(di)賬號進行映射了,一般的(de)(de)做法是這樣的(de)(de),如(ru)圖:

四 認證流程

posted @ 2024-05-20 17:24  張占嶺  閱讀(1794)  評論(0)    收藏  舉報