В спецификациях OpenID написано:
Идентификатор - это просто URL. Весь поток протокола аутентификации OpenID посвящен доказательству того, что конечный пользователь является владельцем URL-адреса.
- заявленный идентификатор:
Идентификатор, который, по словам Конечного пользователя, принадлежит ему, хотя еще не был проверен Потребителем.
- Проверенный идентификатор:
Идентификатор, который Конечный пользователь доказал Потребителю, что он владеет.
Также называется "IdP" или "Сервер". Это сервер аутентификации OpenID, к которому потребитель обращается за криптографическим подтверждением того, что конечный пользователь владеет заявленным идентификатором.
То, как Конечный пользователь аутентифицируется у своего Поставщика удостоверений, выходит за рамки OpenID Authenticaiton.
Является ли идентификатор URL уникальным? Что именно это?
Если это не уникально, есть ли что-то уникальное, чтобы потребитель мог отличаться у разных пользователей по одному и тому же URL конечной точки OpenID?
В чем разница между IdP и идентификатором URL?
В других местах я прочитал термин «URL-адрес конечной точки OpenID».
- Является ли URL-адрес конечной точки OpenID таким же, как IdP? То есть IdP - это тоже URL?
Давайте возьмем в качестве примера Googles OpenID. Когда какой-то сайт запрашивает у меня OpenID логин, я использую OpenID URL https://www.google.com/accounts/o8/id
. Это идентификатор URL? Если так, это явно не уникально. Часто, когда я возвращаюсь в настройках своей учетной записи на этом сайте для входа в OpenID, он не показывает введенный URL, но расширяет его, например, https://www.google.com/accounts/o8/id?id=AltOawk...
. Этот URL теперь кажется уникальным.
Причина, по которой я спрашиваю, заключается в том, что я пытаюсь реализовать свою собственную конечную точку OpenID.
- Является ли URL-адрес конечной точки OpenID идентичным URL-адресу идентификатора?
В моей реализации конечной точки OpenID у меня есть именно та проблема, что она не может отличаться у разных пользователей. На потребительском веб-сайте все пользователи в этой конечной точке OpenID одинаковы. Конечно, это всегда один и тот же OpenID URL, но это также относится и к Googles OpenID.
- Если конечный пользователь использует этот «общий» URL, как я могу перенаправить / переслать его в моей реализации конечной точки OpenID на «конкретный» / уникальный (идентификатор?) URL? Или как сделать так, чтобы он различал разных конечных пользователей по одному и тому же URL OpenID?
В моей текущей реализации, когда я включаю некоторую трассировку отладки, первый запрос, который я получаю, это режим checkid_setup. В спецификациях говорится, что я получаю заявленный идентификатор здесь. Из-за того, что я ввел на потребительском сайте (и моя трассировка отладки говорит то же самое), это «общий» URL (URL-адрес конечной точки OpenID). То есть это не уникальный URL.
- Должен ли я сделать перенаправление в этот момент сейчас? Спецификации ничего не говорят об этом. Где мне указать «конкретный» URL? (В моем случае это URL
http://{endpoint-url}?u={endpoint-username}
.)
Существуют также термины «сервер OpenID» (URL) и «делегат OpenID» (URL).
Как эти термины соотносятся с другими терминами выше? Все так же, как URL конечной точки OpenID?
Что такое «идентификатор OpenID»?То же, что и URL-адрес идентификатора OpenID?
См. Также связанный вопрос: Как OpenID отличается между разными именами входа на одной конечной точке OpenID?
(Мета вопрос: Должен ли я разделить это на множество независимых SO вопросов? Боюсь, что иначе я не смогу получить ответы на все мои вопросы.)