首页 > 解决方案 > Google AI Predict API:网站匿名身份验证

问题描述

阅读完这些问答后,

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

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

但是,就我所能搜索的而言,没有办法做到这一点(在我看来,关于身份验证的文档令人困惑,有多个重叠的文章,很难确定在特定情况下适用什么);您必须使用某种 OAuth 使用户使用 Google 帐户登录。

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

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

标签: authenticationgoogle-cloud-platformserver-sidegoogle-predictiongoogle-ai-platform

解决方案


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

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

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

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

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

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

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

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


推荐阅读