【Keycloak 简述】

Keycloak是一个用于Web应用和REST服务的单点登录解决方案,支持OpenID Connect和OAuth 2.0。它提供用户界面进行登录、注册和管理,能与LDAP、Active Directory集成,并支持社交登录。Keycloak的核心概念包括用户、认证、授权、角色、会话管理等,提供安全管理、可定制的用户界面和多种客户端适配器。
摘要由CSDN通过智能技术生成

1. 简述

本篇对Keycloak做一个初步的入门讲解,系统的认识Keycolak,以便大家理解后面的篇幅。
Keycloak 是用于 Web 应用程序和 RESTful Web 服务的单点登录解决方案。Keycloak 的目的是保持简单的安全性并保护应用程序开发人员在其组织内部署的应用程序和服务。开发人员通常必须自己编写的安全功能会立即提供,并且可以轻松地根据组织的个人需求进行定制。Keycloak 提供可定制的用户界面,用于登录、注册、系统管理和帐户管理。通过连接到现有的 LDAP 和 Active Directory 服务器,Keycloak 也可以用作集成平台。您还可以将身份验证委托给第三方身份提供商,例如 Facebook 或 Google+。

1.1. 特点

  • 浏览器应用程序的单点登录和单点注销。

  • 支持 OpenID 连接。

  • 支持 OAuth 2.0。

  • SAML 支持。

  • 身份代理 - 由外部 OpenID Connect 或启用 SAML 的身份提供者进行身份验证。

  • 社交登录——通过 Google、GitHub、Facebook、Twitter 和其他社交网络登录。

  • 用户联合 - 来自 LDAP 或 Active Directory 的用户同步。

  • Kerberos 集成 - 已登录到 Kerberos 服务器的用户的身份验证链接。

  • 用于集中管理用户、角色、角色映射、客户端和设置的管理控制台。

  • 一个账户管理控制台,允许用户集中管理他们的账户。

  • 主题支持 - 自定义所有用户屏幕并集成应用程序和品牌。

  • 使用 Google Authenticator 和 FreeOTP 的双因素身份验证-TOTP / HOTP 支持。

  • 登录流程-可选的用户自行注册、密码找回、邮箱验证、强制修改密码等功能。

  • 会话管理——管理员和用户可以查看和管理他们自己的会话。

  • Token Mapper——指定用户属性、角色等如何反映在token和statements中。

  • 不是在为每个领域、应用程序和用户循环策略之前。

  • CORS 支持-启用 CORS 的客户端适配器。

  • 服务提供者接口 (SPI) - 用于自定义服务器各个方面的许多 SPI。身份验证流程、用户联合提供程序、协议映射器等等。

  • 适用于 JavaScript、WildFly、JBoss EAP、Fuse、Tomcat、Jetty、Spring 等的客户端适配器。

  • 使用 OpenID Connect 资源提供程序库或 SAML 2.0 服务提供程序库支持任何平台/语言。

1.2. Keycloak的安全性

Keycloak 是您管理的独立服务器,位于您的网络中。应用程序配置为指向此服务器并受此服务器保护。Keycloak 使用OpenID Connect和SAML 2.0等标准协议来保护您的应用程序。浏览器应用程序将用户的浏览器从应用程序重定向到您输入凭据的 Keycloak 身份验证服务器。这很重要,因为用户与应用程序完全隔离,应用程序永远不会看到用户的凭据。相反,应用程序被赋予一个加密签名的身份令牌或断言。这些令牌可以包含身份信息,例如用户名、地址、电子邮件和其他配置文件数据。还可以保留权限数据,应用程序可以做出授权决定。这些令牌还可用于对基于 REST 的服务进行安全调用。

1.3. 核心概念和术语

为了在 Web 应用程序或 REST 服务更好的应用 Keycloak ,需要了解一些关键概念和术语作为前提。

用户
可以登录系统的实体。它具有与自身相关的属性,例如电子邮件、用户名、地址、电话号码和出生日期。它也可以被分配一个组成员或一个特定的角色。

认证
识别和验证用户的过程。

授权
授予用户访问权限的过程。

证书
凭据是 Keycloak 用来验证用户身份的一些数据。示例包括密码、一次性密码、数字证书,甚至指纹。


角色标识用户的类型或类别。,都是组织中存在的典型角色Admin。应用程序通常将权限分配给特定角色而不是单个用户,因为可能难以微调对用户的处理。usermanageremployee

用户角色映射
用户角色映射定义角色和用户之间的映射。用户可以与零个或多个角色相关联。此角色映射信息封装在令牌和断言中,以便您可以确定应用程序管理的各种资源的权限。

