OpenID простая регистрация (sreg) по сравнению с Exchange атрибута (топор)

Каковы отношения между расширениями топора и OpenID sreg? Как полагающаяся сторона знает который запросить, или оба?

10
задан Jan B. Kjeldsen 25 May 2011 в 11:22
поделиться

1 ответ

sreg был написан как простейшая вещь, которая могла бы работать, и имеет очень ограниченный набор доступных полей. Но поскольку это включает псевдоним , адрес электронной почты и полное имя , часто это все, что вам нужно.

Attribute Exchange гораздо более расширяемый и функциональный, хотя я подозреваю, что на практике такие функции, как update_url и запрос сохранения, не получили широкого распространения.

Что касается информации о том, что запрашивать: Теоретически, какие расширения поддерживает провайдер, задокументировано в документе XRDS, доступном на этапе обнаружения, как указано в разделе спецификации Расширения . Если вы используете python-openid (или, возможно, одну из других библиотек в OpenID Enabled ), вы можете запросить это через что-то вроде

auth_req = consumer.begin('http://example.com/joe')

from openid.extensions import sreg

if sreg.supportsSreg(auth_req.endpoint):
    sreg_request = sreg.SRegRequest(required=['nickname','email'])
    auth_req.addExtension(sreg_request)
else:
    # maybe AX, maybe something else...

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

Кроме того, даже если вы получаете XRDS, рекламирующий расширение AX, насколько мне известно, он не сообщает вам, какие атрибуты поддерживает провайдер (т.е. какую схему AX).

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

17
ответ дан 3 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: