Я заметил, что в некоторых из текущих версий NextCloud есть опция меню администратора для добавления клиентов Oauth 2.0. Это дает вам идентификатор клиента и секрет клиента, как и следовало ожидать, а также принимает URL-адрес перенаправления. Теперь вопрос в том, как мне это использовать. Я нашел только одно упоминание о том, что он используется в Интернете, и это этот.
В настоящее время я использую прокси Oauth2 от Bitly с github, который можно найти Вот. Мой веб-сервер - Nginx, и я запускаю NextCloud 12. У меня есть еще одно внутреннее приложение, которое я также размещаю, оно запускается вместе с пустой установкой GitLab, и эта установка GitLab используется как обратный прокси-сервер Oauth 2 для аутентификации до добраться до нашего внутреннего программного обеспечения.
Любая помощь или указатели были бы замечательными, это кажется очень мощной функцией NextCloud, которая, похоже, не имеет поддержки / документации.
Чтобы быть более конкретным, я постараюсь лучше объяснить мою текущую настройку и то, как я бы хотел, чтобы она выглядела.
Текущий:
У меня есть 3 дочерних сайта, если вы:
www.site.com/subsiteA/
www.site.com/subsiteB/
www.site.com/subsiteC/
Пользователь переходит к 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/subsiteA/
www.site.com/subsiteB/
Если вы пойдете в www.site.com/subsiteB/
вы прыгнули через subsiteA
но это все. В этой настройке нет необходимости входить в GitLab перед входом в NextCloud.
Nextcloud добавил раздел про OAuth2 к его документации.
Вам понадобится различная информация как о ваших клиентских приложениях, так и о Nextcloud. Вот самые важные сведения о nextcloud:
SERVER/apps/oauth2/authorize
SERVER/apps/oauth2/api/v1/token
SERVER/ocs/v2.php/cloud/user?format=json
(пример вывода)ocs.data.id
, ocs.data.display-name
, ocs.data.email
и несколько других.Я написал два руководства:
Возможно, это хорошее начало для ваших потребностей в конфигурации. Если вы встретите какие-либо другие хорошие уроки, не забудьте упомянуть их в комментариях!