Keycloak 是什么?

Keycloak 是一个面向现代应用和服务的开源身份和访问管理解决方案。提供包含身份管理和访问管理功能的单点登录工具。基于 OAuth 2.0 和 JSON Web Token(JWT) 规范的实现。最开始是面向 JBoss 和 Wildfly 通讯,但已经计划为其他诸如 Tomcat、Jetty、Node.js、Rails、Grails 等环境提供解决方案。从概念的角度上来说,该工具的目的是,只用少量编码甚至不用编码,就能很容易地使应用程序和服务更安全。

Keycloak特性

技术背景

keycloak设计初衷:网络时代,人们对安全的要求越来越高,相应的就制定出来一些规范,比如Oauth2,OpenID等等,为了实现这些规范,设计了keycloak。对于对安全方面不是很熟悉的人可以直接使用keycloak去实现用户认证,授权等一系列操作,不需要开发自己的安全方面的东西。

Keycloak实现了OpenID,Auth2.0,SAML单点登录协议,同时提供LDAP和Active Directory,以及OpenID Connect, SAML2.0 IdPs,Github,Google等第三方登录适配功能,能够做到非常简单的开箱即用。但是在实际上,如果想稍微顺利的添加配置,还是需要简单的了解SSO,若想要配置更加复杂的场景,则需要了解对应的协议。

Keycloak有2个主要组件:

  • Keycloak服务器
  • Keycloak应用适配器

Keycloak核心概念

这里先只介绍4个最常用的核心概念:

  1. Users: 用户,使用并需要登录系统的对象
  2. Roles: 角色,用来对用户的权限进行管理
  3. Clients: 客户端,需要接入Keycloak并被Keycloak保护的应用和服务
  4. Realms: 领域,领域管理着一批用户、证书、角色、组等,一个用户只能属于并且能登陆到一个域,域之间是互相独立隔离的, 一个域只能管理它下面所属的用户

(Realm:可以理解成租户,keycloak是多租户的(租户这个概念是在云服务出现的,打比方说,有两个租户,同时租我的云服务器,这两个租户的他们的用户,彼此是相隔离的。在单体系统里我们可能会要求手机号,emial是唯一的,在多租户的系统是不能要求唯一的))

Keycloak有什么用(功能)?

Keycloak的众多功能包括:

  • 用户注册
  • 社会化登录
  • 单点登录/登出,在同一Realm中可跨所有应用(Realm是Keycloak中定义的概念)
  • 双重认证
  • LDAP集成
  • Kerberos代理
  • 多组织中,每个Realm可自定义皮肤

Keycloak的应用场景?

  • 单点登录
  • 导入其他系统的用户
  • 接口安全管理
  • 身份代理

优缺点

优点:

  • 集群配置
  • 应用轻量级
  • 文档简洁全面
  • 样式可完全自定义
  • 丰富的第三方适配
  • 样例丰富
  • 配置版本化管理等
  • 提供RESTFull接口,可简单的通过Api接口进行配置

缺点:

  • 很多范例使用JSP、Servlet,对使用Springboot的用户不太友好;
  • 导入导出配置仅可以在启动时设置,这个在使用Docker容器时,极其不友好;
  • 授权访问配置导出尚存在Bug;
  • 授权Filter存在Bug,Issue已存在,但未修复;
  • 社区不活跃,相比Okta,Auth0配置说明及范例较少。

产品对比(Keycloak vs Authing)

Authing 和 Keycloak 在身份认证和访问管理的解决方案中共同支持许多标准功能,如安全注册和身份验证,OAuth 令牌和 API 密钥管理,单点登录(SSO)和多因素认证(MFA)等等,都是开源的产品

用户体验

从用户体验角度看,keycloak 控制台是比较传统的工业风格,在交互体验上偏老旧,用户操作不友好。与之相比,Authing 控制台业务逻辑更加友好,业务梳理也更加清晰。

默认支持的标准认证协议

Keycloak 目前只支持 OIDC 和 SAML2.0 协议,Authing 支持 OAuth 2.0, OIDC, SAML, AD/LDAP, WS-Fed 等全部主流认证协议。

Webhooks 和事件

Keycloak 不支持 Webhooks,但可以通过复杂的扩展 SPI 来定制,实现起来很复杂。Authing 支持 Webhooks,用户池管理员可以在控制台配置各类事件的通知地址,当你的平台有用户注册、登录、修改个人资料、修改密码时,会自动通知你的服务器。

商业支持

Keycloak 虽然是基于商业应用友好的 Apache Licence 协议,但是 Keycloak 要想商用仍然有一些工作要做,效率很低。Authing 在商业支持上不仅有多达 3000 次免费的 API 调用,体验所有功能,还具有开发者版、高级版、企业版等不同类型的定制服务,全方位地满足客户的商业需求。

安全补丁

Keycloak 作为开源软件,更新速度比较慢。Authing 作为专业企业级软件,会定期发布功能更新和补丁。 对于有平台依赖需要的公司,Authing 还提供了许多支持和托管选项。

