чем OpenID отличается между разными входами в систему на одной и той же конечной точке OpenID

StackOverflow https://stackoverflow.com/questions/3248925

Вопрос

Я пытаюсь реализовать собственную конечную точку OpenID на основе SMF учетные записи пользователей.Я основал свой код на phpMyOpenID и некотором коде авторизации SMF.

Пока это работает нормально.Я могу использовать конечную точку для входа в систему / регистрации на любом сайте.Если я не авторизован в SMF, он запросит мой логин, и если этот SMF-логин пройдет успешно, он примет его.

Однако, похоже, что это не отличается между разными SMF-логинами.Тоесть.другой пользователь сообщил, что он пытался использовать конечную точку на сайте X, вошел в систему со своей учетной записью SMF и попал в мою учетную запись пользователя на сайте X (ранее я зарегистрировал конечную точку OpenID на этом сайте).

Я предполагаю, что я должен каким-то образом отправить логин SMF или сделать его каким-то образом уникальным для каждого логина SMF.Поскольку то, что я должен сделать, вероятно, тривиально, я подумал, что спрошу здесь, на SO - возможно, есть еще что-то, что мне нужно исправить.

Код (просто PHP), если вы хотите взглянуть, находится здесь:http://github.com/albertz/smf-openid-server

Или, может быть, просто опишите, что мне нужно сделать, чтобы сделать его уникальным для каждого входа в SMF.

Другой проект, который я планирую, - это OpenID-клиент в многопользовательской игре на C ++.У хостера будет возможность разрешить вход в систему только тем пользователям, которые могут проходить аутентификацию через OpenID.Также я хочу, чтобы было возможно разрешить вход в систему только определенным людям.Каков распространенный способ получить уникальную строку на основе входа в OpenID?В данном случае я подумал о чем-то вроде http://{smf-openid-endpoint}/{smf-user} или http://www.google.de/profiles/{google-user}.Каков канонический способ получить такую строку?

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


Смотрите также связанный с этим вопрос: Является ли URL-адрес идентификатора уникальным?Каковы эти различные термины?

Это было полезно?

Решение

Кажется, первый запрос от конечного пользователя, который я получаю, это checkid_setup проверка идентификатора.В этом ответе я могу указать уникальный URL-адрес (то, что я называю уникальная строка в моем вопросе) в openid.identity поле.

Сейчас я сделал это в своем коде, и, похоже, это работает.Тоесть.Я могу ввести общий URL конечной точки OpenID (например, в SourceForge), и он автоматически расширит его способом, который я предложил в своем вопросе.

Чтобы ответить на мой второй вопрос:Похоже, что URL-адрес с проверенным идентификатором сам по себе уникален, так что это можно было бы использовать.При этом иногда это может выглядеть загадочно (например, в случае Google, это просто некоторый хэш).Таким образом, это может быть использовано внутренне для различия между разными пользователями.Для графического представления я могу показать реальное имя пользователя или адрес электронной почты, который я также должен получить при аутентификации OpenID.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top