【问题标题】:How to know if a google account is under a google apps domain?如何知道谷歌帐户是否在谷歌应用域下?
【发布时间】:2012-07-17 07:06:41
【问题描述】:

我正在开发一款允许用户将云端硬盘文件分享给朋友的应用。但是Google App Account存在问题,比如someone@somadomain.com,其中的文件不能与不在该域下的人共享。尽管somedomain.com 的管理员可以更改共享政策,但我更喜欢不允许人们通过 Google Apps 帐户使用我的应用程序。

我也查看了这个帖子:How to determine if the account is a Google apps account?。但我不同意检查域以检测帐户类型的想法。因为人们可以使用任何电子邮件地址注册 Google 帐户。我刚刚在我的 Hotmail 注册了一个,someone@hotmail.com,共享文件时没有域限制。

有人可以帮忙吗?谢谢!

【问题讨论】:

  • 我有自己的域并将其用作 Google Apps 域,只是为了将 Gmail 用作邮件提供商。我使用我的 Apps 邮件地址作为我的私人帐户,就像其他人使用 @gmail.com 帐户一样。而且我知道很多人基本上都在做同样的事情。我可以请您重新考虑您的想法,并像对待普通用户一样对待我们的应用程序用户吗?
  • @HelmuthB,感谢您的反馈。我同意有些人使用谷歌账户作为他们的私人账户。但是,当您与朋友分享照片时,他必须在同一个域中才能看到那张 public 照片,这很奇怪吗?我会重新考虑,并尝试找到解决方法。

标签: google-drive-api google-docs


【解决方案1】:

假设您包括:

https://www.googleapis.com/auth/userinfo.email

在您的 OAuth 范围内,您可以提出以下请求:

https://www.googleapis.com/oauth2/v2/userinfo

如果是 Google Apps 帐户,调用将返回一个“hd”参数(托管域?),并将 Google Apps 域作为其值。如果是消费者账户,无论是@gmail.com 还是潜在的“冲突账户”,都不会返回 hd 参数。请参阅下面的示例。 admin@jay.powerposters.org 是 Google Apps 帐户,而 consumer@jay.powerposters.org 是消费者帐户。如果我在 Google Apps 域中创建了一个消费者用户,它将成为一个有冲突的帐户,并且消费者帐户将被排除在 @jay.powerposters.org 命名空间之外,但这还没有发生。

对于 admin@jay.powerposters.org:

GET https://www.googleapis.com/oauth2/v2/userinfo

HTTP/1.1 200 OK
Content-length: 99
X-xss-protection: 1; mode=block
...

{
 "email": "admin@jay.powerposters.org",
 "verified_email": true,
 "hd": "jay.powerposters.org"
}

对于 consumer@jay.powerposters.org:

GET https://www.googleapis.com/oauth2/v2/userinfo

HTTP/1.1 200 OK
Content-length: 71
X-xss-protection: 1; mode=block

{
 "email": "consumer@jay.powerposters.org",
 "verified_email": true
}

【讨论】:

    【解决方案2】:

    或使用BrowserSpy 之类的服务检查域。如果 MX 记录显示正确,则它使用的是 Google Apps。

    【讨论】:

      【解决方案3】:

      我认为没有一种好方法可以检查帐户是否为 Google Apps 帐户。我想到的唯一方法是检查域的 DNS MX 记录,看看域的某些服务是否由 Google Apps 服务器提供(例如从 gmail 提供的电子邮件等......)但即使在那里你也可能需要检查更多而不是一项服务,因为某些 Google Apps 公司会停用 Gmail(或其他服务)以使用自定义解决方案。

      如果我是你,我不会禁用对 Google Apps 帐户的服务(多么不公平!!:))许多人购买 Google Apps 帐户是为了拥有一个漂亮的电子邮件域,并且他们的帐户的行为与任何其他 Google 帐户一样。 .

      我会在需要时尝试将文件的 ACL 设置为公共,如果这不起作用,则显示它们并显示一条很好的错误消息,警告他们管理员已禁用公共共享...不会反正有很多用户,让其他“正常”Google Apps 帐户无法使用您的应用太糟糕了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 2018-05-17
        • 2015-01-10
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多