我已经编写了一个自定义的OIDC提供程序,并将其连接到密钥斗篷。 通过我的提供商首次登录后,要求用户输入用户名,电子邮件,名字和姓氏(first-broker-login-flow)。
通常,用户名会预先填写“ sub”声明中的内容。 但是,在发送“电子邮件”声明时,用户名会预先填充电子邮件。
如何在发送电子邮件声明的同时,用电子邮件以外的其他方式预填充用户名?
到目前为止,我已经尝试发送“名称”,“用户名”和“ preferred_username”声明-没有成功。
我发现IdpReviewProfileAuthenticator检查isRegistrationEmailAsUsername()。 因此,我已在我的领域设置中停用了“通过电子邮件登录”-没有成功。
有什么办法可以让密钥隐藏不使用用户名的“电子邮件”声明?
答案 0 :(得分:0)
我想出了一个解决方法。在keycloak中,我为我的oidc提供程序创建了一个“用户名模板导入器”映射器,并将template-value设置为${CLAIM.sub}
。
在我的拙见中,这不是最好的解决方案。 但这一直有效,直到我想出一种更好的方法...