在网络安全领域,授权是一个核心原则。未经授权的数据访问可能会导致巨大的经济损失。此外,许多敏感信息隐藏在后台,处于风险之中。因此,每个应用程序都需要一个可靠的系统或服务来管理访问权限。市场上目前有许多网络安全解决方案——既有免费的也有付费的。本文旨在介绍Keycloak,并帮助读者更深入地理解Keycloak的基础知识以及它为何有用。
理解身份访问管理(IAM)是什么。
了解Keycloak软件的定义和需求。
了解涉及的各种术语和流程,如单点登录和登出机制、身份代理、社交登录等。
学习如何使用管理控制台设置Keycloak配置。
如何在线访问或激活自己,有时可能是通过一个有效的电子邮件地址、社交登录,甚至是通过一个应用程序。因此,有一个身份来安全地访问正确的资源。IAM是一个用于验证用户身份和权限的框架。它是一个在私有、安全的基础架构中运行的服务,用于管理请求受保护资源的用户的认证和授权。它检查用户是否有权访问资源和其他所需文件。IAM系统为管理员提供了工具和技术,以更改用户的角色,跟踪用户活动等。
在现代应用程序或项目中,通常安装一个带有基于Web界面的身份和访问管理解决方案。以前,开发人员需要为每个新应用程序开发自己的用户管理基础设施(登录页面、注销、密码重置、密码哈希、社交登录)。然而,多亏了像Keycloak这样的框架和基于容器的技术,如Docker。
官方网站上说:“Keycloak是一个开源软件产品,允许单点登录与身份和访问管理,针对现代应用程序和服务。”它在Apache许可证2.0下发布,是Jboss社区项目。第一个产品于2014年发布。
可以轻松地向应用程序添加认证并保护服务。通常在应用程序中,会将认证细节存储在数据库中,但在这里不需要处理存储用户或认证用户。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文档以获取可用连接器的完整列表。
$ unzip keycloak-version.zip
或
$ tar -xvzf keycloak-version.tar.gz
$ ./standalone.sh
> ...bin\standalone.bat