Page 1 of 1

启用通过客户号码登录Keycloak

Posted: Thu Jan 30, 2025 9:01 am
by suchona.kani.z
什么是钥匙斗篷?Keycloak 基于 OAuth 2.0 和 OpenID Connect 标准,支持将中央身份验证和授权层集成到应用程序中。 Keycloak 可以管理其身份经过各种外部身份提供商 (IdP) 验证的帐户,并为多个应用程序提供单点登录 (SSO)。 Keycloak 支持各种身份验证方法,例如用户名/密码、通过 Google、Facebook 和 GitHub 等平台的社交登录、SAML 2.0 等。 Keycloak 还提供定义和使用自定义属性来存储有关帐户的附加信息的功能。

如果您想了解有关 Keycloak 基础知识的更多信息,那么我推荐有关“使用 Keycloak 作为 IAM 系统管理访问权限”的博客文章。

Keycloak 的最大优势之一是其灵活性和可扩展性。这正是这篇博文的用武之地。默认情况下,Keycloak 仅允许通过用户名和/或电子邮件登录。但是,如果这还不够,并且应该使用另一个独特的功能作为登录名,例如电话或客户号码,该怎么办?

基础知识
如果帐户要通过浏览器登录 Keycloak 保护的应用程序,Keycloak 为此提供相应 分时度假业主名单 的“浏览器流程”。此流程呈现一个“用户名密码表单”,其中输入登录数据(标准:用户名或电子邮件和密码),如果成功,则帐户将被转发到经过身份验证的安全应用程序。

如果我们现在想要确保帐户可以使用其他唯一信息(例如客户编号)登录 - 由于项目有此要求,例如由于遗留数据迁移 - 我们必须使用我们的特定信息扩展此“UsernamePasswordForm”逻辑。

使用客户编号创建测试用户
例如,我通过 Keycloak 管理界面提前创建了一个用户,并分配了一个客户编号作为属性:


用户属性查看

经过下面描述的调整和扩展后,我们就可以使用这个客户号码来登录。在实际项目中,该客户编号应在注册时通过 Keycloak 或通过外部系统自动链接到帐户。

“用户名密码表单”的扩展
此表单在浏览器身份验证流程中用于评估用户名/电子邮件登录字段。