Какие части обнаружения для аутентификации приложений Google не относятся к спецификации open-id? - PullRequest
2 голосов
/ 15 декабря 2011

В частности меня интересует проверка заявленного удостоверения личности.В инструкциях Google говорится о получении метаданных из домена в заявленном идентификаторе, который будет содержать ссылку на документ XRDS.Для приложений Google этот метафайл будет найден в

http://example.com/.well-known/host-meta или https://www.google.com/accounts/o8/.well-known/host-meta?hd=example.com

Мой вопрос заключается в том, являются ли оба эти пути хоста-мета дополнением Google к спецификациитолько последний?Мы пытаемся обновить одну из стандартных библиотек open-id, чтобы должным образом это поддерживать, и мы хотим, чтобы код, который поддерживает дополнения Google, был соответствующим образом отделен.

Кажется, я не могу найти никакой ссылки на ".well-known / host-meta "в файле спецификации open-id.

1 Ответ

1 голос
/ 17 декабря 2011

Сам протокол в основном стандартный - например, /.well-known/host-meta является частью спецификации LRDD для обнаружения. Подвох со Службами Google связан с тем фактом, что лишь немногие домены, если таковые имеются, размещают свою собственную информацию об обнаружении, поэтому попытка найти провайдера для домена, подобного example.com, не удастся. Таким образом, у Google есть альтернативное местоположение для метафайла хоста, о котором нужно знать RP OpenID, которые хотят поддерживать Google Apps.

Кроме того, если вы проверяете подписи в этих внешних файлах XRDS, вам нужно разрешить hosted-id.google.com в качестве действующего подписывающего лица. Обычно вы проверяете, что тема сертификата подписи совпадает с тем, для которого вы открываете домен, но, поскольку Google подписывается от имени целевого домена, необходима дополнительная проверка.

В соответствующей заметке поддержка Служб Google уже добавлена ​​во множество различных библиотек, напрямую или через надстройку:

PHP: php-openid + http://code.google.com/p/php-openid-apps-discovery/

Рубин: ruby-openid + http://code.google.com/p/ruby-openid-apps-discovery/

.NET: DotNetOpenAuth (встроенный)

Java: OpenID4Java + http://code.google.com/p/step2

Python: https://github.com/adieu/python-openid

...