7.13.2. UserFederationProvider 与 UserStorageProvider


需要注意的是,UserFederationProvider 是一个完整的界面。您在这个接口中实施了每种方法。但是,UserStorageProvider 已将此接口划分为多个您根据需要实施的功能接口。

UserFederationProvider.getUserByUsername ()getUserByEmail () 在新的 SPI 中具有确切的等效点。两者之间的差别在于您如何导入。如果您要继续使用导入策略,您不再调用 KeycloakSession.userStorage ().addUser () 在本地创建用户。而是调用 KeycloakSession.userLocalStorage ().addUser ()userStorage () 方法不再存在。

UserFederationProvider.validateAndProxy () 方法已移至可选的功能接口 ImportedUserValidation。如果您正移植之前的供应商,您需要实施此界面。另请注意,在之前的 SPI 中,每次访问用户时都会调用此方法,即使本地用户位于缓存中。在后面的 SPI 中,只有从本地存储加载本地用户时,才会调用此方法。如果本地用户被缓存,则 ImportedUserValidation.validate () 方法不会被调用。

之后的 SPI 中不再存在 UserFederationProvider.isValid () 方法。

UserFederationProvider 方法 synchronizeRegistrations ()registerUser ()removeUser () 已移至 UserRegistrationProvider 能力接口。这个新界面是可选的,因此如果您的供应商不支持创建和删除用户,则不必实施它。如果您的供应商有切换支持注册新用户,则在新的 SPI 中支持此操作,如果供应商不支持添加用户,则返回 null from UserRegistrationProvider.addUser ()

现在,在 CredentialInputValidatorCredentialInputUpdater 接口中封装了相关的 UserFederationProvider 方法,这也是可选的,具体取决于您支持验证或更新凭证。用于 UserModel 方法中的凭证管理。它们也被移到 CredentialInputValidatorCredentialInputUpdater 接口。请注意,如果没有实现 CredentialInputUpdater 接口,则您的供应商提供的任何凭证都可以在 Red Hat Single Sign-On 存储中本地覆盖。因此,如果您希望您的凭据为只读,实施 CredentialInputUpdater.updateCredential () 方法并返回 ReadOnlyException

UserFederationProvider 查询方法,如 searchByAttributes ()getGroupMembers () 现在封装在一个可选接口 UserQueryProvider 中。如果不实施此接口,则在管理控制台中无法查看用户。您仍然能够登录。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部