authentication - 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或任何其他托管服务提供商。
- 在后端网络服务器中,您可以使用服务帐户 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
推荐阅读
- visual-studio - 突出显示/选择单词并在其周围放置括号或“ VS2019
- wordpress - 如何使用 php 发送 Booster 插件模板电子邮件?
- angular - 如何防止 behaviorsubject next() 调用相互覆盖?
- javascript - NodeJS在写入后无法从telnet套接字接收数据
- asp.net - 如何在 cookie ASP.NET 中保存产品
- c# - Post Body 在策略授权中访问后丢失
- python - Pandas 在同一列中用模糊匹配替换字符串
- r - R GGMAP HTTP 400 错误请求
- sql - 更改没有生效日期的时间戳
- javascript - 如何在不使用任何库的情况下从前端和后端连接到数据库(postgresql)