Я пытаюсь настроить Apache как поставщика OpenID, используя simpleid.
Я следил за инструкции к письму, пока я не добрался до части о "Заявите свой идентификатор".
Вот где я застрял.
Допустим, мой сервер находится в http://example.com и моя простая установка находится на http://example.com/openid, и я установил личность john.doe
и его URL-адрес идентификатора http://example.com/openid/john.doe.
Я могу перейти на простую страницу входа на мой сервер и войти в систему. На панели инструментов отображаются все личные данные, которые я настроил, и указанный выше идентификатор на панели инструментов.
Когда я вхожу в систему, используя Тестовый сайт Open ID Я получаю 2 результата, ни один из них не правильный:
Сценарий 1
Я создаю файл в /openid/john.doe/index.html
так что он будет доступен на http://example.com/openid/john.doe со следующим содержанием:
<html>
<head>
<link rel="openid.server" href="http://example.com/openid/" />
<link rel="openid2.provider" href="http://example.com/openid/" />
</head>
</html>
Когда я пытаюсь войти на тестовый сайт, используя http://example.com/openid/john.doe, Я перенаправляюсь на страницу входа с тестового сайта. Когда я вхожу в систему, используя имя пользователя / пароль, он регистрирует меня, но жалуется, что ID, который я использую, отличается от ожидаемого. Игра закончена.
Сценарий 2
Я удаляю файл по адресу /openid/johndoe/index.html
так что ничего нет http://example.com/openid/john.doe.
Теперь, когда я пытаюсь войти в систему, он регистрирует меня, показывает мне различные атрибуты личности, которую я использовал для входа в систему, а затем выдает следующую ошибку.
OpenID authentication failed: No matching endpoint found after discovering http://example.com/openid/john.doe.
Я не уверен, что делаю здесь не так. Любая помощь будет высоко ценится.
PS: я думаю, это должно быть помечено simpleid
.
Как ни странно, решение заключалось в том, чтобы поместить содержимое HTML в файл с именем /openid/john.doe
а не в /openid/john.doe/index.html
.
Теперь все работает нормально.
Я только что наткнулся на этот вопрос. У меня SimpleID работает со следующим в index.html
который лежит в корне моего домена.
<link rel="openid.server" href="https://openid.example.com/" />
<link rel="openid2.provider" href="https://openid.example.com/" />
Мой OpenID это URL моего сайта, http://example.com
. Если я перейду на этот сайт и Просмотреть источник в моем браузере я вижу две строки в <head>
раздел.
Если я перейду к https://openid.example.com
затем мне предоставляется логин на панели управления SimpleID, и я могу войти в систему с учетными данными, установленными в моем файле идентификации (например, http://example.com
и пароль, который я хешировал в конфиге).
Обратите внимание identity
в этой конфигурации должен быть таким же, как URL-адрес, который загружает страницу, на которой <link>
теги можно найти. Если они не совпадают, это не сработает. Возможно, это была проблема ОП ...
Также следует учитывать, что в последней версии SimpleID указано, что вам нужно использовать https
для сервера SimpleID.
Вы боретесь с недокументированной функцией. Вам не нужно вручную настраивать файл идентификации пользователя или обслуживать его из независимого источника.
Он уже (правильно) обслуживается установкой SimpleID под simpleid_documentroot/ пользователь /имя пользователя (например: https://exampledomain.org/simpleid/user/exampleuser)
Чтобы это работало, вам необходимо включить SIMPLEID_CLEAN_URL в config.inc и настроить Apache для использования механизма перезаписи (образец для обоих включен в примеры файлов конфигурации).
Использование этого URL-адреса для аутентификации решит проблему самым простым и надежным способом.