Назад | Перейти на главную страницу

NextCloud в качестве поставщика Oauth

Я заметил, что в некоторых из текущих версий NextCloud есть опция меню администратора для добавления клиентов Oauth 2.0. Это дает вам идентификатор клиента и секрет клиента, как и следовало ожидать, а также принимает URL-адрес перенаправления. Теперь вопрос в том, как мне это использовать. Я нашел только одно упоминание о том, что он используется в Интернете, и это этот.

В настоящее время я использую прокси Oauth2 от Bitly с github, который можно найти Вот. Мой веб-сервер - Nginx, и я запускаю NextCloud 12. У меня есть еще одно внутреннее приложение, которое я также размещаю, оно запускается вместе с пустой установкой GitLab, и эта установка GitLab используется как обратный прокси-сервер Oauth 2 для аутентификации до добраться до нашего внутреннего программного обеспечения.

Любая помощь или указатели были бы замечательными, это кажется очень мощной функцией NextCloud, которая, похоже, не имеет поддержки / документации.

Чтобы быть более конкретным, я постараюсь лучше объяснить мою текущую настройку и то, как я бы хотел, чтобы она выглядела.

Текущий:

У меня есть 3 дочерних сайта, если вы:

Пользователь переходит к www.site.com/subsiteC и возвращается к логину GitLab по адресу www.site.com/subsiteA/. После успешного входа в систему они возвращаются в www.site.com/subsiteC/.

Аналогично, если вы перейдете к www.site.com/subsiteB/ вы проксируете через www.site.com/subsiteA/однако пользователю все равно придется войти в систему через NextCloud.

(Переход к subsiteA приведет вас прямо в GtiLab)

Идеальная установка:

Если вы пойдете в www.site.com/subsiteB/ вы прыгнули через subsiteA но это все. В этой настройке нет необходимости входить в GitLab перед входом в NextCloud.

Nextcloud добавил раздел про OAuth2 к его документации.

Вам понадобится различная информация как о ваших клиентских приложениях, так и о Nextcloud. Вот самые важные сведения о nextcloud:

  • Конечная точка авторизации: SERVER/apps/oauth2/authorize
  • Конечная точка токена: SERVER/apps/oauth2/api/v1/token
  • URL-адрес профиля доступен как JSON: SERVER/ocs/v2.php/cloud/user?format=json (пример вывода)
  • Информация профиля затем сохраняется в ocs.data.id, ocs.data.display-name, ocs.data.email и несколько других.

Я написал два руководства:

Возможно, это хорошее начало для ваших потребностей в конфигурации. Если вы встретите какие-либо другие хорошие уроки, не забудьте упомянуть их в комментариях!