поэтому я сейчас пытаюсь создать поставщика 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, которая хорошо документирована, хорошо работает согласно спецификации и (относительно) легко настраивается, было бы неплохо узнать!