Keycloak身份认证与访问管理详解

在网络安全领域,授权是一个核心原则。未经授权的数据访问可能会导致巨大的经济损失。此外,许多敏感信息隐藏在后台,处于风险之中。因此,每个应用程序都需要一个可靠的系统或服务来管理访问权限。市场上目前有许多网络安全解决方案——既有免费的也有付费的。本文旨在介绍Keycloak,并帮助读者更深入地理解Keycloak的基础知识以及它为何有用。

学习目标

理解身份访问管理(IAM)是什么。

了解Keycloak软件的定义和需求。

了解涉及的各种术语和流程,如单点登录和登出机制、身份代理、社交登录等。

学习如何使用管理控制台设置Keycloak配置。

目录

  • IAM(身份访问管理)
  • 什么是Keycloak?
  • 为什么Keycloak很重要?
  • 管理控制台
  • 账户管理控制台
  • 用户联合
  • 单点登录和单点登出
  • 身份代理和社交登录
  • 授权服务
  • 标准协议
  • 用户特定定制
  • 连接器(适配器)的数量
  • 集群支持
  • Keycloak安装
  • 结论
  • 常见问题解答

IAM(身份访问管理)

如何在线访问或激活自己,有时可能是通过一个有效的电子邮件地址、社交登录,甚至是通过一个应用程序。因此,有一个身份来安全地访问正确的资源。IAM是一个用于验证用户身份和权限的框架。它是一个在私有、安全的基础架构中运行的服务,用于管理请求受保护资源的用户的认证和授权。它检查用户是否有权访问资源和其他所需文件。IAM系统为管理员提供了工具和技术,以更改用户的角色,跟踪用户活动等。

在现代应用程序或项目中,通常安装一个带有基于Web界面的身份和访问管理解决方案。以前,开发人员需要为每个新应用程序开发自己的用户管理基础设施(登录页面、注销、密码重置、密码哈希、社交登录)。然而,多亏了像Keycloak这样的框架和基于容器的技术,如Docker。

什么是Keycloak?

官方网站上说:“Keycloak是一个开源软件产品,允许单点登录与身份和访问管理,针对现代应用程序和服务。”它在Apache许可证2.0下发布,是Jboss社区项目。第一个产品于2014年发布。

为什么Keycloak很重要?

可以轻松地向应用程序添加认证并保护服务。通常在应用程序中,会将认证细节存储在数据库中,但在这里不需要处理存储用户或认证用户。Keycloak提供了强大的认证、联合(通过联合身份,系统可以在不知道他/她的密码的情况下认证用户)、用户管理、细粒度授权等功能。如果需要一些身份和用户管理平台,可以使用Keycloak。最终,将能够了解SSO(单点登录)功能。(一旦用户登录到Keycloak,他就不需要再次登录就可以访问另一个应用程序)。

它有社区支持。现在让体验一下Keycloak的术语,并看看Keycloak为提供了哪些重要功能。

管理控制台

管理控制台帮助管理员管理所有操作和配置,他们可以集中管理Keycloak服务器的所有方面。在这里,可以启用和禁用各种功能,配置身份代理和用户联合,创建和管理应用程序和服务,定义细粒度的授权策略,还管理用户,包括权限和会话。

账户管理控制台

通过使用账户管理控制台,用户可以控制自己的账户。用户可以更新个人资料,如更改密码,并设置双因素认证。用户还可以管理会话以及查看账户的历史记录。如果启用了社交登录或身份代理,用户还可以将他们的账户与额外的提供商链接起来,允许他们使用不同的身份提供商对同一账户进行身份验证。

用户联合

单点登录和单点登出

它是身份联合的一部分。用户可以使用Keycloak进行身份验证,而不是使用自己的应用程序。这意味着应用程序不必处理登录表单、认证用户和存储用户。一旦登录到Keycloak,就不需要再次登录就可以访问不同的应用程序。这也适用于注销。Keycloak支持单点注销,这意味着用户只需要从应用程序注销,它将自动从授权的应用程序注销。

身份代理和社交登录

授权服务

在应用程序中,如果角色基础授权不满足需求,Keycloak为提供了更好的解决方案。Keycloak支持从Keycloak管理控制台管理所有服务的权限,并授权管理所需的任何策略。

标准协议

Keycloak基于标准协议,并为OpenID Connect、OAuth 2.0和SAML提供支持。可以使用这些协议中的任何一个将应用程序与Keycloak集成。

用户特定定制

Keycloak是一个高度可定制的实体。管理员可以从其主题到内部功能定制Keycloak,以使用服务提供商接口创建自定义需求,可以按需编程功能,并将它们作为模块添加到Keycloak服务器中。这是扩展Keycloak功能的一个非常强大的功能。

连接器(适配器)的数量

已经开发了许多适配器,用于将Keycloak与其他应用程序、服务器和框架集成。其中一些是Apache Tomcat、Spring-Boot和WildFly。它也可以与移动应用程序连接。可以访问Keycloak文档以获取可用连接器的完整列表。

集群支持

Keycloak安装

  1. 下载Keycloak——点击这里
  2. 将文件放置在喜欢的目录中
  3. 使用适当的解压缩工具解压缩ZIP文件,如jar、tar或unzip。Linux使用以下命令 $ unzip keycloak-version.zip$ tar -xvzf keycloak-version.tar.gz
  4. 启动Keycloak服务器——需要在安装它的系统上启动服务器。
    1. 转到服务器分发的bin目录。
    2. 运行独立启动脚本。
      • Linux:$ ./standalone.sh
      • Windows:> ...bin\standalone.bat
  • 理解身份访问管理。
  • 单点登录和登出机制。
  • 身份代理和社交登录。
  • 通过管理控制台配置Keycloak。
Q1. Keycloak用于什么?
A. Keycloak是一个开源的身份和访问管理解决方案,用于保护应用程序和服务。
Q2. Keycloak是OAuth服务器吗?
A. 是的,Keycloak作为OAuth服务器,提供认证和授权服务。
Q3. Keycloak是一个工具吗?
A. 它是一个全面的用于管理用户身份、权限和认证过程的工具。
Q4. Keycloak的基础知识是什么?
Keycloak的基础知识包括用户认证、身份联合、单点登录和基于角色的访问控制。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485