电子邮件声明覆盖 keycloak 中的用户名
Email claim overrides username in keycloak
我已经编写了自定义 OIDC 提供程序并将其连接到 keycloak。
通过我的提供商首次登录后,系统会要求用户输入用户名、电子邮件、名字和姓氏 (first-broker-login-flow)。
通常,用户名会预先填写 'sub' 声明中的内容。
但是在发送 'email' 声明时,用户名会预先填写电子邮件。
如何在发送 'email' 声明的同时使用电子邮件以外的其他内容预填充用户名?
到目前为止,我已经尝试发送 'name'、'username' 和 'preferred_username' 声明 - 没有成功。
我发现 IdpReviewProfileAuthenticator 检查 isRegistrationEmailAsUsername()。
所以我在我的领域设置中停用了 "Login with email" - 没有成功。
keycloak 有没有办法不使用 'email' 用户名声明?
我找到了解决方法。在 keycloak 中,我为我的 oidc 提供程序创建了一个 "Username Template Importer"-mapper,并将 template-value 设置为 ${CLAIM.sub}
。
在我看来,这不是最好的解决方案。
但它一直有效,直到我想出更好的方法...
我已经编写了自定义 OIDC 提供程序并将其连接到 keycloak。 通过我的提供商首次登录后,系统会要求用户输入用户名、电子邮件、名字和姓氏 (first-broker-login-flow)。
通常,用户名会预先填写 'sub' 声明中的内容。 但是在发送 'email' 声明时,用户名会预先填写电子邮件。
如何在发送 'email' 声明的同时使用电子邮件以外的其他内容预填充用户名?
到目前为止,我已经尝试发送 'name'、'username' 和 'preferred_username' 声明 - 没有成功。
我发现 IdpReviewProfileAuthenticator 检查 isRegistrationEmailAsUsername()。 所以我在我的领域设置中停用了 "Login with email" - 没有成功。
keycloak 有没有办法不使用 'email' 用户名声明?
我找到了解决方法。在 keycloak 中,我为我的 oidc 提供程序创建了一个 "Username Template Importer"-mapper,并将 template-value 设置为 ${CLAIM.sub}
。
在我看来,这不是最好的解决方案。 但它一直有效,直到我想出更好的方法...