Главная
» Как сделать
»
Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.
Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.
Часто пользователи попадают на страницу входа в Keycloak, проходят аутентификацию, а затем возвращаются на экран входа в ownCloud Infinite Scale — или видят ошибку «неизвестный пользователь». Обычно это происходит из-за несоответствия эмитента области, использования веб-клиента, скопированного из другой тестовой версии, или несоответствия утверждения идентификации учетной записи oCIS. Настройте Keycloak как внешнего поставщика OpenID Connect (OIDC) для oCIS, выровняйте эти три значения и убедитесь, что браузер и клиенты могут связаться с поставщиком по протоколу HTTPS.
В этом пошаговом руководстве используются вымышленные хосты: cloud.example.comдля oCIS и sso.example.comдля Keycloak. Конфигурация основана на документации ownCloud Infinite Scale 8.2; перед применением сравните имена с документацией для вашей установленной версии. Это относится к Infinite Scale (oCIS), а не к ownCloud Server 10.
1. Проверьте область действия и конечную точку обнаружения.
Поставщик идентификационных данных (IdP) аутентифицирует пользователей для другой службы. OpenID Connect — это протокол входа в систему, который позволяет oCIS доверять информации для входа и идентификации Keycloak. Область (realm) — это отдельный набор пользователей, клиентов и настроек Keycloak. Выберите область, которая будет обслуживать oCIS, затем укажите ее URL-адрес издателя: для примера области ocisэто https://sso.example.com/realms/ocis.
Перед редактированием oCIS откройте его https://sso.example.com/realms/ocis/.well-known/openid-configurationв браузере. Этот документ обнаружения OpenID Connect описывает конечные точки поставщика. Убедитесь, что его issuerзначение точно соответствует URL-адресу области, включая схему, хост, регистр букв и путь. Эмитентом не должна быть страница администрирования или более длинный URL-адрес обнаружения. Сертификат TLS поставщика должен быть доверенным для браузеров пользователей и для сервера/контейнера oCIS.
В документе, подтверждающем обнаружение, должен быть указан точный эмитент домена, настроенный в oCIS.
Если URL-адрес обнаружения не загружается, сначала устраните проблемы с DNS, маршрутизацией обратного прокси, брандмауэром или сертификатами. Успешный ответ браузера сам по себе не доказывает, что контейнер oCIS может связаться с Keycloak; проверьте также сетевой доступ из сети развертывания сервера. Правила обнаружения OpenID Connect требуют, чтобы возвращаемый эмитент идентифицировал того же поставщика. См. спецификацию обнаружения OpenID Connect .
2. Подключите клиент Keycloak к веб-приложению oCIS.
Используйте в качестве отправной точки поддерживаемый пример развертывания Keycloak в ownCloud и сопоставьте его файл области действия с вашей версией oCIS. Не смешивайте версии: в текущем примере compose используется идентификатор веб-клиента web, в то время как в более старых инструкциях по настройке указано ocis-web. Keycloak и oCIS должны использовать один и тот же идентификатор клиента.
В Keycloak откройте выбранную область и веб-клиент. Сопоставьте процесс входа в систему и идентификатор клиента с примером ownCloud. Установите допустимые URI перенаправления на точные адреса обратного вызова, необходимые для этой области, используя общедоступный HTTPS-хост. Укажите веб-источники только в соответствии с требованиями шаблона. Приведенный ниже символ подстановки является иллюстративным и не является рекомендацией для использования в производственной среде: широкие шаблоны перенаправления могут допускать непредусмотренные адреса назначения. Метки различаются в зависимости от версии Keycloak.
Используйте URI перенаправления и идентификатор клиента из шаблона области, соответствующего вашей версии oCIS; отображаемые значения являются примерами.
Поддерживайте стабильное публичное имя хоста Keycloak. Если TLS заканчивается на обратном прокси-сервере, настройте его публичное имя хоста и заголовки доверенного прокси, иначе перенаправления могут использовать неправильную схему или хост; следуйте рекомендациям по использованию обратного прокси Keycloak . Замените учетные данные администратора демонстрационной версии перед тем, как сделать Keycloak доступным.
3. Направьте oCIS на одного и того же эмитента и клиента.
Добавьте эти переменные в службу oCIS в конфигурации развертывания, сохранив при этом остальные настройки и секреты. В примере используются вымышленные URL-адреса и текущий идентификатор клиента:
OCIS_URL— это публичный адрес oCIS; идентификаторы эмитента и клиента должны точно совпадать с Keycloak. Перезапись включает путь обнаружения, используемый настольными, Android и iOS клиентами. Исключение idpостанавливает встроенного поставщика в развертываниях с внешним IdP; опустите его, если ваша настройка намеренно использует эту службу.
Эти настройки oCIS направляют аутентификацию в Keycloak и перенаправляют обнаружение OIDC к внешнему поставщику.
Примените изменения с помощью стандартного процесса перезапуска развертывания. В Docker Compose запустите команду docker compose up -dиз каталога compose, чтобы воссоздать измененные службы, а затем просмотрите журналы oCIS. Используйте доверенные TLS-сертификаты в производственной среде. В примере ownCloud помечает INSECURE=trueпараметр локального самоподписанного сертификата; удалите его или установите значение false на сервере, доступном из интернета. ownCloud также рекомендует не использовать этот параметр PROXY_OIDC_INSECUREв производственной среде.
4. Определите, как oCIS должен идентифицировать пользователей.
Утверждение — это поле идентификации OIDC, например sub, , preferred_username, или email. oCIS использует его для поиска учетной записи. Для существующих пользователей сопоставьте его с атрибутом, который они уже используют — именем пользователя, адресом электронной почты или идентификатором пользователя. Несоответствие может привести к ошибке «пользователь не найден» после того, как Keycloak примет вход в систему.
Для создания учетных записей при первом входе в систему, задавайте идентификатор PROXY_AUTOPROVISION_ACCOUNTS=trueтолько по мере необходимости и после включения записи в пользовательском интерфейсе oCIS Graph. Идентификатор должен быть уникальным, стабильным и никогда не переназначаться. ownCloud считает subего подходящим; используйте электронную почту или предпочтительное имя пользователя только в том случае, если его нельзя изменить. Убедитесь, что утверждения для создания и поиска согласованы:
Подтверждение: Keycloak возвращает выбранное утверждение в ответе токена или userinfo. При отключенной автоматической настройке новый пользователь не создается при входе в систему; при использовании бэкенда Graph только для чтения настройка может завершиться неудачей. Добавляйте сопоставление групп или ролей только после успешного входа в систему. Перед включением доступа на запись или изменением сопоставлений идентификаторов ознакомьтесь с документацией ownCloud 8.2 по прокси-серверу и автоматической настройке .
Проверьте весь процесс входа в систему.
Откройте oCIS в приватном окне браузера и войдите в систему. Вы должны попасть в домен Keycloak, пройти аутентификацию и вернуться на тот же хост oCIS, что и ожидаемая учетная запись. Сначала протестируйте существующую учетную запись. Если включена функция инициализации, протестируйте одного одобренного нового пользователя и убедитесь, что он создан один раз с нужным именем пользователя. Выйдите из системы и повторите вход.
После успешной аутентификации браузер должен вернуться к интерфейсу облачного хранилища файлов.
Для обнаружения пользователей на настольных компьютерах или мобильных устройствах откройте файл https://cloud.example.com/.well-known/openid-configuration; переадресация должна отображать информацию о поставщике Keycloak. Цикл входа в систему указывает на несоответствие хоста переадресации или схемы. Отклонение пользователя после успешного входа в систему указывает на отсутствие утверждения или несоответствие между PROXY_USER_OIDC_CLAIMи PROXY_USER_CS3_CLAIM.