0

我尝试了不同的官方教程,但最终都具有误导性。

最后一个是这样的:https ://cloud.google.com/iap/docs/cloud-run-sign-in——它说:

启用外部身份,并在设置期间选择为我主持登录页面选项。

但没有这样的选择。没有创建新的 Cloud Run 实例,因此没有发生任何事情。过了一会儿,我更新了我的应用程序的源代码,重新部署,蓝色登录按钮出现在 Cloud Run 实例 URL 上。没有文档告诉“在这一步你现在会看到蓝色按钮”,所以我不确定它是什么。当我通过对话框时,它说我应该将 Cloud Run 实例 URL 添加到我一周前通过尝试我首先提到的不同教程创建的 OAuth 应用程序中的“允许的来源”。啊哈!我添加了允许的 URL,但这什么也没做——它只是循环,对话框让我在同一个页面上使用相同的蓝色按钮而不是我现在实际上无法访问的 Cloud Run 实例响应。我是 GCP 项目的所有者,我希望这一切都可以检查是否是我调用 Cloud Run。这个特定的 OAuth 应用程序是如何阻止这个特定的 Cloud Run 实例的?我有几个月或几年制作的多个应用程序和多个 Cloud Run 实例,但直到现在才出现这个蓝色按钮。

由于无法使其工作,我决定将其全部回滚。我允许对我的 Cloud Run 实例进行未经身份验证的调用,禁用 IAP API,删除 OAuth 应用程序,重新部署了几次,但蓝色按钮仍然存在,对话框显示:“OAuth 客户端已删除。” 而且我没有看到像我目前的问题在https://cloud.google.com/run/docs/troubleshooting上描述的那样

所以现在不仅整个事情没有工作(“登录页面”没有部署,即使我再次禁用和启用 IAP API 也没有)而且我完全失去了对 Cloud Run实例的访问权限 - - 它被无法禁用的蓝色按钮阻止。即使当我部署新服务时,他们也是这个坏事的幕后黑手。

UPD:一段时间后,我意识到我并没有真正失去任何访问权限——“蓝色按钮”是尝试设置身份验证失败的产物,我自己复制粘贴的 htm 页面不起作用,并且我只是访问了附加到服务 URL 的错误路径。所以这个问题是半无效的。尽管“为我创建登录页面”的问题仍然存在。

4

2 回答 2

1

启用外部身份,并在设置期间选择为我主持登录页面选项。

我相信这是指 - 当您打开 IAP 并选择“使用外部身份进行授权”时,有一个选项显示 -“为我创建登录页面”并附有说明 - 我AP 将创建一个使用 Cloud Run 和 Firebase 界面为您提供的登录页面

2. 我尝试按照这些步骤操作,并在选中“为我创建登录页面”选项后,它向我显示了一个弹出窗口,其中显示了它正在为我创建 Cloud Run 实例的消息。大约 3 分钟后,它表示已完成,并向我显示 Cloud Run 实例的 url 和页面设置的链接

3. 关于访问 Cloud Run 实例,我认为最好从 UI(Google Cloud Console)中删除它。重新部署将重新创建 Cloud Run 服务,您不应再拥有“蓝色按钮”,因为您说您已禁用它

在此处输入图像描述

于 2021-07-22T19:41:34.663 回答
0

目前,只有 App Engine、Compute Engine 和 HTTPS 负载平衡器支持 IAP。尚不支持 Cloud Run。计划在不久的将来得到支持。

作为一种解决方法,您可以检查这两个选项以便在您的应用程序中实现:

1 - 一个类似的stackoverflow 帖子,其中说明并回答了有关如何 Google 登录 Cloud Run

2 -社区制作的Terraform 配置中 IAP 的 Cloud Run 托管版本

您也可以尝试使用 Cloud Run 设置负载均衡器,看看是否能解决您面临的问题。

于 2021-07-22T12:15:28.753 回答