7.3. 型号接口


能力 接口 中定义的大多数方法都返回或传递用户表示。这些表示由 org.keycloak.models.UserModel 接口定义。应用开发人员必须实现此界面。它提供了一个映射,外部用户存储和 Red Hat Single Sign-On 使用的用户 metamodel。

package org.keycloak.models;

public interface UserModel extends RoleMapperModel {
    String getId();

    String getUsername();
    void setUsername(String username);

    String getFirstName();
    void setFirstName(String firstName);

    String getLastName();
    void setLastName(String lastName);

    String getEmail();
    void setEmail(String email);
...
}
Copy to Clipboard Toggle word wrap

UserModel 实施提供对用户的读取和更新元数据的访问权限,包括用户名、名称、电子邮件、角色和组映射等内容,以及其他任意属性。

org.keycloak.models 软件包中包含其他模型类,它们代表 Red Hat Single Sign-On metamodel: RealmModelRoleModelGroupModel、clientModel、client Model 等等

7.3.1. 存储 Ids

UserModel 的一个重要方法是 getId () 方法。实施 UserModel 开发人员时,必须了解用户 ID 格式。格式必须是:

"f:" + component id + ":" + external id
Copy to Clipboard Toggle word wrap

Red Hat Single Sign-On 运行时通常必须在其用户 id 中查找用户。用户 ID 包含充足的信息,以便运行时不必查询系统中每一个 UserStorageProvider 来查找用户。

组件 ID 是从 ComponentModel.getId () 返回的 id。在创建提供程序类时,ComponentModel 作为参数传递,因此您可以从那里获取它。外部 ID 是您的提供程序类需要在外部存储中查找用户的信息。这通常是用户名或 uid。例如,它可能类似如下:

f:332a234e31234:wburke
Copy to Clipboard Toggle word wrap

当运行时通过 id 查找时,将解析 id 来获取组件 ID。组件 ID 用于查找最初用于加载用户的 UserStorageProvider。然后,该提供程序会传递 id。该提供程序再次解析 id 来获取外部 ID,它将用于在外部用户存储中查找用户。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat