限制App Engine对自定义域上的G Suite帐户的访问权限

不久之前,Google Apps(现在称为G Suite)域的App Engine相关设置已移至Google Cloud Console。

截至目前,已记录的限制对相关G Suite用户访问App Engine实例的方法是通过此Google Cloud Console页面:

在此处输入图像描述

当您点击该页面中的[编辑]时,在“Google身份validation”下,您可以在“Google帐户API”和“Google Apps域”(实际上应该称为“G Suite域”)之间切换。

在此处输入图像描述

该下拉列表下方有一个输入框,但没有解释应该在那里输入什么。 通过反复试验,我发现它应该是相关G Suite的域名。

在部署到App Engine的最小Hello World应用程序中,我们将身份validation选项设置为:

login: required 

请注意,我们的应用程序的一些服务是用Python编写的,有些是用Java编写的。

通过[project-id] .appspot.com主机名访问App引擎实例工作正常,Google将提示相关G Suite上的凭据,并通过身份validation过程适当地重定向到目标路径名。

问题是,当通过自定义域访问App Engine实例时,身份validation根本不起作用。 这将显示500,服务器日志显示为:

只有在通过该域的子域提供请求或已通过Google Apps控制台批准请求时,才能执行Google Apps域example.com的身份validation。 请参阅https://developers.google.com/appengine/articles/auth

该错误消息中的链接页面不再存在,即它已被替换为一般描述身份validation的页面。 从在线缓存中提取旧页面,我可以看到它描述了将Google App引擎项目添加到Google Apps服务页面的旧Google Apps方式,但截至目前,此function已被删除或迁移到Google Cloud Console。

对于它的价值,谷歌支持无法提供任何帮助,除了指向上面截屏页面的文档。

这里是否有人设法通过自定义域限制App Engine访问G Suite帐户? 或者这个function刚刚破裂?

特别是我正在寻找在Python和/或Java GAE应用程序环境中解决此问题的答案,以及演示如何在需要时以编程方式解决此问题的代码。

这似乎是Google Apps域身份validation的一个已知问题,如果将域添加到控制台的“自定义域”部分启用Google Apps域身份validation,则身份validation无效。

解决方法是从“自定义域”中删除自定义域映射,然后在为域启用Google Apps域身份validation后重新添加它。 将更新文档页面使用自定义域和SSL以反映这一点。