OpenID Направленный Идентичность / Выбор Идентификатора в PHP - PullRequest
1 голос
/ 12 января 2010

Я пытаюсь реализовать сервер OpenID в PHP, который поддерживает выбор идентификатора (некоторые называют это направленной идентификацией, что на самом деле является более конкретным случаем выбора идентификатора). То есть пользователь может ввести общий URI в качестве своего идентификатора OpenID, войти в систему и выбрать, какой идентификатор должен возвращать потребителю OpenID.

Например, если пользователь вводит mysite.com в качестве идентификатора, после входа в систему ему будет предложено вернуть один из двух идентификаторов потребителю OpenID (возможно, mysite.com / myusername или mysite.com / anon-ad83f38c98b98 ).

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

В любом случае, я не смог найти хорошего учебника о том, как реализовать эту часть спецификации OpenID в PHP. Фактически, большинство поисков привело меня к оставшимся без ответа вопросам на форумах или даже о переполнении стека. Кто-нибудь знает библиотеку PHP, которая может обрабатывать выбор идентификатора или направленной идентичности? Если да, есть ли какие-нибудь учебники, объясняющие, как это настроить? Я играл с несколькими библиотеками, которые так или иначе не упоминают об этом, но я пока не смог заставить его работать.

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 19 января 2010

Документация бесполезна. Вы смотрели библиотеки Janrain? У них есть потребитель, который я успешно реализовал, а также серверный код, который, как я полагаю, реализуем. Взгляните на файлы Yadis \ XRIRes и Yadis \ XRI, возможно, вам придется перепроектировать их код - это то, что я должен был сделать, чтобы выяснить потребителя. В настоящее время я изучаю реализацию сервера, но пока не могу найти ничего стоящего.

http://openidenabled.com/files/php-openid/docs/2.1.3/OpenID/Auth_Yadis_Yadis.html

0 голосов
/ 22 января 2010

php-openid v2 определенно способен. И действительно, то, как вы взаимодействуете с библиотекой, довольно мало меняется, когда вы добавляете выбор идентификатора. Когда вы получите Auth_OpenID_ChecKIDRequest, вы можете проверить его метод idSelect, чтобы увидеть, подходит ли он для выбора идентификатора. Затем передайте выбранный идентификатор на Auth_OpenID_ChecKIDRequest.answer().

Единственный другой бит - это убедиться, что вы рекламируете то, что спецификация называет «элементом идентификатора OP» на mysite.com / . Если вы уже обслуживаете страницы XRDS для своих идентификаторов пользователей, это работает точно так же, только с другим типом URL. Если это не так (у вас есть только обнаружение на основе HTML с элементами link), вы, возможно, захотите взглянуть на HTTP-заголовки myopenid для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...