Google AI Predict API:网站匿名身份验证

问题描述

阅读这些问答后,

我仍然不知道如何为不需要任何登录或 OAuth 屏幕的 AI Platform Predict API 启用简单身份验证。

我的场景是这样的:我们有一个静态网站,允许用户输入一些数据,网站(客户端)通过API将数据发送给模型进行预测,当结果返回时,网站显示他们给用户。我们不希望用户必须以任何方式登录或表明身份。只需输入一些数据,按一下按钮,即可获得结果。

然而,就我所能搜索的而言,没有办法做到这一点(我认为关于身份验证的文档令人困惑,有多个重叠的文章,很难确定哪些适用于特定的案件);您必须使用某种 OAuth,让用户使用 Google 帐户登录

真的没有办法让网站本身而不是个人用户进行身份验证吗?例如。使用 API 密钥或服务帐号密钥?

如果 OAuth 是唯一的方式,这是否意味着想要使用该网站的用户必须拥有 Google 帐户?以及如何启用它:我应该创建 OAuth 客户端 ID,还是 OAuth 同意屏幕?

解决方法

这里推荐的做法是所有 OAuth 都应该在服务器端发生,其中 GCP 服务帐户 JSON 密钥存储在某个后端服务器上。

我将通过假设您的网站托管在 App Engine 上来回答您的问题,但您的网站可以托管在其他 GCP 产品上的任何位置,如 Cloud Run 或任何其他托管服务提供商。>

  • 在后端网络服务器中,您可以使用 Service Account JSON 发出 AI Platform 预测请求,然后您需要配置您的网站以与该后端通信。

Website ----HTTP Request to App Engine URL------> App Engine (code---)--------> AI Platform

因此 App Engine 后端代表网站客户端执行身份验证,正如 Lak 阐明的那样 here;由于这些请求将传递您的 GCP 服务帐号 JSON 密钥,因此它们可以获得将特定 HTTP 请求发送到其后端服务器的权限,从而进行 AI Platform 调用。

在您的情况下,您不希望用户访问您的 Google 数据,您只是想让他们访问您自己的 AI Platform 模型。

基本上,您可以在服务器端使用客户端库,它会自动为您执行 OAuth,只要将环境变量设置为服务帐户密钥即可。

注意:如果您想访问某人的 Google 资源(例如 Google 文档、日历、GCP 项目等),您需要执行 Google OAuth