【问题标题】:Google AI Predict API: anonymous authentication for websiteGoogle AI Predict API:网站匿名身份验证
【发布时间】:2021-06-09 13:06:41
【问题描述】:

阅读完这些问答后,

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

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

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

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

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

【问题讨论】:

    标签: authentication google-cloud-platform server-side google-prediction google-ai-platform


    【解决方案1】:

    这里推荐的做法是所有 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 Doc、Calendar、GCP 项目等)时才需要执行 Google OAuth

    【讨论】:

    • 啊,我明白了,谢谢!所以应该从 Web 后端使用服务帐户,使用 gcloud auth activate-service-account 之类的东西,然后使用 gcloud auth print-access-token 作为访问令牌放入 AI 请求的标头中?问题是网站托管在 Netlify 上,它只提供静态内容,但没有(可定制的)后端。是否可以在 App Engine 上设置一个非常简单的服务器,充当 Web 客户端和 AI 平台之间的中介,响应来自 Web 客户端的请求并使用其服务密钥转发它们?
    • @Anakhand 在 App Engine 上设置一个简单的服务器绝对可行...cloud.google.com/appengine/docs/standard/python3/building-app/…
    • 如果您想要一个针对您的用例的分步解决方案,请打开一个包含所有相关信息的新线程,我很乐意在那里为您提供答案
    • 如果你喜欢我的回答,别忘了接受:)
    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2019-01-09
    • 2020-12-21
    • 2016-06-08
    相关资源
    最近更新 更多