Nextcloud
Настройка Nextcloud для использования animails в качестве службы аутентификации¶
Ниже описано, как настроить аутентификацию через animails с использованием протокола OAuth2. Мы предполагаем, что вы уже настроили Nextcloud по адресу _cloud.example.com, а ваш animails работает по адресу _mail.example.com. Не имеет значения, запущен ли Nextcloud на другом сервере — вы все равно можете использовать animails для аутентификации.
-
Войдите в animails под учетной записью администратора.
-
Выберите «Конфигурация» (Configuration) в выпадающем меню (справа вверху).
-
Затем на вкладке «Доступ» (Access) выберите пункт «OAuth2».
-
Прокрутите вниз и нажмите кнопку Добавить клиент 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
-
Войдите в Nextcloud под учетной записью администратора.
-
Нажмите на кнопку в правом верхнем углу и выберите «Приложения» (Apps). Нажмите кнопку поиска на панели инструментов, найдите плагин Social Login и нажмите «Скачать и включить» рядом с ним.
-
Нажмите на кнопку в правом верхнем углу и выберите «Настройки» (Settings). Прокрутите вниз до раздела «Администрирование» в левой панели и выберите «Social login».
-
Снимите флажки со следующих пунктов:
-
«Disable auto create new users» (Запретить автоматическое создание новых пользователей)
- «Allow users to connect social logins with their accounts» (Разрешить пользователям привязывать социальные сети к своим аккаунтам)
- «Do not prune not available user groups on login» (Не удалять недоступные группы пользователей при входе)
- «Automatically create groups if they do not exists» (Автоматически создавать группы, если они не существуют)
-
«Restrict login for users without mapped groups» (Ограничить вход для пользователей без сопоставленных групп)
-
Отметьте следующие пункты:
-
«Prevent creating an account if the email address exists in another account» (Предотвращать создание аккаунта, если email уже существует в другом аккаунте)
- «Update user profile every login» (Обновлять профиль пользователя при каждом входе)
-
«Disable notify admins about new users» (Отключить уведомление администраторов о новых пользователях)
-
Нажмите кнопку «Save» (Сохранить).
-
Прокрутите вниз до раздела «Custom OAuth2» и нажмите кнопку «+».
-
Настройте параметры следующим образом:
-
Internal name:
animails - Title:
animails - API Base URL:
https://mail.example.com - Authorize URL:
https://mail.example.com/oauth/authorize - Token URL:
https://mail.example.com/oauth/token - Profile URL:
https://mail.example.com/oauth/profile - Logout URL: (оставьте пустым)
- Client ID: (полученный на шаге 1)
- Client Secret: (полученный на шаге 1)
- Scope:
profile
Нажмите кнопку «Save» в самом низу страницы.
Если вы ранее использовали Nextcloud с аутентификацией animails через user_external/IMAP, вам необходимо выполнить дополнительные действия, чтобы связать существующие учетные записи пользователей с OAuth2.
-
Нажмите на кнопку в правом верхнем углу и выберите «Приложения» (Apps). Прокрутите вниз до приложения «External user authentication» и нажмите «Удалить» рядом с ним.
-
Выполните следующие запросы в базе данных 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.
- Выполните следующий запрос в базе данных Nextcloud:
INSERT INTO oc_sociallogin_connect (uid, identifier) SELECT DISTINCT uid, CONCAT("animails-", uid) FROM oc_users;