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