我通过 Google、Microsoft 等使用 Keycloak 进行身份代理。但 Keycloak 只允许每个用户发送一封电子邮件。因此,用户只能通过社交登录选项之一进行身份验证(如果将 gmail 添加为用户的电子邮件地址,则为 Google 等)。有什么方法可以为每个用户包含多于一封电子邮件,或者有其他解决方法吗?
编辑:(根据评论进行编辑以使场景更加清晰)
在我的场景中,我使用的是包含大量用户的联合用户存储,并且当用户使用 Google、Azure 等登录时,我需要 Keycloak 来访问链接到该用户的所有电子邮件。因为 Keycloak 使用电子邮件作为来自社交登录提供商的身份验证响应的唯一标识符。如果没有所需的电子邮件作为主要电子邮件,Keycloak 将不允许该用户通过社交 IdP 登录
虽然 Keycloak 强调保留唯一的电子邮件,但在某些情况下您可能希望保留辅助电子邮件等。
这可以通过几个步骤来实现:
1. 为用户中的辅助电子邮件添加自定义属性,如下所示:
2. 接下来,在您的客户端中创建属性映射器,如下所示:
当我在上述配置后生成令牌时,新属性在令牌中可用。您可以根据需要在应用程序中使用此属性。
解析 JWT:
| 归档时间: |
|
| 查看次数: |
5388 次 |
| 最近记录: |