Cloudflare 的 cloudflared 命令行工具允许您与受 Cloudflare Access 保护的端点进行交互。您可以使用 cloudflared 与受保护应用程序的 API 进行交互。
这些说明不适用于配置服务以针对 API 运行。此示例中的令牌针对用户身份进行了定制,仅适用于最终用户通过命令行工具与 API 进行交互。
本演练涵盖了如何:
- 从 CLI 连接到由 Cloudflare Access 保护的资源
完成所需时间:
30 分钟
在安装 cloudflared之后,您可以使用它来检索 Cloudflare Access 应用程序令牌。本演练使用域名 example.com 代替受保护的 API。
-
要生成令牌,请运行以下命令:
cloudflared access login https://example.com运行此命令后,
cloudflared会启动一个浏览器窗口,其中包含在尝试访问 Web 应用程序时看到的相同 Access 登录页面。 -
选择您的身份提供商并登录。
如果浏览器窗口未启动,您可以使用自动打印到命令行的唯一 URL。
- 成功进行身份验证后,浏览器会通过加密传输将令牌返回给
cloudflared并进行存储。
令牌在 Access 管理员配置的会话持续时间内有效。
检索到令牌后,您就可以访问受保护的 API。cloudflared 命令行工具包含一个用于通过 curl 传输数据的包装器,该包装器使用 URL 语法(有关更多信息,请参阅 curl ↗ GitHub 项目)。该包装器将令牌作为名为 token 的查询参数注入到 curl 请求中。您可以如下调用该包装器:
cloudflared access curl http://example.com也可以对任何 Unix 工具结合 cloudflared 使用 put 命令,以便在请求中包含该令牌。
继续阅读以了解其他可用命令。
login 命令启动 Access 后端应用程序的登录流程。
cloudflared access login http://example.comcurl 命令调用客户端包装器,并自动在请求中包含该令牌。
cloudflared access curl http://example.comtoken 命令检索限定于该特定应用程序范围的令牌,以便在其他命令行工具中使用。
cloudflared access token -app=http://example.com为了方便和保持脚本简洁,在访问受保护的应用程序时,可以将令牌保存为环境变量。
按如下方式将令牌设置为环境变量:
-
运行以下命令将令牌导出到 shell 环境:
export TOKEN=$(cloudflared access token -app=http://example.com) -
使用以下命令确认令牌已保存:
echo $TOKEN
将令牌导出到环境后,在脚本中将该变量与 Cloudflare Access 请求标头一起使用以访问受保护的端点,如以下示例所示:
curl -H "cf-access-token: $TOKEN" https://example.com/rest/api/2/item/foo-123