首页 > 其他分享 >keycloak~作为第三方登录的对接标准

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

时间:2024-05-20 17:32:01浏览次数:18  
标签:code 登录 对接 用户 token 应用 第三方 keycloak

当某些合作商希望把你的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 在第三方应用中,添加法宝登录链接,例如:

<a 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

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

3 当三方应用通过keycloak的接口获取到了用户信息之后,您就可以与本地账号进行映射了,一般的做法是这样的,如图:

四 认证流程

标签:code,登录,对接,用户,token,应用,第三方,keycloak
From: https://www.cnblogs.com/lori/p/18202456

相关文章

  • 解决wps office必须登录才能编辑使用,即解除不登录账号 工具栏 全灰色限制!
    方法步骤:1、鼠标右键点击“开始”菜单,选择“运行“,输入regedit,点击确定打开注册表编辑器。2、在打开的注册表编辑器页面,依次展开以下注册表项:\HKEY_CURRENT_USER\SOFTWARE\Kingsoft\Office\6.0\plugins\officespace\flogin3、在右侧找到 enableForceLoginForFirstInstallD......
  • 新浪微博动态 RSA 分析图文+登录
    当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解新浪微博动态RSA分析图文+登录日期:2016-10-12阿珏教程浏览:3583次评论:5条新浪微博动态RSA分析一、用到的工具......
  • 中国电信登录RSA算法+分析图文
    当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解中国电信登录RSA算法+分析图文日期:2016-9-30阿珏教程浏览:2727次评论:9条废话不多说!一、用到的工具1.ie浏览器(9以上......
  • 58同城的登录(RSA算法)
    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解`58同城的登录(RSA算法)日期:2016-11-23阿珏教程浏览:3631次评论:8条58同城的登录(RSA算法)这一次。又是一个精彩的登录算法解析......
  • Uni-app 之IOS苹果账号登录
    一、开发文档https://uniapp.dcloud.net.cn/tutorial/app-oauth-apple.html二、示例appleLogin(){uni.login({provider:'apple',success:function(loginRes){console.log(loginRes)//登录成功uni.getUserInfo({provider:�......
  • centos7 配置秘钥登录
    默认情况下,我同时允许密码和秘钥登录,所有不用改配置文件.第一步,先生成秘钥对,ssh-keygen,一路回车即可.然后在~/.ssh目录下会发现两个文件:id_rsaid_rsa.pub按照配置文件/etc/ssh/sshd_config所说,需要创建一个文件,内容就是公钥内容,如下:cat~/.ssh/id_......
  • 在Linux中,如何查看当前登录用户?
    在Linux中,查看当前登录用户的信息可以通过多种命令和方法实现。以下是一些常用的方法:1.who命令who命令是查看当前登录用户的最基本方式。它显示了登录用户的用户名、终端、登录时间等信息。who2.w命令w命令提供了更详细的信息,包括当前登录用户的活动,例如他们正在运行的命......
  • Linux公私钥登录
    因为我电脑是Win11,自带了ssh,所以我就一直在用powershell登录服务器,就懒得再用xshell了,不过下文件之类的有时还是要登我服务器是阿里云的,所以在阿里云密钥对设置那创建新的密钥和绑定此密钥,下载下来将密钥放在任意文件夹中,最好全路径英文,以防万一在C:\Users\username\.ssh下创......
  • 利用Burpsuite爆破带有验证码web登录接口
    工具下载地址https://github.com/f0ng/captcha-killer-modified该工具下的验证码识别python脚本要求python环境小于3.10.0安装验证码识别python脚本引用的库pipinstall-ihttp://mirrors.aliyun.com/pypi/simple/--trusted-hostmirrors.aliyun.comddddocraiohttp加载工......
  • VirtualBox虚拟机远程桌面连接设置详解(包含登录密码设置)
    一、安装VirtualBox虚拟机下载与安装:访问VirtualBox官方网站,根据您的操作系统(如Linux、Windows、Mac等)下载对应版本的VirtualBox安装包。安装下载的VirtualBox软件。创建虚拟机:打开VirtualBox,点击“新建”按钮,按照向导创建新的虚拟机。例如,命名为“Winxp”。根据您的......