【问题标题】:Google appengine authentication restrict to domain not workingGoogle appengine 身份验证限制为域不起作用
【发布时间】:2015-06-18 10:28:42
【问题描述】:

我正在尝试将 google appengine 网站的访问权限限制为特定 Google Apps-Domain 的帐户。在 Google Developers Console 的应用设置中,我已经将身份验证方法设置为“Google Apps-Domain”,并以“xxx.com”格式输入域。但是当我在我设置的本地网络服务器测试页面上对此进行测试时,Google 仍然允许我使用不受我配置的域管理的帐户登录。我错过了什么?如何在不“手动”(也就是在我的服务器上进行)检查刚刚登录到我的 appengine 站点的用户的电子邮件地址中的域字符串的情况下限制对该域帐户的访问?

【问题讨论】:

  • 您说在本地开发服务器中所有帐户都通过了,但是在 GAE 服务器中会发生什么?你试过吗?
  • 我没有尝试过,因为它尚未部署到 GAE 服务器。我不想在它在本地工作之前进行部署。我希望它仍然是可能的。编辑:据我所知,由于用户被重定向到谷歌登录以进行身份​​验证,因此行为应该没有区别。
  • 是的,它不应该但绝对应该与部署服务器一起使用,并且部署一些简单的代码可以让您检查它是否有效。涉及的移动部件太多,首先要放弃开发服务器是问题
  • 据我所知,开发服务器对您在控制台中配置的内容一无所知,并且有一个simple mock login 允许您测试(i)用户是否已登录(ii) 用户是管理员。
  • 如前所述,尝试实际部署。您问的问题确实会在实际部署中发生。

标签: google-app-engine google-apps google-authentication


【解决方案1】:

摘自GAE official docs:

使用用户

开发网络服务器使用自己的模拟 Google 帐户 登录和退出页面。在开发网络下运行时 服务器,生成登录和注销 URL 的方法返回 本地服务器上 /_ah/login 和 /_ah/logout 的 URL。

开发登录页面包含一个表单,您可以在其中输入 电子邮件地址。您的会话使用您输入的任何电子邮件地址 活跃用户。

让应用程序相信登录用户是 管理员,选中“以管理员身份登录”复选框 表格。

换句话说,如果您看到真正的 Google 登录表单,是因为您正在做其他事情,而不是使用普通的开发服务器,顺便说一下,这并不知道您在开发者控制台中的设置.

【讨论】:

  • 我再去查一下。
  • “开发登录页面包含一个表单,您可以在其中输入电子邮件地址。您的会话使用您作为活动用户输入的任何电子邮件地址。”那是行不通的。所以它似乎是真正的谷歌登录页面。虽然我不明白为什么它给了我那个站点,因为我已经通过 Google Cloud SDK 的 gcloud 命令部署了一个开发 (.appspot) 域。
  • "换句话说,如果你看到真正的谷歌登录表单是因为你在做其他事情而不是使用普通的开发服务器,顺便说一下,它不知道你的开发者控制台中的设置。”我不相信这一点。因为如果我将错误的客户端 ID 传递给我 index.php 中 google-signin-client_id 元标记的内容属性并尝试登录,那么我会收到一个错误,如果我不会发生米通过了正确的。所以我从谷歌获得的登录表单必须知道我在开发者控制台中的设置。否则就不会发生。
  • 感谢您的澄清。然后我得出结论,我想做的事情是不可能的,我必须检查我后端的用户凭据。编辑:我也会接受你的回答,因为你的 cmets 至少给我指出了结论。
  • 是的,cloud.google.com/appengine/docs/php/gettingstarted/helloworld 虽然叫 Hello World,但它是 PHP 版的留言簿
猜你喜欢
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多