keycloak~作为第三方登录的对接标准

打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

当某些合作商希望把你的keycloak作为他们的一种第三方登录方式时,就像微信,google,github,使用你的keycloak上的账户资源时,你就必要思量怎样做一个开放的,标准的文档了。
一 根本脚色


  • 认证提供者:keycloak服务,https://kc.xxx.com
  • 第三方应用:先到keycloak上注册,由keycloak颁发client_id和client_secret,并与第三方应用确定好callback回调地址。
  • 用户:使用keycloak服务完成登录,然后去访问第三方应用,当然也可以访问对接到keycloak上的全部服务资源。
二 接入流程

1 向keycloak管理员提供第三方应用根本信息,应用名称,回调地址,管理员添加好之后,连同client_id和client_secret告诉第三方应用。


2 在第三方应用中,添加法宝登录链接,例如:
  1. <a target="_blank" href="https://kc.xxx.com/auth/realms/fabao/protocol/openid-connect/auth?client_id=aaa&redirect_uri=http://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
注意:您在对接时,必要对redirect_uri参数进行urlencode编码。
3 登录乐成后,keycloak会根据你的回调地址,重定向到你的系统中,并带着code和redirect_uri及session等信息。
http://localhost:8080/callback?redirect_uri=http://localhost:8080/hello&session_state=45691669-f290-4991-8f43-d6c411a91b7c&code=b3921500-f6a6-494d-ad23-41b75c436fe7.45691669-f290-4991-8f43-d6c411a91b7c.02bb9b29-2c53-45c7-b009-43e3c78c6aff

  • 三方应用系统的回调地址:redirect_uri
  • 授权码:code
  • 会话标识:session_state
三 获取用户信息

在三方应用自己的callback接口里,可以进行用户的映射与长期化,你可以通过传过来的code来获取当前用户在keycloak平台的access_token,然后你再根据access_token获取用户根本的开放的信息,你可以将这个用户信息生存到应用的本地数据库,当然也可以与你现有效户进行绑定。
1 通过code来获取access_token:/auth/realms/xxx/protocol/openid-connect/token

响应内容为access_token和refresh_token

2 通过access_token来获取用户信息,正常返回200,如果是返回401,你必要重新获取
获取用户信息:/auth/realms/xxx/open/userinfo
  1. {
  2.     "nickname": "张三",
  3.     "userId": "347c9e9e-076c-45e3-be74-c482fffcc6e5",
  4.     "username": "test"
  5. }
复制代码
3 当三方应用通过keycloak的接口获取到了用户信息之后,您就可以与本地账号进行映射了,一般的做法是如许的,如图:

四 认证流程



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表