我已经阅读了一些有关身份验证的信息,但我认为我可以关闭应用的可见性和/或访问公众。这对alpha测试很有用,所以肯定存在这样的设置?或者我是否需要在应用程序本身中构建这样的东西?
答案 0 :(得分:0)
如果没有某种身份验证机制,您的应用就无法真正区分来自您的请求和来自其他人的请求。
花一点时间来分析应用程序的身份验证要求可能是一个好主意,也许现在可以完成,同时仍处于alpha状态。 根据解决方案的不同,集成起来可能相当简单。
Google提供了多种身份验证选项,请参阅What is the difference between Google identity toolkit, Google OAauth and Google+ sign in
我个人选择了GIT套件,以简化,灵活和方便。
答案 1 :(得分:0)
可以保护您应用的网址,只有授权用户或管理员才能访问它们。
这可以通过app.yaml file(Python,PHP和Go应用程序)或web.xml deployment descriptor(Java应用程序)来完成。
答案 2 :(得分:0)
选项A: 只允许管理员访问,在yourapp.yaml
- url: /*
login: admin
script: yourappname.app
选项B: 如果您有静态IP(或每周进行一些更改),您可以检测到请求的IP,并且只能从您的IP运行:
class yourHandler(webapp2.RequestHandler):
def get(self):
userIP=self.request.remote_addr
if userIP=="220.123.211.120" # Change this with your static IP
...your code for authorized users.
选项C: 检查请求域(确保从您自己的授权域调用),并放置一些安全客户端。
class yourHandler(webapp2.RequestHandler):
def get(self):
origin=self.request.headers['Origin']
if origin=="www.yourdomain.com" # Change this with your domain/subdomain
...your code for authorized users.
# I recommend to put also the CORS headers for your own domain
self.response.headers['Access-Control-Allow-Origin'] = "www.yourdomain.com"
就个人而言,我有三种选择,另外还有自定义身份验证,可以访问私人内容。
答案 3 :(得分:0)
默认情况下,每项服务都是公开产生的。通过更改所需服务的--ingress
设置,分别进行更改。
gcloud beta app services update <service-name> --ingress <value>
all
(默认):对Internet公开。internal-only
:仅可用于同一Cloud Project中的资源。internal-and-cloud-load-balancing
:仅可用于同一Cloud Project中的资源。这些请求来自已配置的Cloud Load Balancing。1个网关+一堆微服务架构示例:
gcloud beta app services update ms-payment --ingress internal-only
gcloud beta app services update my-backend-gateway --ingress all
<<默认!仅出于示例目的。
通过这种方式,ms-payment
仅可由同一Cloud Project中的资源访问,即使它们位于不同的VPC中。
请参阅文档:https://cloud.google.com/appengine/docs/standard/java11/application-security#ingress_controls
答案 4 :(得分:0)
我最近发现您还可以使用 IAP
(身份感知代理)IA-what? 我找到了一个在 App Engine 上实现它的教程。
Tutorial for App Engine。
所以我不想依赖我自己的身份验证实现,因为我不是专家,而且安全性是很难匆忙学习的东西。一言以蔽之
<块引用>受 IAP 保护的 Web 应用程序用户:授予对应用程序和其他 HTTPS 的访问权限 使用 IAP 的资源。
我个人的意见是:尝试实施尽可能多的安全措施(不要只依赖一个系统),通常它们可能会失败。