angular - 使用 Azure AD 保护单页 Google 应用引擎 Web 应用

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

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

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

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

干杯,

汤姆

最佳答案

如果 Angular 应用程序确实是一个 SPA(即它在浏览器中运行),则您不需要 App Engine。您可以将其放在云存储中并通过负载均衡器将其发布为网站。

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

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

编辑:

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

因此,如果您愿意的话,您也可以坚持使用所有 Google 服务。

关于angular - 使用 Azure AD 保护单页 Google 应用引擎 Web 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62387607/

相关文章:

angular - 组件上不存在属性

Electron 打印中的 Angular 应用程序构建 div 显示空白窗口

java - 使用 tynamo-security 模块在 Tapestry Web 应用程序中实现身份验证功能的问题

google-app-engine - 谷歌应用引擎 Go WebApp

java.lang.NoClassDefFoundError : com/google/api/client/json/JsonFactory

javascript - 我如何从谷歌地图信息窗口调用 Angular2 函数?

javascript - 无法从 Ionic2 的回调中访问本地属性

php - 无法连接 LDAP 服务器 - ldap_bind() 中的问题;

java - 在 Tomcat 上运行的 Web 应用程序的登录页面

java - 如何确定当前请求是否为任务 - GAE