复合辊
复合角色是可以与其他角色关联的角色。例如,superuser复合角色可以sales-admin与角色相关联。order-entry-admin当一个用户被superuser映射到一个角色时,它继承了sales-admin角色和order-entry-admin角色。

团体
组管理用户组。您可以为组定义属性。角色也可以映射到组。成为组成员的用户会继承该组定义的属性-角色映射。

领域
领域管理一组用户、凭据、角色和组。用户登录到他所属的领域。领域相互分离,只有控制用户才能被管理和认证。

客户
客户端是可以请求 Keycloak 对用户进行身份验证的实体。客户经常提到使用 Keycloak 来保护自己并提供单点登录解决方案的应用程序和服务。客户端也是一个请求身份信息和访问令牌的实体,以便它可以安全地调用受 Keycloak 保护的网络上的其他服务。

客户端适配器
客户端适配器是一个插件,可以安装在应用环境中,以确保安全并与 Keycloak 进行通信。Keycloak 带有多个适用于不同平台的适配器,可供下载。对于默认情况下未涵盖的环境,还有第三方适配器。

同意
同意是指管理员在客户端参与身份验证过程之前要求用户授予客户端权限。当用户输入他们的凭据时,Keycloak 会显示一个屏幕,用于识别请求登录的客户端和用户请求的识别信息。用户可以决定是否允许该请求。

客户范围
注册客户端后,您需要定义客户端的协议映射器和角色范围之间的映射。通过共享一些常用设置来保存客户端范围以方便创建新客户端通常很方便。scope如果您想根据参数值有条件地请求声明或角色,这也很有用。Keycloak 为此提供了客户端范围的概念。

客户角色
客户端可以定义一个特定的角色。这基本上是一个仅限客户端的角色命名空间。

身份令牌
提供有关用户的标识信息的令牌。这是 OpenID Connect 规范的一部分。

访问令牌
可以作为授予对服务访问权限的 HTTP 请求的一部分提供的令牌。这是 OpenID Connect 和 OAuth 2.0 规范的一部分。

自信
关于用户的信息。这通常涉及包含在 SAML 身份验证响应中的 XML blob,该响应提供有关经过身份验证的用户的身份元数据。

服务帐号
每个客户端都有一个内置的服务帐户来获取访问令牌。

直接拨款
客户端通过 REST 调用代表用户获取访问令牌的一种方式。

协议映射器
对于每个客户端,您可以调整哪些声明和断言存储在 OIDC 令牌或 SAML 断言中。为每个客户端配置一个协议映射器。

会议
当用户登录时,会创建一个会话来管理登录会话。会话包含诸如用户何时登录以及在会话期间参与单点登录的应用程序等信息。管理员和用户都可以查看会话信息。

用户联合提供者
Keycloak 可以存储和管理用户。许多企业已经拥有存储用户和凭据信息的 LDAP 或 Active Directory 服务。您可以配置 Keycloak 以验证来自外部存储的凭据信息并检索身份信息。

身份提供者
身份提供者 (IDP) 是可以对用户进行身份验证的服务。Keycloak 是 IDP。

身份提供者联盟
Keycloak 可以配置为将身份验证委托给一个或多个 IDP。通过 Facebook 或 Google+ 进行社交登录是身份提供者联盟的一个示例。您还可以挂钩 Keycloak 以将身份验证委托给另一个 OpenID Connect 或 SAML 2.0 IDP。

身份提供者映射器
在执行 IDP 联合时,您可以将用户和会话属性映射到接收到的令牌和断言。这有助于将身份信息从外部 IDP 传播到请求身份验证的客户端。

强制行动
强制操作是用户在身份验证过程中必须执行的操作。在完成这些操作之前,用户将无法完成身份验证过程。例如,管理员update password可以为所有用户设置强制操作,并要求用户每月重置密码。

认证流程
身份验证流程是用户在与系统的特定方面进行交互时必须执行的工作流程。登录流程定义了所需的凭证类型。注册流程定义了用户必须输入的个人资料信息以及是否应使用 reCAPTCHA 来过滤机器人。凭据重置流程定义了用户在重置密码之前必须执行的操作。

事件
事件是管理员可以查看和连接的审计流。

主题
Keycloak 提供的所有屏幕都有一个主题。主题定义了可以根据需要覆盖的 HTML 模板和样式表。

简单的入门介绍就到这里了,下一篇幅会从搭建Keycloak服务入手,让大家对Keycloak有更深的认识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值