В спецификациях OpenID это говорит:
- Идентификатор:
Идентификатором является просто URL. Целый поток Протокола аутентификации OpenID о доказательстве, что Конечный пользователь, владеет, URL.
- Требуемый идентификатор:
Идентификатор, что Конечный пользователь говорит, что они владеют, хотя это еще не было проверено Потребителем.
- Проверенный идентификатор:
Идентификатор, что Конечный пользователь доказал Потребителю, что они владеют.
- Поставщик идентификационных данных:
Также названный "IdP" или "Сервером". Это - Сервер аутентификации OpenID, с которым Потребитель связывается для криптографического доказательства, что Конечный пользователь владеет Требуемым Идентификатором. То, как Конечный пользователь проходит проверку подлинности их Поставщику Идентификационных данных, за пределами объема OpenID Authenticaiton.
Действительно ли URL идентификатора уникален? Что точно это?
Если это не уникально, там что-либо уникальное так, чтобы потребитель мог разойтись между различными пользователями в том же URL конечной точки OpenID?
Каково различие между IdP и URL идентификатора?
В других местах я считал термин "URL конечной точки OpenID".
Давайте возьмем, Гуглит OpenID как пример. Когда некоторый сайт просит у меня вход в систему OpenID, я использую OpenID URL https://www.google.com/accounts/o8/id
. Это - URL идентификатора? Если так, это ясно не уникально. Часто, когда я перепроверяю в своих настройках учетной записи на том сайте о моем входе в систему OpenID, он не показывает, что ввел URL, но он расширил его так или иначе как https://www.google.com/accounts/o8/id?id=AltOawk...
. Тот URL теперь кажется довольно уникальным.
Из чего теперь цель https://www.google.com/accounts/o8/id
? Это - URL конечной точки OpenID? Или это - IdP URL (если это - что-то другое)?
И какова цель https://www.google.com/accounts/o8/id?id=AltOawk...
? Это действительно уникально и всегда то же для моей учетной записи Google? Так, чтобы URL был тем, что идентифицирует меня?
Почему они не использовали https://www.google.com/accounts/o8/id?u={google-username}
вместо этого загадочного ...?id=AltOawk...
?
Каков URL идентификатора в случае Google?
Каков URL конечной точки OpenID? (Каков IdP URL?)
Причина, которую я спрашиваю, состоит в том, потому что я пытаюсь реализовать свою собственную конечную точку OpenID.
В моей реализации конечной точки OpenID я имею точно, что проблема, что она не может отличаться между различными пользователями. Потребительский веб-сайт просто берет всех пользователей на что конечная точка OpenID как то же. Конечно, это всегда - тот же OpenID URL, но это также имеет место для, Гуглит OpenID.
В моей текущей реализации, когда я включаю некоторую трассировку отладки, первый запрос, я добираюсь, режим checkid_setup. В спецификациях это говорит, что я получаю Требуемый Идентификатор здесь. Из-за того, что я ввел в потребительский сайт (и моя трассировка отладки говорит то же), который является "общим" URL (URL конечной точки OpenID). Т.е. это не уникальный URL.
http://{endpoint-url}?u={endpoint-username}
.)Существуют также условия "Сервер OpenID" (URL) и "Делегат OpenID" (URL).
Как эти условия касаются других условий выше? Все равно как URL конечной точки OpenID?
Каковы "Идентификационные данные OpenID"? То же как URL идентификатора OpenID?
См. также связанный вопрос: Как OpenID расходится между различными логинами в той же конечной точке OpenID?
(Вопрос о Meta: я должен, возможно, разделить это в большом количестве независимого политика ТАК вопросы? Я боюсь, что не могу получить ответы для всех своих вопросов иначе.)
Хорошо, поскольку я только что исправил свою реализацию SMF OpenID endpoint (читайте подробности о некоторых очень связанных проблемах, которые у меня были здесь), где я сделал несколько предположений об этих отношениях. Конечно, это не доказывает их правильность (поэтому, пожалуйста, поправьте меня). Вот они:
URL идентификатора = URL конечной точки OpenID = IdP
Конечная точка OpenID не уникальна. Она одинакова для всех конечных пользователей этой конечной точки.
URL верифицированного идентификатора = identity
URL верифицированного идентификатора уникален. Он связан с учетной записью пользователя конечной точки.
https://www.google.com/accounts/o8/id
- URL конечной точки Google OpenID.
https://www.google.com/accounts/o8/id?id=AltOawk...
- это URL-адрес верифицированного идентификатора Google OpenID.
Хэш, который содержит URL идентификатора Google OpenID, также связан с областью OpenID (пространством имен потребительского домена, где этот идентификатор OpenID остается действительным). Это одна из причин, по которой не следует указывать только имя пользователя.
О том, как предоставить URL-адрес уникального проверенного идентификатора, смотрите здесь.
Все же некоторые вещи остаются для меня неясными:
По каким еще причинам Google использует хэшированный идентификатор; он мог бы также использовать id?u={username}&oidrealm={...}
.
Зачем вообще нужен такой OpenID realm?
В чем разница между URL идентификатора и URL заявленного идентификатора?