在keycloak中集成了各种社区用户的登录与同步方案,当用户从第三方完成oauth认证之后,回调到keycloak的endpoint地址,在这里将会获取社区用户的信息,完成对数据从社区网站到keycloak网站的同步操作,下面介绍3种同步时的类型,下图是配置同步截图:

各种模块介绍

在Keycloak 14.0.0中,IdentityProviderSyncMode 定义了在同步外部标识提供程序(Identity Provider)数据时的三种不同模式:LEGACY、IMPORT 和 FORCE。这些模式用于控制在与外部身份提供程序(例如LDAP或SAML)同步用户数据时如何处理冲突和同步行为。

  1. LEGACY(传统模式):

    • 在传统模式下,Keycloak 会尝试从外部身份提供程序导入用户,但如果在 Keycloak 中找不到匹配的用户,则会创建新用户。
    • 如果在外部提供程序中删除了用户,Keycloak 不会自动删除相应的用户帐户,而是将其标记为禁用状态。
  2. IMPORT(导入模式):

    • 在导入模式下,Keycloak 会从外部身份提供程序导入用户,但不会创建新用户。它只会更新现有用户的属性,确保与外部提供程序同步。
    • 如果在外部提供程序中删除了用户,Keycloak 不会自动删除用户帐户,而是将其标记为禁用状态。
  3. FORCE(强制模式):

    • 在强制模式下,Keycloak 会强制执行与外部身份提供程序的完全同步。这意味着它会创建新用户,更新现有用户的属性,同时还会禁用或删除在 Keycloak 中找不到的用户。
    • 强制模式确保Keycloak中的用户与外部提供程序中的用户保持完全同步。

这些同步模式的选择取决于你的具体需求和使用情况。如果你需要更多控制,并且不希望创建新用户,可以选择导入模式。如果你需要确保Keycloak与外部提供程序完全同步,包括用户的删除,那么强制模式可能更合适。LEGACY模式在某些情况下可能会导致不同步,因此需要谨慎使用。

微软登录注意事项

我的网站对接了微软三方登录,登录功能已经完成,在获取微软用户信息时,如果这个用户是从微软网站直接注册的,那就没问题的,如果这个用户是通过我的网站跳到微软去注册的,那在登录成功后获取用户信息时,会出现错误Could not obtain user profile from Microsoft Grap,这是什么原因?

像上面看到的,这种是因为用户注册后,邮箱没有验证,导致我们使用微软api获取用户信息时出错,解决方法如下:

作者:仓储大叔,张占岭,
荣誉:微软MVP
QQ:853066980

支付宝扫一扫,为大叔打赏!