Создание провайдера OpenID с SSL

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

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

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

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


person Jacob Bellamy    schedule 20.12.2009    source источник


Ответы (1)


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

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

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

person Andrew Arnott    schedule 22.12.2009