1.3. 核心概念和术语
在尝试使用红帽构建的 Keycloak 来保护 Web 应用程序和 REST 服务前,请考虑这些核心概念和术语。
- users
- 用户是可以登录到系统的实体。它们可以拥有与自身关联的属性,如电子邮件、用户名、地址、电话号码和生日。它们可以被分配组成员资格,并为其分配特定的角色。
- 身份验证
- 识别和验证用户的过程。
- 授权
- 授予用户访问权限的过程。
- credentials
- 凭证是红帽构建的 Keycloak 用来验证用户身份的数据片段。有些示例包括密码、一次性密码、数字证书甚至指纹。
- roles
-
角色标识用户的类型或类别。
管理员
、用户
、经理
和员工是机构中可能存在的所有典型角色。应用程序通常会将访问权限和权限分配给特定的角色,而非个人用户,因为处理用户的处理可能太精细且难以管理。
- 用户角色映射
- 用户角色映射定义了角色和用户之间的映射。用户可以与零个或多个角色关联。此角色映射信息可以封装到令牌和断言中,以便应用能够决定他们管理的不同资源的访问。
- 复合角色
-
复合角色是可与其他角色关联的角色。例如,
超级用户
复合角色可以与Sales-admin
和order-entry-admin
角色关联。如果用户映射到超级用户
角色,他们也会继承Sales-admin
和order-entry-admin
角色。 - groups
- 组管理用户组。可以为组定义属性。您还可以将角色映射到组。成为组成员的用户继承该组定义的属性和角色映射。
- realms
- 域管理一组用户、凭据、角色和组。用户从属于并登陆到的域。域彼此隔离,只能管理和验证其控制的用户。
- 客户端
- 客户端是可以请求红帽构建的 Keycloak 验证用户身份的实体。大多数情况下,客户端都是希望使用红帽构建的 Keycloak 来保护自身并提供单点登录解决方案的应用程序和服务。客户端也可以是仅请求身份信息或访问令牌的实体,以便可以在由红帽构建 Keycloak 保护的网络上安全地调用其他服务。
- 客户端适配器
- 客户端适配器是安装到应用程序环境中的插件,以便能够由红帽构建的 Keycloak 进行通信和保护。Red Hat build of Keycloak 对于您可以下载的不同平台,有多个适配器。另外,对于没有涵盖的环境,您还可以获得第三方适配器。
- 同意
- 同意是作为管理员希望用户在客户端参与身份验证过程前为客户端授予权限。用户提供其凭证后,红帽构建的 Keycloak 将会弹出一个屏幕,标识客户端请求登录以及用户请求的身份信息。用户可以决定是否授予请求。
- 客户端范围
-
注册客户端后,您必须为该客户端定义协议映射器和角色范围映射。存储客户端范围通常很有用,通过共享一些常见设置来更轻松地创建新客户端。这也可用于根据
scope
参数的值有条件地请求某些声明或角色。红帽构建的 Keycloak 提供了客户端范围的概念。 - 客户端角色
- 客户端可以定义特定于角色的角色。这基本上是一个专用于客户端的角色命名空间。
- 身份令牌
- 提供用户身份信息的令牌。OpenID Connect 规格的一部分。
- 访问令牌
- 作为 HTTP 请求的一部分提供的令牌,授予所调用的服务的访问权限。这是 OpenID Connect 和 OAuth 2.0 规范的一部分。
- assertion
- 有关用户的信息。这通常与 SAML 身份验证响应中包含的 XML blob 相关,该响应提供了经过身份验证的用户的身份元数据。
- 服务帐户
- 每个客户端都有一个内置服务帐户,允许它获取访问令牌。
- 直接授权
- 客户端通过 REST 调用代表用户获取访问令牌。
- 协议映射程序
- 对于每个客户端,您可以定制将哪些声明和断言存储在 OIDC 令牌或 SAML 断言中。您可以通过创建和配置协议映射程序来为每个客户端执行此操作。
- 会话
- 当用户登录时,会创建一个会话来管理登录会话。会话包含诸如用户登录以及该会话期间参与哪些应用程序时等信息。管理员和用户都可以查看会话信息。
- 用户联邦供应商
- 红帽构建的 Keycloak 可以存储和管理用户。通常,公司已经有存储用户和凭证信息的 LDAP 或 Active Directory 服务。您可以点红帽构建的 Keycloak 从这些外部存储验证凭证,并拉取身份信息。
- 身份供应商
- 身份提供程序(IDP)是一个可以验证用户的服务。红帽构建的 Keycloak 是一个 IDP。
- 身份提供程序联邦
- 红帽构建的 Keycloak 可以被配置为将身份验证委派给一个或多个 IDP。通过 Dan 或 Google+ 进行社交登录是身份提供程序联邦的示例。您还可以 hook 红帽构建的 Keycloak,将身份验证委托给任何其他 OpenID Connect 或 SAML 2.0 IDP。
- 身份提供程序映射器
- 在进行 IDP 联邦时,您可以将传入的令牌和断言映射到用户和会话属性。这有助于您将身份信息从外部 IDP 传播到请求身份验证的客户端。
- 所需操作
-
必要的操作是用户必须在身份验证过程中执行的操作。在这些操作完成之前,用户无法完成身份验证过程。例如,管理员可以调度用户,每月重置其密码。会为所有这些用户设置
更新密码
所需的操作。 - 身份验证流
- 在与系统的某些方面交互时,身份验证流程是用户必须执行的。登录流可以定义需要哪些凭证类型。注册流程定义了用户必须输入的配置集信息,以及是否必须使用 reCAPTCHA 等内容来过滤 bot。凭证重置流定义了用户必须执行的操作,然后才能重置其密码。
- 事件
- 事件是管理员可以查看和 hook 的审计流。
- themes
- 由红帽构建的 Keycloak 提供的每个屏幕都由一个主题支持。themes 定义 HTML 模板和样式表,您可以根据需要覆盖。