Подтвердить что ты не робот

Делегирование OpenID Connect с Google теперь, когда они отвергают своего провайдера OpenID2?

В течение многих лет я использовал делегацию OpenID для входа в Qaru (среди других сайтов) с использованием моего собственного URI в качестве OpenID, но с Google обработкой аутентификации. Я использую метод, описанный в этом вопросе; поэтому мой пользовательский OpenID http://tupelo-schneck.org/robert разрешает HTML-страницу, содержащую это:

<link href="#" onclick="location.href='https://www.google.com/accounts/o8/ud'; return false;" rel="openid2.provider" />
<link href="#" onclick="location.href='https://www.google.com/profiles/schneck'; return false;" rel="openid2.local_id" />  

Теперь, однако, я зашел в Stack Overflow, и Google сказал мне " Важное уведомление: OpenID2 для аккаунтов Google уходит 20 апреля 2015 года. Подробнее.... Эта страница объясняет, что Google устарел OpenID 2.0, и разработчики должны перенести свои приложения в OpenID Connect.

Можно ли продолжать использовать пользовательский URI для входа в OpenID, но делегировать поставщику Google OpenID Connect для аутентификации? Как?

4b9b3361

Ответ 1

OpenID Connect поддерживает только обнаружение, которое предназначено для находить вашего провайдера на основе некоторого намека, который вы ему даете (электронная почта, учетная запись, URL-адрес, домен и т.д.); он не даст вам постоянный идентификатор, для которого вы можете делегировать аутентификацию для настраиваемого поставщика по вашему выбору.

Итак, если вы хотите использовать пользовательский URI для поиска своего провайдера, вы можете использовать подход, который дал Нэт (за исключением последнего бита, который Google не делает и не может сделать, и предполагая, что SO поддерживает обнаружение).

Но если вы хотите истинное делегирование, чтобы RP могли использовать идентификатор, возвращаемый OP, который является постоянным для разных OP, которые вы делегируете, тогда вы не можете.

Для StackOverflow вам, вероятно, не нужен ни один из них: SO использует свой собственный первичный идентификатор/учетную запись, и вы можете связать с ним несколько учетных записей, включая Google. Только если бы SO использовал ваш пользовательский URI в качестве основного идентификатора, у вас возникла бы проблема. В этом случае нет проблем, и вы можете:

  • используйте кнопку входа в систему Google или
  • введите свой пользовательский URI в поле ввода URL OpenID, предполагая, что вы и реализовали Discovery

Но и 1. и 2. действительно дают тот же результат: они узнают, что Google - это то, где вы хотите аутентифицироваться.

Ответ 2

Предполагая, что вы хотите использовать свой собственный домен в качестве предоставленного пользователем идентификатора входа -

Кроме того, если StackOverflow поддерживает OpenID Connect Migration 1.0 и предположив, что Google возвращает ваш пользовательский домен require_id в ответе на миграцию, выполните следующие действия:

будет сглаживать ваш путь.

Ответ 3

Переключение поставщика OpenID с Google на Yahoo! на вашем сайте может работать для вас, пока Yahoo! останавливает его функцию OpenID 2.0.

Однако, если вы в порядке для предложения Nat 1st, это будет более стабильным способом для более длительного времени.