我注意到,在当前版本的 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-name
ocs.data.email
我写了两个指南:
也许这些对于您的配置需求来说是一个好的开始。如果您遇到任何其他好的教程,请务必在评论中提及它们!