Делегировать OpenID в Google (НЕ в Google Apps)

85

Можно ли использовать мой личный веб-сайт / блог для входа на сайты, использующие openid , и делегирования на мою учетную запись Google?


Хорошо, я искал этот вопрос на SO, но не получил хорошего ответа. Потратив некоторое время, я понял, как это сделать. Я собираюсь ответить на этот вопрос сам, чтобы поделиться им.

Рио
источник
3
Добавьте ответ на свои вопросы и отметьте его как правильный, так каждый будет более настойчиво видеть, какой был ответ
Оскар Челлин,
Спасибо, Оскар, за подсказку! Однако сейчас я не могу отметить ответ как правильный. Он говорит, что мне нужно подождать до завтра.
Рио,
Я переместил ответ из вопроса в ваш ответ, надеюсь, вы не против, но так обычно используется SO.
Том Робинсон
@tjrobinson большое спасибо! :)
Рио
1
Желаю, чтобы вопрос не был изменен, потому что теперь я не понимаю ответа.
Эрик Фальскен 08

Ответы:

98

Теперь можно делегировать OpenID вашей учетной записи Google (не Google Apps) .

Нет, здесь не используется демонстрационный поставщик OpenID, использующий App Engine. Это ваш НАСТОЯЩИЙ аккаунт Google!

Сначала вам нужно включить свои профили Google . Попробуйте просмотреть свой профиль и отредактировать его, должна быть возможность установить URL вашего профиля. У вас есть два варианта: либо использовать имя вашей учетной записи Gmail (без части @ gmail.com) в качестве идентификатора профиля, либо присвоенное вам случайное число. Вам решать, какой из них использовать. В любом случае этот идентификатор - это идентификатор вашего профиля ниже.

Теперь добавьте следующий HTML-код на страницу делегирования:

<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" /> 
<link rel="openid2.local_id" href="https://profiles.google.com/[YOUR PROFILE ID]" /> 

И дело сделано. Теперь попробуйте войти в систему со своим пользовательским URL!

tjrobinson
источник
1
Возможно ли, чтобы у меня была страница делегирования хоста Google, как это делает MyOpenID?
Петр Доброгост
4
Поскольку теперь Google полностью плюсован, URL-адрес profiles.google.com больше не тот, что вы получаете, когда заходите в "мой профиль", однако, если ваш профиль plus.google.com/107217643432815688625/posts, то profiles.google.com/ 107217643432815688625, кажется, все еще работает как ваш openid2.local_id
smoofra
8
В настоящее время с G + нужно поставить:<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud" /> <link rel="openid2.local_id" href="https://plus.google.com/GPLUSID" />
Sebi
1
@ChrisQuenelle По моему опыту, когда вы меняете своего делегата, единственное, что происходит, - это то, что вы перенаправляетесь на новый сайт для аутентификации. Первый сайт по-прежнему знает вашу личность как сайт, с которого вы делегируете полномочия. Так что сменить поставщика аутентификации очень легко.
Илари Каясте
2
@Sebi, я пробовал ваши linkэлементы, но в качестве заявленного удостоверения использовался мой идентификатор Google, а не URL-адрес делегирования *. Кроме того, он спросил меня, какую учетную запись из двух моих текущих зарегистрированных учетных записей я хочу использовать, поэтому, очевидно, plus.google.comэто неправильное имя хоста для использования. profiles.google.comВместо этого я использовал свое имя Gmail, и он работал, как ожидалось. Я не проверял, как использовать profiles.google.com с идентификатором Plus. * SuperUser попросил создать новую учетную запись myname@gmail.comвместо того, чтобы входить в мою существующую учетную запись на основе URL-адреса OpenID, который я ему дал.
clacke
8

Несмотря на принятый ответ, вам не нужно присоединяться к Google+, чтобы использовать Google в качестве делегата, так как у вас уже есть локальный идентификатор, который является частью вашего электронного письма перед @.

Учитывая существующую учетную запись Google some-name@gmail.com, вам просто понадобятся следующие две ссылки в headразделе страницы вашего делегата :

<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud">
<link rel="openid2.local_id" href="https://profiles.google.com/some-name">

Я только что сделал это и убедился, что это работает, не присоединившись к Google+.

Лоуренс Дол
источник