使用Azure AD确保单页谷歌应用引擎webapp的安全

问题描述 投票:1回答:1

我目前正在使用angular forntend和python后端开发一个单页webapp。两者都以服务的形式部署在google应用引擎中。angular前端使用后端服务的URL来访问后端的API,而前端的URL则用来访问应用程序。

我已经通过使用google应用引擎提供的防火墙限制了访问。现在我想对用户进行认证和授权。我想使用Azure AD给一组预定义的用户提供访问权限。只有这些用户应该能够打开前端。他们不应该能够通过其 URL 访问后端,但当然能够通过前端访问后端提供的数据。没有特定的用户功能。每个用户看到的是同样的前端,并能访问同样的数据。

对我来说,很难接近这个任务,因为我从来没有做过这些事情。有人做过吗?一般来说,我应该采取什么步骤?我是否必须改变angular前端,或者是否可以只在Azure AD中注册我的应用程序,并在那里配置一切?任何想法或来源将被感激。

干杯。

汤姆

angular authentication google-app-engine google-cloud-platform azure-active-directory
1个回答
1
投票

如果Angular应用真的是一个SPA,也就是说它是在浏览器中运行的,你就不需要App Engine来做。你可以把它放在云存储中,然后通过负载平衡器把它发布成一个网站。

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

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

EDIT:

这里有一篇和Cloud Run有关的好文章,我认为你也许应该使用它,而不是App Engine。https:/cloud.google.comrundocsauthenticatingend-users(云运行)。

所以你也可以坚持使用所有的谷歌服务,如果这是你的专长。

© www.soinside.com 2019 - 2024. All rights reserved.