在本指南中,我们将学习如何使用 Frappe Framework 通过 OAuth 对第三方应用进行身份验证。我们将学习如何设置 Grafana 服务器,以及如何连接到 Frappe Framework 来对 Grafana 进行身份验证。
我们希望本指南对初学者有所帮助,除了编写一些配置文件外,我们不会编写任何代码。
前提条件
- 一台运行基于 Debian 的系统(Debian、Ubuntu、Pop OS 等)的服务器
- 一个 Frappe Cloud 账户。您可以在此处注册 Frappe Cloud
或者
- 一个 Frappe Framework 站点(如果与服务器在同一台机器上会更简单)
- 基本的文本编辑知识
Frappe Framework
Frappe Framework 是一个低代码、基于 Python 和 JavaScript 的 Web 框架,用于构建令人愉悦的 Web 应用程序。Frappe Framework 最初是为构建企业级应用程序而开发的,但后来已发展成为一个可以轻松构建通用应用程序的框架。它是开源的,并采用 MIT 许可证。
Frappe Framework 的有趣之处在于,您无需编写代码即可让一切正常运行。它的设计初衷是让没有编程知识的人也能轻松使用。您可以生成数据库模式、REST API、Webhooks、报表等,而无需编写一行代码。您可以在此处查看所有功能。
Grafana
Grafana 是由 Grafana Labs 构建的一个出色的指标可视化平台。Grafana 可以根据数据生成交互式图表,并可用于告警。Grafana 具有仪表盘功能,可以从数据源拉取数据并生成最能反映数据价值的图表。Frappe 内部使用 Grafana 来可视化多个客户端的服务器统计数据,并为服务器提供大量洞察信息。
安装 Frappe Framework
安装 Frappe Framework 本身就是一门艺术。它需要许多组件的协同工作才能实现最佳运行效果。请不要因此感到畏惧;我们在 Framework 文档中提供了关于如何安装和设置 Frappe Framework 的详细指南。
如果您想采用更简单的方式,可以使用 Docker 安装和设置 Frappe Framework。您可以在此处了解更多信息。
最简单的方法是使用 Frappe Cloud 快速创建一个已安装 Frappe Framework 的新站点。
安装 Grafana
关于安装 Grafana,您可以参考 Grafana 官方安装指南。我们假设您正在基于 Debian 的系统上安装 Grafana。
安装完成后,您需要将 Grafana 添加到 systemd 中。您可以通过以下方式操作:
# add to systemd to start on bootup
systemctl enable grafana-server.service
# start the service
systemctl start grafana-server
# check status
systemctl status grafana-server
为 OAuth 配置 Frappe
登录您的站点并完成站点的入门流程后,我们将在 OAuth Client DocType 中创建一个新记录。
要访问 OAuth Client DocType,您可以使用万能搜索栏,或按 Ctrl + G 调出万能搜索栏并输入“OAuth Client”,自动补全功能将显示选项列表。
从下拉菜单中选择“新建 OAuth Client”,您将进入一个页面,可以在其中为要添加 OAuth 的应用程序配置 OAuth 范围和设置。
在这里,您需要配置:
- 应用名称(此处为 Grafana)
- Open ID 范围
- 重定向 URI
根据 Grafana 文档,其重定向 URI 为 <grafana-url>/login/generic_oauth</grafana-url>。> 如果您所在的服务器没有 URL,可以为 <grafana-url></grafana-url> 部分提供服务器的 IP 地址。
在相应字段中添加详细信息后,您将收到一个 App Client ID 和 App Client Secret。这些信息将用于 Grafana 的 OAuth 配置。
为 OAuth 配置 Grafana
既然我们已经从 Frappe Framework 站点获得了客户端 ID 和客户端密钥,现在就可以连接到 Grafana 服务器进行身份验证了。
在 Ubuntu/Debian 系统上,Grafana 的配置文件位于 /etc/grafana 文件夹中。我们将编辑 grafana.ini 文件。
$ sudo vim grafana.ini
在配置文件中,要设置 OAuth,您需要编辑 [oauth.generic_oauth] 部分。在这里,您需要取消注释相关行并添加所需数据。
[auth.generic_oauth]
enabled = True
name = Frappe
client_id = ""
client_secret = ""
scopes = openid all
auth_url =
<frappe_site_url>/api/method/frappe.integrations.oauth2.authorize
token_url =
<frappe_site_url>/api/method/frappe.integrations.oauth2.get_token
api_url =
<frappe_site_url>/api/method/frappe.integrations.oauth2.openid_profile
</frappe_site_url></frappe_site_url></frappe_site_url>
此外,如果您使用反向代理,还需要将 Grafana 服务器的域名添加到配置中。您可以在 grafana.ini 文件的 server 部分定义 domain 和 root_url。
完成此操作并保存文件后,您需要重启 Grafana 才能使其生效。您可以使用以下命令:
$ sudo systemctl restart grafana-server.service
在 Ubuntu/Debian 系统上重启 Grafana。
基本上就是这样。现在重新加载您的 Grafana 站点,您将在登录页面上看到一个“使用 Frappe 登录”按钮。
如果您一切操作正确,您将能够使用 Frappe 站点的凭据登录 Grafana。