【问题标题】:Use Azure AD to secure a single-page google app engine webapp使用 Azure AD 保护单页谷歌应用引擎 webapp
【发布时间】:2020-06-15 21:21:23
【问题描述】:

我目前正在开发一个使用 angular forntend 和 python 后端的单页 webapp。两者都部署为谷歌应用引擎内的服务。 Angular 前端使用后端服务的 URL 来访问后端的 API,而前端的 URL 用于访问应用程序。

我已经使用谷歌应用引擎提供的防火墙限制了访问。我现在想对用户进行身份验证和授权。我想向使用 Azure AD 的预定义用户组授予访问权限。只有这些用户才能打开前端。他们应该不能通过 URL 访问后端,但当然可以通过前端访问后端提供的数据。没有用户特定的功能。每个用户看到相同的前端并可以访问相同的数据。

我很难完成这项任务,因为我从未做过这些事情。有人做过吗?我一般应该采取哪些步骤?我是否必须更改角度前端,或者是否可以在 Azure AD 中注册我的应用程序并在那里配置所有内容?任何想法或来源将不胜感激。

干杯,

汤姆

【问题讨论】:

    标签: angular authentication google-app-engine google-cloud-platform azure-active-directory


    【解决方案1】:

    如果 Angular 应用程序真的是一个 SPA,即它在浏览器中运行,那么您不需要 App Engine。您可以将其放在云存储中,然后通过负载均衡器将其发布为网站。

    您可以将 AD 身份联合到 GCP IAM (https://cloud.google.com/architecture/identity/federating-gcp-with-active-directory-introduction),但这可能不是您想要的方法。听起来这些人只需要访问应用程序而不是 GCP。您或许应该考虑使用 Auth.0 或 Okta 等第 3 方 IDM 解决方案。然后,您将利用此解决方案来联合身份并向您的用户提供身份验证流。 IDM 将生成 JWT 令牌,然后您可以在您在 App Engine 上运行的服务器上验证这些令牌(针对每个请求)。

    限制对客户端文件的访问可能是一个额外的问题,可以通过网络配置解决,但您应该问问自己是否值得。您的所有业务逻辑都应该在服务器上进行,这意味着您的客户端文件可以从 Internet 访问。

    编辑:

    这是一篇与 Cloud Run 相关的好文章,我认为无论如何您都应该在 App Engine 上使用它。 https://cloud.google.com/run/docs/authenticating/end-users

    因此,您也可以坚持使用所有 Google 服务,如果那是您的难题。

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 2011-02-08
      • 1970-01-01
      • 2015-09-18
      • 2013-05-03
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多