Подключите 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.

В JSON-ответе OpenID Connect для определения эмитента отображается адрес https://sso.example.com/realms/ocis в ответе Keycloak.
В документе, подтверждающем обнаружение, должен быть указан точный эмитент домена, настроенный в 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.

В примере настроек клиента Keycloak отображается идентификатор веб-клиента, а также поля для допустимых URI перенаправления и веб-источников.
Используйте URI перенаправления и идентификатор клиента из шаблона области, соответствующего вашей версии oCIS; отображаемые значения являются примерами.

Поддерживайте стабильное публичное имя хоста Keycloak. Если TLS заканчивается на обратном прокси-сервере, настройте его публичное имя хоста и заголовки доверенного прокси, иначе перенаправления могут использовать неправильную схему или хост; следуйте рекомендациям по использованию обратного прокси Keycloak . Замените учетные данные администратора демонстрационной версии перед тем, как сделать Keycloak доступным.

3. Направьте oCIS на одного и того же эмитента и клиента.

Добавьте эти переменные в службу oCIS в конфигурации развертывания, сохранив при этом остальные настройки и секреты. В примере используются вымышленные URL-адреса и текущий идентификатор клиента:

OCIS_URL=https://cloud.example.com
OCIS_OIDC_ISSUER=https://sso.example.com/realms/ocis
WEB_OIDC_CLIENT_ID=web
PROXY_OIDC_REWRITE_WELLKNOWN=true
OCIS_EXCLUDE_RUN_SERVICES=idp

OCIS_URL— это публичный адрес oCIS; идентификаторы эмитента и клиента должны точно совпадать с Keycloak. Перезапись включает путь обнаружения, используемый настольными, Android и iOS клиентами. Исключение idpостанавливает встроенного поставщика в развертываниях с внешним IdP; опустите его, если ваша настройка намеренно использует эту службу.

Редактор конфигурации отображает OCIS_URL, OCIS_OIDC_ISSUER, PROXY_OIDC_REWRITE_WELLKNOWN и OCIS_EXCLUDE_RUN_SERVICES.
Эти настройки 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его подходящим; используйте электронную почту или предпочтительное имя пользователя только в том случае, если его нельзя изменить. Убедитесь, что утверждения для создания и поиска согласованы:

PROXY_AUTOPROVISION_ACCOUNTS=true
PROXY_AUTOPROVISION_CLAIM_USERNAME=sub
PROXY_USER_OIDC_CLAIM=sub
PROXY_USER_CS3_CLAIM=username

Подтверждение: 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.

Оставить комментарий

Безопасно удалите предупреждение ownCloud Apache .htaccess.

Безопасно удалите предупреждение ownCloud Apache .htaccess.

Установите параметр AllowOverride All только для корневого каталога веб-сервера ownCloud, проверьте активный виртуальный хост Apache и безопасно перезагрузите систему, чтобы восстановить правила .htaccess.

Настройте систему корпоративного аудита ownCloud и проверьте журналы.

Включите приложение Enterprise Auditing от ownCloud, перенаправьте события admin_audit в защищенный файл журнала и убедитесь, что записываются реальные действия пользователей.

Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.

Подключите ownCloud Infinite Scale к Keycloak с помощью OIDC.

Align Keycloak, эмитент домена, веб-клиент и пользовательское приложение, как утверждается, позволяют ownCloud Infinite Scale надежно авторизовывать пользователей как в веб-, так и в мобильных приложениях.

Переместите файлы ownCloud к новому владельцу без потери прав доступа.

Переносите собственные файлы и исходящие общие ресурсы с помощью команды occ в ownCloud, знайте, что остается после удаления, и проверяйте доступ перед удалением старой учетной записи.

Ускорьте выполнение запросов ownCloud 10, безопасно управляя индексами.

Узнайте, когда индексы базы данных ownCloud 10 нуждаются в обновлении, как безопасно применять поддерживаемые обновления схемы и когда оптимизация запросов или изменение базы данных являются лучшим решением.

Подключение SMB/CIFS-ресурса в ownCloud без использования Linux для монтирования.

Подключите сетевую папку Windows или Samba к ownCloud через внешнее хранилище, проверьте учетные данные и безопасно устраните неполадки, связанные с недоступными папками.

Безопасное удаление версий файлов ownCloud с помощью команды occ.

Безопасное удаление версий файлов ownCloud с помощью команды occ.

Удалите все сохраненные версии файлов ownCloud Server Classic для одной учетной записи или всех пользователей и различайте полную очистку и истечение срока действия на основе срока хранения.

Подключение к мобильному приложению ownCloud отклонено? Проверьте URL-адрес и доступность.

Подключение к мобильному приложению ownCloud отклонено? Проверьте URL-адрес и доступность.

Чтобы отследить отказ в подключении к мобильному приложению ownCloud, проверьте URL-адрес сервера, сеть телефона, конечную точку HTTPS и журналы сервера в правильной последовательности.

Надежное выполнение фоновых задач ownCloud с помощью таймера Systemd.

Замените запуск заданий по требованию таймером systemd, который запускает поддерживаемую ownCloud команду occ system:cron каждые 15 минут.

Восстановление синхронизации ownCloud WebDAV путем поиска поврежденного маршрута.

Проследите за выполнением WebDAV-запроса через Apache, Nginx или обратный прокси-сервер, а затем подтвердите работоспособность синхронизации ownCloud с помощью аутентифицированного теста PROPFIND.