Google 云 运行 - 了解对最终用户进行身份验证

Google Cloud Run - Understanding of Authenticating end users

我有一个 Web 应用程序 运行 直到现在都使用云 运行,但没有访问限制。现在它应该只对某些用户可用。 我读了 https://cloud.google.com/run/docs/authenticating/end-users 也都试过了 提到的方式:Google-登录和“身份平台”教程。

如果我理解正确,您必须在两种变体中编写实际用户处理自己的程序。例如,确定哪些电子邮件地址可以访问该应用程序等。 我一直在寻找一种声明方式,理想情况下,我只维护一个允许的电子邮件地址列表,而“云 运行 应用程序”只是“神奇地”链接到此。结果,只有这些用户可以访问 Web 应用程序。这似乎不可能?

理想情况下,实际应用程序根本不应更改,上游层将负责身份验证和授权,可能与“Identiy 平台”结合使用。

致以最诚挚的问候,欢迎任何提示 托马斯

让我加点糖来更好地理解所有这些。

云运行应用程序由您打包,您维护源代码,如果这是一个网站,放置登录按钮和处理身份验证是您的工作。

一个云 运行 系统,它 运行 所有这些都在硬件上,它不会“查看”或处理“代码”之外的应用程序代码。简而言之,它不知道它是 Java 还是 Python 代码以及如何为您处理开箱即用的身份验证 - 但请进一步阅读。

如果您需要一种简单的方式来授权查看 API Gateway,可以将其放置在 Cloud 运行“之前”。它可能不完全是您的用例。这些仅适用于“API”设计的服务。

您需要的上游层是托管 Identity platform,但 CODE 应该由您组装并部署在您的 Cloud 运行 服务中。代码将是 UI 驱动部分,授权逻辑由身份平台处理,因此减少了开发时间。

您的用户将使用专门的注册页面进行注册,并通过输入他们的电子邮件和密码进行登录。 Identity Platform 提供了一个 pre-built authentication UI,您可以将其用于这些页面,也可以构建您自己的页面。您可能还希望支持其他登录方法,例如社交提供商(如 Facebook 或 Google)、phone 数字、OIDC 或 SAML。

查看一些高级示例,了解如何进一步自定义授权:Only allowing registration from a specific domain您可以重复使用其中一个示例来维护您提到的用户候选名单。

除了@Pentium10 的回答之外,您还可以强制所有用户对您的应用程序进行身份验证。 (假设您正在为您的公司构建一个内部门户,或者为您的应用程序构建一个只有某些 users/groups 可以访问的 /admin 面板。)

这种用例可以通过将 Cloud Identity-Aware Proxy (IAP) 放在您的云 运行 服务前面来实现。这样,所有 请求都会通过这个验证调用者的代理。这与身份平台不同,因为访问者不会在您的网站上创建帐户(他们使用现有的 Google 帐户或其他 IdP,如 ActiveDirectory,或您在 IAP 上配置的任何内容)。

我在 https://github.com/ahmetb/cloud-run-iap-terraform-demo/ 上有一个小教程,因为 IAP+Cloud 运行 集成仍未正式发布,因此没有完整的文档。