так что я сейчас пытаюсь сделать провайдера OpenID. Я попытался использовать два пакета сервера OpenID на основе Java - Crowd Atlassian и WSO2 Identity Server. Теперь, в моей реализации, безопасность является обязательным условием, что означает использование SSL и наличие OpenID на основе HTTPS. Теперь и для WSO2, и для Crowd большое количество сайтов просто не работают с предоставленными OpenID. Из 20 протестированных сайтов 8 потерпели неудачу с толпой, а 10 - с WSO2. Такая высокая частота отказов не совсем приемлема. Практически каждый сайт, имеющий проблему, утверждает, что он не может найти конечную точку OpenID.
Когда я использовал OpenID без SSL (то есть с использованием OpenID на основе HTTP), сайты неожиданно стали более совместимыми, и только два из них перестали работать. Я использую сертификат от AusCERT, поэтому проблема не должна быть связана с самозаверяющими сертификатами.
Сначала я подумал, что это просто вопрос большого количества RP, которые просто не принимают OpenID на основе HTTPS. Я попытался войти на те же сайты, на которых мне не удавалось, с использованием OpenID на основе HTTPS от Verisign, и это сработало. Рассматривая как WSO2, так и Crowd, я обнаружил, что ни один из них не полностью соответствует спецификации OpenID 2.0, в частности, ни один из них не предоставляет ссылку в заголовке на документ XRDS для обнаружения yadis. Учитывая, что моя проблема заключается в том, что сайты не могут обнаружить конечную точку OpenID по URL-адресу, который я предоставляю, это представляется уместным, за исключением того, что когда я не использую SSL, достаточно обнаружения на основе HTML.
Кто-нибудь знает, где моя проблема на самом деле? Отсутствующий документ XRDS, похоже, должен быть актуальным, но это может быть просто красная сельдь. Исходя из этого, если кто-то знает хорошую альтернативу Crowd или WSO2, которая хорошо документирована, хорошо работает в спецификации и (относительно) проста в настройке, было бы неплохо знать!