Вопрос

итак, в настоящее время я пытаюсь создать OpenID-провайдера.Я пробовал использовать два пакета OpenID-сервера на базе Java - Atlassian's Crowd и WSO2 Identity Server.Теперь, в моей реализации, безопасность является обязательной, что означает использование SSL и наличие OpenIDs на основе HTTPS.Теперь и для WSO2, и для Crowd большое количество сайтов просто не работают с предоставленными OpenIDs.Из 20 протестированных сайтов 8 потерпели неудачу с Crowd и 10 потерпели неудачу с WSO2.Такая высокая частота отказов на самом деле неприемлема.Практически каждый сайт, у которого возникла проблема, утверждает, что они не могут найти конечную точку OpenID.

Когда я использовал OpenIDs без SSL (то есть OpenIDs на основе HTTP), внезапно сайты стали намного более совместимыми, и только два из них вышли из строя.Я использую сертификат от AusCERT, поэтому проблема не должна быть связана с самозаверяющими сертификатами.

Сначала я подумал, что это просто вопрос наличия большого количества RPS, которые просто не принимают OpenIDs на основе HTTPS.Однако я попытался войти на те же сайты, на которых у меня не получалось, с OpenID на основе HTTPS от Verisign, и это сработало.Присмотревшись повнимательнее к WSO2 и Crowd, я обнаружил, что ни один из них полностью не соответствует спецификации OpenID 2.0 - в частности, ни один из них не предоставляет ссылку в заголовке на документ XRDS для обнаружения yadis.Учитывая, что моя проблема заключается в том, что сайты не могут обнаружить конечную точку OpenID по указанному мной URL-адресу, это кажется актуальным, за исключением того, что, когда я не использую SSL, достаточно обнаружения на основе HTML.

Есть ли у кого-нибудь какое-нибудь представление о том, в чем на самом деле заключается моя проблема?Пропавший документ XRDS кажется, что он должен быть релевантным, но это может быть просто отвлекающим маневром.Оголяя это, если кто-нибудь знает хорошую альтернативу Crowd или WSO2, которая хорошо документирована, хорошо соответствует спецификации и (относительно) проста в настройке, было бы приятно узнать!

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

Решение

Следует обратить внимание на то, что SSL-сертификаты некоторых поставщиков не подписаны корневыми администраторами, которые считаются авторитетными некоторыми RPS.Убедитесь, что вы получили свой сертификат от того, кому доверяют все RPS.

Если .NET является вариантом для вашего провайдера, ознакомьтесь со свободным и открытым исходным кодом Точка netopenauth библиотека, которую вы можете разместить самостоятельно и которая используется некоторыми крупными операционными системами, такими как MySpace - Мой сайт и netidme.com и Прочее.Внедрение OpenID 2.0 завершено, он поддерживает США.правительственный профиль ICAM OpenID 2.0 использовался для многих тестов совместимости, безопасности и соответствия требованиям и работает как с OpenID 1.1, так и с RPS 2.0, так что у вас, скорее всего, будет хорошая совместимость со многими / всеми RPS.В нем есть куча дополнительные функции безопасности что вы можете просто включить (например, требование HTTPS, как вы сказали, является обязательным требованием).

(Полное раскрытие:Я написал DotNetOpenAuth.)

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