用户迁移无需更改密码

Keycloak 不能实现无需修改密码进行用户迁移。Authing 支持通过函数计算的方式执行自定义的密码加密和解密函数,可以自定义密码校验逻辑,让用户无缝迁移到 Authing。

高级许可和合规管理

Keycloak 不具备完善的高级许可和合规管理,但 Authing 具有国际权威安全认证与成熟的信息安全管理体系,对软件全生命周期进行安全保障,拥有可靠的数据安全保护以及全天候安全应急响应措施。

定制功能开发

Keycloak 不提供定制功能开发。Authing 可以根据客户的需求,为企业定制专属的身份认证平台。

秒级安装部署

Keycloak 提供传统的部署方式,如支持多种容器化部署集群,支持集中化配置管理,支持复杂网络环境私有化部署等等。Authing 也同样支持这些,此外,Authing 针对企业级用户提供私有化部署服务,提供一键部署安装包,能够将 Authing 秒级部署到你的企业内部服务器。

Keycloak 作为一款开源软件,在简单的场景下可以做到开箱即用,但是如果想要配置更加复杂的场景,其操作难度和工作量也会正向递增。Authing 作为企业级的专业产品,顺畅且简单,集成所用的时间也更少。如果企业想要快速提高生产效率、增强安全性、推动业务发展,Authing 一定是更正确的选择。

Keycloak(1)_Hello Keycloak相关推荐

  1. keycloak mysql_Demo of keycloak mysql in docker

    安装 & 启动Docker环境 下载keycloak镜像 docker pull jboss/keycloak 下载Mysql镜像 注意这里如果直接用 latest 会下载到 mysql8 镜 ...

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

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

  3. Keycloak Gatekeeper:Keycloak通用代理

    Intro Keycloak支持OpenID Connect以及SAML 2.0,对于不同的编程语言有不同的适配,比如对于Java,Spring Boot和Spring Security可以适配Ope ...

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

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

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

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

  6. VMware Identity Manager 与CAS, Keycloak的集成

    VMwareIdentity Manager (简称vIDM)是VMware开发的一套功能强大的身份管理系统.用户利用这套系统可以实现企业级应用的(包括SAAS,虚拟应用和桌面,原生的移动应用,Win ...

  7. aspnetcore 应用 接入Keycloak快速上手指南

    登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种 ...

  8. Keycloak SSO集成到jBPM和Drools Workbench中

    介绍 单一登录(SSO)和相关令牌交换机制正在成为Web上不同环境中进行身份验证和授权的最常见方案,尤其是在迁移到云中时. 本文讨论了Keycloak与jBPM或Drools应用程序的集成,以便使用K ...

  9. keycloak中文使用文档_基于DOCKER安装配置keycloak

    Keycloak基于OAuth 2.0.Open ID Connect.JSON Web Token(JWT)和SAML 2.0规范,为浏览器应用和RESTful Web Service提供SSO和I ...

最新文章

  1. python中的arange函数_Python 中的range,以及numpy包中的arange函数
  2. mysql 整数_MySQL 整数(int)数据类型
  3. 日本語趣味読み 一 星とり
  4. WP7 : FrameworkDispatcher.Update has not been called when recording audio(wp7 录音)
  5. Hadoop_23_oozie
  6. Pr 视频效果:风格化
  7. 双态IT时代,你需要什么样的IT咨询服务?
  8. Windows7旗舰版安装 Anaconda3 详细图文教程
  9. Unity 2D人物移动实现
  10. python 折线图标签_如何使用python绘制折线图?
  11. python 协程加多线程下载asyncio、ThreadPoolExecutor
  12. OCL功率放大电路分析笔记
  13. win10安装账户卡住_安装win10系统卡住不动的原因和处理方法
  14. 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
  15. git commit -amend报错 ! [remote rejected] HEAD -> refs/for/master (duplicate request) error: failed to
  16. Linux——Linux驱动之设备树下platform总线驱动编写实战(手把手教你设备树下platform总线利用GPIO控制蜂鸣器完整实现过程)
  17. 织梦cms站长导航网站源码
  18. 计算机学业水平考试答题卡,学业水平考试答题卡.doc
  19. 复星联合创始人梁信军:谁掌握了海量区块链账户,谁就是赢家
  20. 怎样安全卸载无用的驱动程序方法

热门文章

  1. dj入门(2)django使用MySql数据库
  2. 奔跑者阿甘:我就干活,别的顺其自然才是禅者的初心
  3. “O2O到家业务”的布局起点:选对商业模式很重要
  4. MySQL之——CentOS下my.cnf 配置 日志类型及文件配置详解(我本人服务器上的配置,亲测可用)
  5. QuantLib 金融计算库
  6. 计算机导论中 网络课程的引入,依托学科课程体系的《计算机导论》课程改革...
  7. SAP 创建成本中心
  8. 以萨技术在科创板IPO终止:计划募资15亿元,实控人为李凡平
  9. 大数据开发、架构工程师面试(一)
  10. 如何修复损坏的硬盘分区