Keycloak: как аутентифицировать пользователя с помощью Google - PullRequest
0 голосов
/ 31 марта 2019

Я создаю приложение для iOS и хочу, чтобы пользователи могли войти в систему, используя имя пользователя / пароль, Google и Facebook.

Я успешно реализовал аутентификацию с использованием помощников OAuth2 для потока имени пользователя и пароля. Но я столкнулся с проблемой, когда начал внедрять процесс аутентификации Google / Facebook.

Проблема в том, что я не знаю, как спроектировать этот поток и реализовать его в Keycloak.

Я хочу, чтобы это было так:

  1. Пользователь нажимает кнопку для входа в систему с помощью Google
  2. Запрос идет к Keycloak
  3. Keycloak перенаправляет его в Google
  4. Пользователь подтверждает доступ на странице подсказки Google
  5. Ответ от Google вернулся к Keycloak
  6. Keycloak анализирует токен, получает информацию о пользователе, сопоставляет его с существующим пользователем в собственной базе данных Keycloak.
  7. Keycloak возвращает свой собственный токен (не Google)

Я предполагаю, что это может быть реализовано с помощью протокола Open-ID Connect, но не понимаю, как

Я понял, что это легко сделать, перенаправив пользователя на страницу Keycloak (http://localhost:18080/auth/realms/master/protocol/openid-connect/auth?client_id=<some client id>), где он может ввести свои учетные данные или войти в систему с помощью Google, как я упоминал выше. Но это не отвечает моим потребностям, потому что я хочу делать в стиле iOS (с swift и прозрачным для пользователя) без перенаправлений на Keycloak.

Я хочу найти RESTful способ реализовать это. Пожалуйста, посоветуйте несколько хороших практик для реализации этого.

Спасибо

...