Как перенести пользователей Yahoo из OpenId в OAuth
Я использую App Engine / Java.
Мне нужно перенести пользователей Yahoo с OpenID 2.0 на OAuth 2.0 (OpenID Connect), поскольку поддержка проверяющей стороны OpenID 2.0 для входа в систему с учетными записями OpenID 2.0 в App Engine будет отключена.
Для моих пользователей Yahoo у меня есть следующая информация в моем хранилище данных:
- федеративная идентификация: https://me.yahoo.com/a/...
- адрес электронной почты
Когда я выполняю вход в Yahoo с помощью OAuth, мне нужно использовать информацию, предоставленную процессом OAuth, для идентификации существующего пользователя в моем хранилище данных. Однако процесс Yahoo OAuth не предоставляет открытый идентификатор (Yahoo не поддерживает OpenId Connect) и не имеет адреса электронной почты.
Итак, как я могу перенести существующих пользователей Yahoo из OpenId в OAuth? Какова общая информация между обоими механизмами для создания связи и выполнения миграции?
Примечание. Это хорошо работает при входе в Google, поскольку Google поддерживает OpenId Connect. В этом случае OpenId Connect / open-id == OpenId / объединенная идентификация, которая позволяет мигрировать пользователей.
1 ответ
Одним из возможных подходов является переход на Google Identity Toolkit, который предлагает:
- особенности обработки федеративного входа в систему для конкретного провайдера
- способ постепенной миграции пользователей, аутентифицированных конкретным поставщиком, из существующего метода в метод GIT, см. раздел "Миграция существующего сайта за 5 шагов".
Единственный недостаток, который я вижу, - это ограниченное количество провайдеров, которые поддерживает GIT (немного подсластило поддержка аутентификации на основе паролей). Не проблема, если в списке поддерживаемых есть такие провайдеры, как Yahoo.