• 单点登录等功能该用 Keycloak 这种开源框架实现吗?



    Keycloak 是一个开源软件产品,旨在为现代的应用程序和服务,提供包含身份管理和访问管理功能的单点登录工具。

    开源软件虽然能够定制和修改源代码,还可以降低开发成本,但是 Keycloak 实现起来还是有不少问题:

    • 用户迁移
      Keycloak 不能实现无需修改密码进行用户迁移。
    • Webhooks 和事件
      Keycloak 不支持 Webhooks,但可以通过复杂的扩展 SPI 来定制,实现起来很复杂。
    • 用户体验 UI/UE
      从用户体验角度看,Keycloak 控制台是比较传统的工业风格,在交互体验上偏老旧,用户操作不友好。
    • 默认支持的标准认证协议
      Keycloak 目前只支持 OIDC 和 SAML2.0 协议,而不支持 OAuth 2.0, OIDC,SAML, AD/LDAP, WS-Fed 等认证协议。
    • 安全补丁
      Keycloak 作为开源软件,更新速度比较慢。

    总的来说,Keycloak 作为一款开源软件,在简单的场景下可以做到开箱即用,但是如果想要配置更加复杂的场景,其操作难度和工作量也会正向递增。

    往大了讲,面对着复杂的商业环境和市场竞争,开源软件本身就存在许多共性的问题。

    首先,开源软件并不是完全免费的。开发者根据自己的意愿开发产品并开放源代码,但这不是消费者的需求,从而导致用户体验降低,需要花费额外的时间或费用获得技术帮助。

    其次,开源软件的安全性低。当一个开源组件存在漏洞时,这个漏洞会被迅速公布,以便开发者可以执行必要的修复。然而,黑客也可以看到这些信息,他们不需要付出任何努力,就能了解哪些组件易受攻击以及如何进行攻击,这不免会对用户造成潜在的威胁。

    还记得去年年底,一个堪称核弹级的漏洞被曝出。

    Apache Log4j-2 是一个开源的日志记录组件,使用范围广泛。然而,其中却存在 JNDI 注入漏洞。当程序将用户输入的数据进行日志记录时,即可触发此漏洞。一旦成功利用此漏洞,就可以在目标服务器上远程执行任意代码。

    再次,由于开源软件可以在互联网上免费得到,因此带来大量用户对 bug 修复的建议。这可能会导致大量的补丁,使得源代码更加复杂,甚至出现结构问题,而这些问题往往都会导致高额的维修费用,产生过高的维护成本。

    况且,没有一条裤子适合所有人,没有一款软件适用于所有企业。
    哪怕如 Keycloak 这样基于商业应用友好的 Apache Licence 协议的开源产品,要想商用仍然有一些工作要做,效率很低。

    实际上,针对企业的软件解决方案和服务永远比软件产品本身更重要。

    像 Keycloak 一样做身份管理和访问管理的,还有不少企业级的产品。

    如果偏向于电商,那可以考虑阿里云,阿里云的最早一批用户都是基于淘宝生态的 ISV 服务商。
    如果偏向于文娱,可以考虑腾讯云,他们在这个行业积累的资源、提供的解决方案和产品组件更加合适有类似需求的用户。

    国内两大头部云厂商,云服务器性能都还是不错的,数据可靠性倒是有一些坊间传言说有丢失用户数据的…

    而就中小企业来说,随着企业业务的发展,OA 系统、财税系统、CRM 系统等各类系统只增不减,身份认证不再是件小事。

    又想上云,又想考虑性价比的话,IDaaS 中不乏 Authing 这种专业做单点登录的厂商,可能更符合这类企业级的需求。腾讯云的普惠上云价格也还可以,轻量应用服务器这种比阿里便宜。

    不过,每个企业的实际需求五花八门。Authing 针对企业级用户提供私有化部署服务,提供一键部署安装包,能够将 Authing 秒级部署到企业内部服务器。

    总之,找到适合自己的专业产品,顺畅且简单,集成所用的时间也更少。如果企业想要快速提高生产效率、增强安全性、推动业务发展,还是得找企业级的产品。

    点击链接,立刻了解 Authing!

  • 相关阅读:
    七夕送什么礼物好?最实用的礼物推荐
    如何查看自己的公网IP?
    视觉SLAM十四讲-第三讲三维刚体运动
    节点导纳矩阵
    Vue3 源码阅读(10):组件化 —— 实现原理
    MySQl索引
    关于内存泄漏的经典面试题
    JAVA中如何精确取到时间间隔
    7.2.7 【MySQL】用于分组
    Spring注入Bean的几种方法
  • 原文地址:https://blog.csdn.net/Authing/article/details/127963053