Keycloak 电子邮件声明覆盖KeyClope中的用户名

Keycloak 电子邮件声明覆盖KeyClope中的用户名,keycloak,openid-connect,Keycloak,Openid Connect,我已经编写了一个自定义OIDC提供程序,并将其连接到KeyClope。 在通过my provider首次登录后,用户将被要求输入用户名、电子邮件、名字和姓氏(第一个代理登录流) 通常,用户名的前缀是“sub”声明中的内容。 但在发送“电子邮件”声明时,用户名会在电子邮件前加上前缀 我如何在发送“电子邮件”声明的同时,使用电子邮件以外的内容预先填充用户名 到目前为止,我已经尝试发送一个“名称”、“用户名”和一个“首选用户名”声明-没有成功 我发现IdpReviewProfileAuthentica

我已经编写了一个自定义OIDC提供程序,并将其连接到KeyClope。 在通过my provider首次登录后,用户将被要求输入用户名、电子邮件、名字和姓氏(第一个代理登录流)

通常,用户名的前缀是“sub”声明中的内容。 但在发送“电子邮件”声明时,用户名会在电子邮件前加上前缀

我如何在发送“电子邮件”声明的同时,使用电子邮件以外的内容预先填充用户名

到目前为止,我已经尝试发送一个“名称”、“用户名”和一个“首选用户名”声明-没有成功

我发现IdpReviewProfileAuthenticator检查isRegistrationEmailAsUsername()。 所以我在我的领域设置中停用了“用电子邮件登录”——没有成功


有没有办法让Keyclope不使用“电子邮件”声明作为用户名?

我找到了一个解决办法。在keydove中,我为我的oidc提供程序创建了一个“用户名模板导入器”-映射器,并将模板值设置为
${CLAIM.sub}

依我拙见,这不是最好的解决办法。 但在我找到更好的方法之前它是有效的