NextCloud 作为 Oauth 提供商

NextCloud 作为 Oauth 提供商

我注意到,在当前版本的 NextCloud 中,有一个用于添加 Oauth 2.0 客户端的管理菜单选项。这样做会为您提供一个客户端 ID 和一个客户端密钥,正如您所期望的那样,并接收一个重定向 URL。现在的问题是,我该如何使用它。我只在网上找到一个关于它被使用的提及,那就是

我目前正在使用来自 github 的 Bitly 的 Oauth2 代理,可以在这里。我的网络服务器是 Nginx,我正在运行 NextCloud 12。我还有另一个托管的内部应用程序,它与空的 GitLab 安装一起运行,并且该 GitLab 安装被用作 Oauth 2 反向代理,在进入我们的内部软件之前进行身份验证。

任何帮助或指点都很有用,这似乎是 NextCloud 的一个非常强大的功能,但似乎没有任何支持/文档​​。

更具体地说,我将尝试更好地解释我当前的设置以及我希望它是什么样子。

当前的:

如果您愿意的话,我有 3 个“子网站”:

  • GitLab:www.site.com/subsiteA/
  • NextCloud: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)

理想设置:

  • NextCloud:www.site.com/subsiteA/
  • 内部站点:www.site.com/subsiteB/

如果您前往,www.site.com/subsiteB/您将被弹出subsiteA,但仅此而已。在此设置中,无需先登录 GitLab,然后才能登录 NextCloud。

答案1

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-nameocs.data.email

我写了两个指南:

也许这些对于您的配置需求来说是一个好的开始。如果您遇到任何其他好的教程,请务必在评论中提及它们!

相关内容