Перейти к содержанию

Nextcloud

Настройка Nextcloud для использования animails в качестве службы аутентификации

Ниже описано, как настроить аутентификацию через animails с использованием протокола OAuth2. Мы предполагаем, что вы уже настроили Nextcloud по адресу _cloud.example.com, а ваш animails работает по адресу _mail.example.com. Не имеет значения, запущен ли Nextcloud на другом сервере — вы все равно можете использовать animails для аутентификации.

  1. Войдите в animails под учетной записью администратора.

  2. Выберите «Конфигурация» (Configuration) в выпадающем меню (справа вверху).

  3. Затем на вкладке «Доступ» (Access) выберите пункт «OAuth2».

  4. Прокрутите вниз и нажмите кнопку Добавить клиент OAuth2 (Add OAuth2 client). Укажите в качестве Redirect URI https://cloud.example.com/index.php/apps/sociallogin/custom_oauth2/animails и нажмите Добавить. Сохраните Client ID и Secret для последующего использования.

Информация

В некоторых случаях (включая установки, выполненные с помощью удаленного вспомогательного скрипта animails) для успешного перенаправления необходимо удалить index.php/ из URL: https://cloud.example.com/apps/sociallogin/custom_oauth2/animails

  1. Войдите в Nextcloud под учетной записью администратора.

  2. Нажмите на кнопку в правом верхнем углу и выберите «Приложения» (Apps). Нажмите кнопку поиска на панели инструментов, найдите плагин Social Login и нажмите «Скачать и включить» рядом с ним.

  3. Нажмите на кнопку в правом верхнем углу и выберите «Настройки» (Settings). Прокрутите вниз до раздела «Администрирование» в левой панели и выберите «Social login».

  4. Снимите флажки со следующих пунктов:

  5. «Disable auto create new users» (Запретить автоматическое создание новых пользователей)

  6. «Allow users to connect social logins with their accounts» (Разрешить пользователям привязывать социальные сети к своим аккаунтам)
  7. «Do not prune not available user groups on login» (Не удалять недоступные группы пользователей при входе)
  8. «Automatically create groups if they do not exists» (Автоматически создавать группы, если они не существуют)
  9. «Restrict login for users without mapped groups» (Ограничить вход для пользователей без сопоставленных групп)

  10. Отметьте следующие пункты:

  11. «Prevent creating an account if the email address exists in another account» (Предотвращать создание аккаунта, если email уже существует в другом аккаунте)

  12. «Update user profile every login» (Обновлять профиль пользователя при каждом входе)
  13. «Disable notify admins about new users» (Отключить уведомление администраторов о новых пользователях)

  14. Нажмите кнопку «Save» (Сохранить).

  15. Прокрутите вниз до раздела «Custom OAuth2» и нажмите кнопку «+».

  16. Настройте параметры следующим образом:

  17. Internal name: animails

  18. Title: animails
  19. API Base URL: https://mail.example.com
  20. Authorize URL: https://mail.example.com/oauth/authorize
  21. Token URL: https://mail.example.com/oauth/token
  22. Profile URL: https://mail.example.com/oauth/profile
  23. Logout URL: (оставьте пустым)
  24. Client ID: (полученный на шаге 1)
  25. Client Secret: (полученный на шаге 1)
  26. Scope: profile

Нажмите кнопку «Save» в самом низу страницы.


Если вы ранее использовали Nextcloud с аутентификацией animails через user_external/IMAP, вам необходимо выполнить дополнительные действия, чтобы связать существующие учетные записи пользователей с OAuth2.

  1. Нажмите на кнопку в правом верхнем углу и выберите «Приложения» (Apps). Прокрутите вниз до приложения «External user authentication» и нажмите «Удалить» рядом с ним.

  2. Выполните следующие запросы в базе данных Nextcloud:

    INSERT INTO oc_users (uid, uid_lower) SELECT DISTINCT uid, LOWER(uid) FROM oc_users_external;
    INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("animails-", uid) FROM oc_users_external;
    

Если вы ранее использовали Nextcloud без аутентификации animails, но с теми же именами пользователей, что и в animails, вы также можете связать существующие учетные записи с OAuth2.

  1. Выполните следующий запрос в базе данных Nextcloud:
    INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("animails-", uid) FROM oc_users;