keycloak 是一个针对Web应用和RESTfull Web API 提供SSO(Single Sign On:单点登陆),它是一个开源软件,源码地址是:https://github.com/keycloak/keycloak/

核心概念:

users:用户是一个可以登陆系统的实体,它可以拥有联系它们自身的属性,例如邮箱、用户名、地址、电话号码或生日等,可以为user分配组别或者角色。

authentication:相当于密码,可以验证和识别一个user。

authorization:给予用户访问的过程。

credentials:证书,可以供keycloak验证用户的东西,例如密码、一次性密码、证书、指纹等。

roles:相当于用户的一个分类 ,一个组织可能有Admin\user\manager\emplee等角色,应用程序经常会分配权限给角色,而不是用户,因为用户太难管理。

user role mapping:定义了一个用户及角色的关系,一个用户可以属于零个或多个角色,用户与角色的映射关系,这样就可以决定用在各种资源访问的权限管理。

composite roles:复合角色可以包含其他的角色,用户拥有了复合角色就相当于拥有了它下面的所有子角色。

groups:组可以一组的用户,也可以将角色映射到角色中,用户可以成为组员后继承用组的角色

realms:领域,领域管理着一批,用户、证书、角色、组等,一个用户只能属于且能登陆到一个域,域之间是互相独立的,域只能管理在它下面的用户。

clients:客户端是一个实体,可以请求keycloak对用户进行身份验证,大部分情况下,客户端是应用或服务希望使用keycloak来保护自己和提供一个单点登录的解决方案。客户端也可以是一个实体,请求身份信息或一个访问信息,这样就可以调用其他keycloak保护的应用或服务了。

client adapters:

Windows运行单实例,可以参考:https://github.com/keycloak/keycloak-quickstarts

增加-b参数是不限制客户端的IP地址

For Linux:   KEYCLOAK_HOME/bin/standalone.sh -b 0.0.0.0
For Windows: KEYCLOAK_HOME\bin\standalone.bat -b 0.0.0.0

关于keycloack比较详细的配置方式,请参考:https://www.youtube.com/watch?v=ZxpY_zZ52kU

本机测试keycloak关联登陆,库地址为:https://github.com/ChenWes/keycloak-demo

第一次进入keycloak,需要先创建一个管理员帐户,这里只需要输入用户名和口令即可

首次创建帐户信息后

点击进入至administration console管理员控制台,需要输入用户名及口令进行登陆

进入至keycloak后,默认的realm是Master

为了演示与react进行关联登陆,这里我们创建一个realm

再创建一个client

在对应的realm中创建一个可登陆的user

另外,在react应用程序中,配置好keycloak的信息,并进行测试

以上,集成keycloak不是一个很难的技术,有点难度的是将keycloak挂载至云服务器,例如使用docker或K8S等技术,这个要花一点时间去处理

基于以上,keycloak是一个集成的登陆技术,即SSO一个比较好的技术

现在演示的内容,用户信息都是保存在keycloak的专用数据库中,另外,keycloak也支持用户信息是保存在其他单独的系统中的用户表中,但如何去实现,暂时还没有研究透

转载于:https://www.cnblogs.com/weschen/p/9530044.html

