谷歌应用引擎中运行的应用程序是否有可用的访问控制解决方案?我对 IP 白名单特别感兴趣。
2 回答
关于管理控制台,可以使用三个角色。
查看者、开发者和所有者。
https://developers.google.com/appengine/docs/adminconsole/roles
此外,您可以限制对特定域中用户的访问。
但你可能想要这个:
https://developers.google.com/appengine/docs/python/gettingstarted/usingusers
然后,您可以强制用户通过 google(或其他一些选择)登录,然后您就可以看到他们的唯一 ID。然后,您可以使用该唯一 ID 来授予或拒绝访问您网站的各个部分。
https://developers.google.com/appengine/docs/python/tools/webapp/utilmodule
Google App Engine 提供了一些基于 Google 基础架构的有用服务,应用程序可以使用 SDK 中包含的库来访问这些服务。其中一项服务是用户服务,它可以让您的应用程序与 Google 用户帐户集成。通过用户服务,您的用户可以使用他们已经拥有的 Google 帐户登录您的应用程序。块引用
我对白名单 IP 也有类似的需求。我在数据存储中有一个允许的 IP 列表,然后对 AppEngine 的每个请求我只检查调用 IP 地址并检查它是否列在内存缓存中,如果不是,我在数据存储中查询它。如果我找到它,我会将它保存在内存缓存中以供将来请求并返回请求。如果我没有找到它,我会记录它并返回一个错误。
将 IP 保留在内存缓存中的原因是,如果我有一个来自 IP 的请求,他们很快就会发送更多请求(因为他们已经登录并正在做事)。
要在 appengine(在 java 中)中获取 IP,我使用
String IPString = getThreadLocalRequest().getRemoteAddr();