将Google App Engine的自定义子域名与用户关联

3
我有一个运行在GAE上的应用程序,并希望允许用户使用他们自己的Google应用域的子域名(例如myapp.example.com)来托管他们自己定制的版本我的应用程序。
添加子域很容易...只需按ID添加应用到他们的Google应用程序中,并分配一个自定义子域。
但由于我想让他们能够自定义他们的网站,所以我想将自定义子域与用户关联起来。这成为了一个安全问题,因为我不知道如何将设置自定义子域的人与登录到我的应用程序的用户关联起来。

如果我加入应用市场($100),通过在安装中添加配置步骤并要求管理员用户,我认为我可以做到这一点。有人做过吗?我需要成为市场的一部分吗?

我也可以要求管理员将TXT条目添加到域名的DNS中,并验证她是否完成(与Google验证域名的方式相同)。由于GAE API不支持DNS查询,因此必须在GAE之外完成此操作。

请注意,我不能仅仅通过匹配用户登录的域名来解决问题,因为来自一个域名的多个人(例如user1@example.comuser2@example.com)可能正在使用我的应用程序,而我只想允许设置子域的管理员能够自定义该子域。

有人做过这个吗?有任何解决方案吗?

1个回答

0
这很困难。您可以使用应用程序市场,您说得对,它将允许您在设置之前向管理员请求配置信息。这可能是您最好的选择,并且还允许您将应用程序公开给更多用户,同时使单点登录成为可能。
如果您不想这样做,有几种方法可以要求管理员证明所有权。您可以要求他们在其www子域上创建一个由您指定的URL资源(或任何其他您的应用程序不提供服务的子域)。您还可以要求他们将您的应用程序添加到域中两次,一次在他们想要提供服务的域下,一次在您编制的验证子域下。

我喜欢你的验证子域名的想法(因为他们已经在创建子域名),而不是使用TXT DNS记录。此外,我可以轻松地检查它;他们只需将其添加为我的应用程序的子域名,然后我可以从GAE对该子域名进行简单的urlfetch,并查看是否被命中...非常简单易行。 - Amir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接