Можно ли добавить несколько писем для каждого пользователя в Keycloak? - PullRequest
0 голосов
/ 07 ноября 2018

Я использую Keycloak для Identity Brokering через Google, Microsoft и т. Д. Но Keycloak допускает только одно электронное письмо на пользователя. Таким образом, пользователь может проходить аутентификацию только через один из вариантов входа в социальную сеть (Google, если в качестве адреса электронной почты пользователя добавлено gmail и т. Д.). Есть ли способ включить более одного электронного письма для каждого пользователя или любой другой обходной путь?

РЕДАКТИРОВАТЬ: (Редактирование на основе комментариев, чтобы сделать сценарий более ясным)

В моем сценарии я использую федеративное хранилище пользователей, которое содержит большое количество пользователей, и мне нужен Keycloak для доступа ко всем электронным письмам, связанным с пользователем, когда этот пользователь входит в систему с помощью Google, Azure и т. Д. потому что Keycloak использует электронную почту в качестве уникального идентификатора для ответа аутентификации от поставщика социальной регистрации. Не имея требуемой электронной почты в качестве основной электронной почты, Keycloak не позволит этому пользователю войти в систему через социальный IdP

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я выяснил, что лучший способ справиться с этим - через провайдера пользовательских пользователей (федеративное хранилище пользователей). Несмотря на то, что мы не можем добавить несколько электронных писем для каждого пользователя через консоль администратора Keycloak, мы можем написать провайдера пользователей таким образом, чтобы он мог получать все электронные письма, связанные с пользователем, из нашей базы данных и назначать их атрибуту электронной почты каждого пользователь. Как только это будет сделано, все электронные письма появятся и на консоли администратора.

Чтобы социальный вход в систему распознавал эти электронные письма, мы должны собрать все электронные письма, связанные с пользователем в поставщике, в массив и выполнить итерацию по нему до завершения аутентификации. Это поможет создать ссылку на социальный вход в систему для пользователя через поток аутентификации First Login Broker.

Это грубый способ приблизиться к этому, но тем не менее он работает!

0 голосов
/ 15 ноября 2018

Хотя Keycloak делает акцент на сохранении уникального электронного письма, но есть определенные сценарии, когда вы можете захотеть сохранить, скажем, вторичное электронное письмо.

Этого можно достичь за пару шагов:

1. Добавьте пользовательский атрибут для дополнительной электронной почты у пользователя, например:

enter image description here

2. Далее, в вашем клиенте создайте атрибут атрибута так:

enter image description here

Когда я сгенерировал токен после описанной выше конфигурации, новый атрибут был доступен в токене. Вы можете использовать этот атрибут в своем приложении по своему желанию.

Разобрано JWT:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...