keycloak学习相关推荐

  1. Keycloak 初步 学习了解

    docker 部署 keycloak //下载 keycloak docker pull jboss/keycloak 需要一个Keycloak实例,启动Jboss提供的Docker容器: docke ...

  2. Keycloak Spring Security适配器的常用配置

    在上一篇Keycloak系列文章中,我们把Keycloak同Spring Security成功适配,其中用了一个keycloak.json的配置.它包含了不少属性,我觉得在深入学习Keycloak的过 ...

  3. Spring Security 中使用Keycloak作为认证授权服务器

    Keycloak对流行的Java应用提供了适配器.在系列文章的上一篇我们演示了针对Spring Boot的安全保护,用的就是适配器的一种.Keycloak同样提供Spring Security的适配器 ...

  4. Keycloak简单几步实现对Spring Boot应用的权限控制

    我们在上一篇初步尝试了keycloak,手动建立了一个名为felord.cn的realm并在该realm下建了一个名为felord的用户.今天就来尝试一下对应的Spring Boot Adapter, ...

  5. java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验

    java学习里程碑 miles2run.org是跟踪跑步活动并与亲朋好友共享的简便方法. 可以创建然后跟踪基于天或基于距离的目标. 它还允许创建社区运行目标,并使多个跑步者参与并跟踪他们朝着该目标的活 ...

  6. 统一认证授权平台keycloak太牛了,我要搞一搞

    最近想要打通几个应用程序的用户关系,搞一个集中式的用户管理系统来统一管理应用的用户体系.经过一番调研选中了红帽开源的Keycloak,这是一款非常强大的统一认证授权管理平台.之所以选中了Keycloa ...

  7. keycloak 自定义登录页面

    keycloak 自定义登录页面详细步骤如下: 因为keycloak是jboss开发的,使用FTL后缀开发前端文件,可能根据以下方式实现 keycloak将前端页面分为四类:按类设置主题. •Acco ...

  8. 最详细的Keycloak教程:Keycloak实现手机号、验证码登陆——(一)Keycloak的下载与使用

    目录 一. 简介 二.Keycloak下载与启动 三.配置国际化内容 一. 简介 接触keycloak已经半个多月了,主要是为了用来集成现已有的项目,也是弄得头大,代码不负脱发人,也是有点小成果了,在 ...

  9. Keycloak简单几步实现对Spring Boot应用的权限控制,程序员Java基础案例教程

    关注并星标 码农小胖哥,第一时间获取相关干货文章. 客户端 === 相信不少同学用过微信开放平台.蚂蚁开放平台.首先我们需要在这些开放平台上注册一个客户端以获取一套类似用户名和密码的凭证.有的叫app ...

最新文章

  1. python怎么读取列表-详解Python如何获取列表(List)的中位数
  2. c语言编程TLC2543AD采集,AD转换器TLC2543编程
  3. 【Redis】redis开机自启动、设置守护进程、密码设置、访问权限控制等安全设置(redis默认端口6379)...
  4. .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现
  5. 请问孩子厌学的话该怎么办?
  6. 【Three.js】模型抗锯齿处理
  7. [20170612]FOR ALL COLUMNS SIZE repeat12c
  8. 《数据科学概论》教材介绍
  9. c语言词法分析程序设计,c语言词法分析器的简单实现 词法分析器的设计与实现...
  10. 关于Factory mode test item cannot display的原因
  11. 推荐一个阅读代码、文档的利器:屏幕贴图工具
  12. 一个检查输入内容的 AppCompatEditText 。
  13. Ambiguous mapping(模糊映射)
  14. 境外服务器网站能挂支付宝么,支付宝如何境外改为境内?在国外可以使用吗?...
  15. A股股票列表数据API接口(JSON标准格式,Get请求方式)
  16. python大神能干什么_Python这么火,能干什么?这四大主要用途是你必须得知道的!...
  17. Unity实用案例之——屏幕画线和线框渲染
  18. 微信公众平台停用服务器配置,1.微信公众号服务器配置启用
  19. 1.6Java-接口、抽象类
  20. 【笔记】linux下查看文件夹大小

热门文章

  1. 灵动标签调用栏目自定义字段
  2. css3中transition和display的坑
  3. cocos creator基础-(十三)cc.Loader使用
  4. struts2中action的class属性值意义
  5. centOS 安装及部署 SVN
  6. Java 多线程的创建
  7. coposer 安装 laravel
  8. 最近录制了一些视频,搭建和测试了一下视频平台
  9. Python(6)-文件和异常
  10. CSocket,CAsyncSocket多线程退出时的一些注意事项(解决关闭WinSoket崩溃的问题)