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

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


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


person Community    schedule 29.03.2010    source источник
comment
Добавьте ответ на свои вопросы и отметьте его как правильный, так каждый будет более настойчиво видеть, какой был ответ.   -  person Oskar Kjellin    schedule 30.03.2010
comment
Спасибо, Оскар, за подсказку! Однако сейчас я не могу отметить ответ как правильный. Он говорит, что мне нужно подождать до завтра.   -  person Rio    schedule 30.03.2010
comment
Я переместил ответ из вопроса в ваш ответ, надеюсь, вы не возражаете, но так обычно используется SO.   -  person Tom Robinson    schedule 31.03.2010
comment
@tjrobinson большое спасибо! :)   -  person Rio    schedule 31.03.2010
comment
Желаю, чтобы вопрос не был изменен, потому что теперь я не понимаю ответа.   -  person Eric Falsken    schedule 08.03.2012


Ответы (3)


Теперь можно делегировать 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-адресом!

person Community    schedule 30.03.2010
comment
Что делает строка local_id? Что, если бы я хотел включить несколько OpenID для своего собственного доменного имени? Эти теги ‹link› должны идти только по одному URL-адресу, который я использую в качестве своего идентификатора OpenID, верно? - person Eric Falsken; 18.06.2010
comment
Я предполагаю, что вам нужно будет добавить несколько тегов ‹link rel = openid2.local_id ...› на свою страницу, если вы хотите использовать несколько OpenID. Сам не пробовал, но думаю, что это правильное направление. - person Rio; 15.10.2010
comment
Возможно ли, чтобы у меня была страница делегирования хоста Google, как это делает MyOpenID? - person Piotr Dobrogost; 04.11.2011
comment
Поскольку теперь Google полностью плюсован, URL-адрес profiles.google.com больше не тот, что вы получаете, когда заходите в мой профиль, однако, если ваш профиль plus.google.com/107217643432815688625/posts, затем profiles.google. com / 107217643432815688625 по-прежнему работает как ваш openid2.local_id - person smoofra; 06.08.2012
comment
FWIW, при использовании этого метода я получаю следующую ошибку: Error: invalid_request - OpenID auth request includes invalid delegation. Это происходит не постоянно - иногда все еще работает. Сайт с делегатом: daniel.hahler.de - person blueyed; 11.11.2012
comment
В настоящее время в G + необходимо указать: <link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud" /> <link rel="openid2.local_id" href="https://plus.google.com/GPLUSID" /> - person Sebi; 06.02.2013
comment
Итак, если я использую свой собственный домен (fred.com) для входа на сайты и делегирую свои полномочия в другое место (google.com). Есть ли какие-либо файлы cookie или ключи с google.com, которые хранятся на сторонних сайтах? Другими словами, если сторонний сайт каким-то образом запомнит мою аутентификацию, мне нужно будет повторно аутентифицироваться, если я изменю своего делегата на openid.com? В более общем плане, каковы последствия смены того, кому я делегирую полномочия? (Кроме того, я мог бы назначить им другой пароль?) - person Chris Quenelle; 06.04.2013
comment
Просто упомяну, что http://profiles.google.com/[MY_PROFILE_ID], похоже, работает нормально, даже сейчас, после всех плюсов, по крайней мере, когда MY_PROFILE_ID - это настраиваемое значение, которое я определил сам в какой-то момент. - person Ilari Kajaste; 22.09.2013
comment
@ChrisQuenelle По моему опыту, когда вы меняете своего делегата, единственное, что происходит, - это то, что вы перенаправляетесь на новый сайт для аутентификации. Первый сайт по-прежнему знает вашу личность как сайт, с которого вы делегируете полномочия. Так что сменить поставщика аутентификации очень легко. - person Ilari Kajaste; 22.09.2013
comment
@Ilari совершенно прав; Фактически, это заявленная цель делегирования, чтобы изолировать пользователя от изменений в базовом провайдере, чтобы сделать переключение провайдеров полностью прозрачным для сайтов, которые аутентифицируют вас. - person Lawrence Dol; 04.10.2013
comment
Это прекрасная вещь. Я только что прошел через это. Мой OpenID был делегирован с моего личного веб-сайта на MyOpenID лет, но они будут закрыты в ближайшем будущем. Готовясь к этому, я сменил делегацию на Google, и это работает. :) - person Jason Fritcher; 14.11.2013
comment
Примечание. Вам не нужно включать Профили или Плюсифицировать свою учетную запись; простая учетная запись Google - это все, что вам нужно. - person Lawrence Dol; 31.01.2014
comment
Я пробовал описанное выше, используя в качестве теста Stack Overflow в анонимном браузере; но как только я вошел в систему в Google, меня перенаправили обратно в SO, чтобы увидеть сообщение Подтвердите свою новую учетную запись ... Вы собираетесь создать новую учетную запись в Stack Overflow, используя логин из Google (*** **@gmail.com). Это не может быть правдой. - person J-P; 19.02.2014
comment
@Sebi, я пробовал ваши link элементы, но в качестве заявленного удостоверения использовался мой идентификатор Google, а не URL-адрес делегирования *. Кроме того, он спросил меня, какую учетную запись из двух моих текущих учетных записей я хочу использовать, поэтому, очевидно, plus.google.com не является правильным именем хоста для использования. Вместо этого я использовал profiles.google.com со своим именем Gmail, и он работал, как ожидалось. Я не проверял, как использовать profiles.google.com с идентификатором Plus. * SuperUser попросил создать новую учетную запись для [email protected] вместо того, чтобы входить в мою существующую учетную запись на основе предоставленного мной URL-адреса OpenID. - person clacke; 19.02.2014

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

Если у вас есть учетная запись Google [email protected], вам просто понадобятся следующие две ссылки в разделе 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+.

person Lawrence Dol    schedule 03.10.2013

OpenID 2.0 для учетных записей Google больше не используется https://support.google.com/accounts/answer/6206245

person Community    schedule 14.05.2015