Keycloak(1)_Hello Keycloak
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个最常用的核心概念:
- Users: 用户,使用并需要登录系统的对象
- Roles: 角色,用来对用户的权限进行管理
- Clients: 客户端,需要接入Keycloak并被Keycloak保护的应用和服务
- 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相关推荐
- keycloak mysql_Demo of keycloak mysql in docker
安装 & 启动Docker环境 下载keycloak镜像 docker pull jboss/keycloak 下载Mysql镜像 注意这里如果直接用 latest 会下载到 mysql8 镜 ...
- 最详细的Keycloak教程:Keycloak实现手机号、验证码登陆——(一)Keycloak的下载与使用
目录 一. 简介 二.Keycloak下载与启动 三.配置国际化内容 一. 简介 接触keycloak已经半个多月了,主要是为了用来集成现已有的项目,也是弄得头大,代码不负脱发人,也是有点小成果了,在 ...
- Keycloak Gatekeeper:Keycloak通用代理
Intro Keycloak支持OpenID Connect以及SAML 2.0,对于不同的编程语言有不同的适配,比如对于Java,Spring Boot和Spring Security可以适配Ope ...
- Spring Security 中使用Keycloak作为认证授权服务器
Keycloak对流行的Java应用提供了适配器.在系列文章的上一篇我们演示了针对Spring Boot的安全保护,用的就是适配器的一种.Keycloak同样提供Spring Security的适配器 ...
- Keycloak简单几步实现对Spring Boot应用的权限控制
我们在上一篇初步尝试了keycloak,手动建立了一个名为felord.cn的realm并在该realm下建了一个名为felord的用户.今天就来尝试一下对应的Spring Boot Adapter, ...
- VMware Identity Manager 与CAS, Keycloak的集成
VMwareIdentity Manager (简称vIDM)是VMware开发的一套功能强大的身份管理系统.用户利用这套系统可以实现企业级应用的(包括SAAS,虚拟应用和桌面,原生的移动应用,Win ...
- aspnetcore 应用 接入Keycloak快速上手指南
登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种 ...
- Keycloak SSO集成到jBPM和Drools Workbench中
介绍 单一登录(SSO)和相关令牌交换机制正在成为Web上不同环境中进行身份验证和授权的最常见方案,尤其是在迁移到云中时. 本文讨论了Keycloak与jBPM或Drools应用程序的集成,以便使用K ...
- keycloak中文使用文档_基于DOCKER安装配置keycloak
Keycloak基于OAuth 2.0.Open ID Connect.JSON Web Token(JWT)和SAML 2.0规范,为浏览器应用和RESTful Web Service提供SSO和I ...
最新文章
- python中的arange函数_Python 中的range,以及numpy包中的arange函数
- mysql 整数_MySQL 整数(int)数据类型
- 日本語趣味読み 一 星とり
- WP7 : FrameworkDispatcher.Update has not been called when recording audio(wp7 录音)
- Hadoop_23_oozie
- Pr 视频效果:风格化
- 双态IT时代,你需要什么样的IT咨询服务?
- Windows7旗舰版安装 Anaconda3 详细图文教程
- Unity 2D人物移动实现
- python 折线图标签_如何使用python绘制折线图?
- python 协程加多线程下载asyncio、ThreadPoolExecutor
- OCL功率放大电路分析笔记
- win10安装账户卡住_安装win10系统卡住不动的原因和处理方法
- 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
- git commit -amend报错 ! [remote rejected] HEAD -> refs/for/master (duplicate request) error: failed to
- Linux——Linux驱动之设备树下platform总线驱动编写实战(手把手教你设备树下platform总线利用GPIO控制蜂鸣器完整实现过程)
- 织梦cms站长导航网站源码
- 计算机学业水平考试答题卡,学业水平考试答题卡.doc
- 复星联合创始人梁信军:谁掌握了海量区块链账户,谁就是赢家
- 怎样安全卸载无用的驱动程序方法
热门文章
- dj入门(2)django使用MySql数据库
- 奔跑者阿甘:我就干活,别的顺其自然才是禅者的初心
- “O2O到家业务”的布局起点:选对商业模式很重要
- MySQL之——CentOS下my.cnf 配置 日志类型及文件配置详解(我本人服务器上的配置,亲测可用)
- QuantLib 金融计算库
- 计算机导论中 网络课程的引入,依托学科课程体系的《计算机导论》课程改革...
- SAP 创建成本中心
- 以萨技术在科创板IPO终止:计划募资15亿元,实控人为李凡平
- 大数据开发、架构工程师面试(一)
- 如何修复损坏的硬盘分区