【问题标题】:Access gmail email with oauth for intranet webapp使用 oauth for Intranet webapp 访问 gmail 电子邮件
【发布时间】:2022-02-11 05:48:41
【问题描述】:

我有一个 Web 应用程序部署在 50 个客户端(即 50 个服务器)上,假设每个客户端都有 50 个最终客户端(因此最终用户总数为 2500)。

我想允许最终用户在他们的仪表板上检索他们的电子邮件,包括 gmail 电子邮件。

我开始按照谷歌的说明进行操作。我将使我的身份验证完整客户端 javascript 所以我遵循这些准则https://developers.google.com/identity/protocols/oauth2/javascript-implicit-flow#js-client-library

问题,即使只是阅读电子邮件似乎也是一个限制范围

https://www.googleapis.com/auth/gmail.readonly 读取所有资源及其元数据——无写入操作。受限

因此,如果我不将我的应用程序提交到验证过程中,它将是一个未经验证的应用程序,因此它会假设在 100 次连接后停止工作(请参阅https://support.google.com/cloud/answer/7454865)并且我读到令牌将被频繁删除所以它对我的最终用户来说不方便。

我可能有不同的解决方案:

  • 将我的应用程序提交给验证过程:它看起来像 f*** 一样复杂。此外,我的应用程序实际上部署在(许多)Intranet 服务器上。所以不同的 url 可以是https://192.168.1.53:5000、https://myaddress.local 等。 我不明白这将是什么过程。我应该为每个客户创建一个应用程序(在谷歌仪表板上)吗?并制作他们每个人的过程? Google 如何验证未公开的应用?
  • 仅在 Google 仪表板上制作内部应用程序:实际上它是为我的需要而设计的。问题,它似乎只适用于谷歌工作区帐户。最后一个要花钱(很多,请参阅https://workspace.google.fr/intl/fr/pricing.html),而且我的最终客户想使用他们的个人 gmail 地址,而不是与他们的组织相关的东西)

所以我用完了解决方案。我找不到一个简单(免费)的解决方案来允许我的最终用户在我的应用程序中导入他们的电子邮件,这似乎很疯狂。

我知道他们也是 imap 解决方案,实际上它是我用来导入邮件的解决方案(除了 gmail,还有 gmail),但要使其与 gmail 一起使用,您必须从他们的 gmail 帐户中删除安全性,而不是我可以向我的最终用户询问一些事情(出于安全原因,但也因为他们对 IT 工具没有信心,所以我想让它尽可能简单)

如果您有任何建议,我等待您的建议

谢谢!

【问题讨论】:

    标签: oauth-2.0 google-api gmail google-oauth


    【解决方案1】:

    我没有将我的应用提交到验证过程,它将是一个未经验证的应用,因此它会在 100 次连接后停止工作

    100 个用户,只有一个 100 个用户,您将无法授权其他任何人。

    我读取的令牌会经常被删除,因此对我的最终用户来说并不方便。

    实际上它是在 7 天后被撤销的刷新令牌。但是,如果您使用 Javascript 和隐式流程,您没有刷新令牌,那么这对您来说应该不是问题。

    我的应用程序实际上部署在(许多)Intranet 服务器上。所以不同的url可以是https://192.168.1.53:5000、https://myaddress.local等。

    对于初学者来说,你不能让谷歌看到它运行,所以它需要是一个公共服务器,你还需要一个公共域来托管你的 TOS,以及隐私政策,以便谷歌可以看到它。您的应用程序的第三方安全审计也将花费您 15,000 美元到 75,000 美元。

    谷歌如何验证未公开的应用?

    你不能

    只在谷歌仪表板上制作应用程序内部:实际上它是为我需要的而设计的。问题,它似乎只适用于谷歌工作区帐户。最后一个要花钱(很多,请参阅https://workspace.google.fr/intl/fr/pricing.html),而且我的最终客户想使用他们的个人 gmail 地址,而不是与他们的组织相关的东西)

    这也意味着您的所有用户都必须在您的工作区域中,因为他们的个人 gmail 电子邮件无法与工作区一起使用。您只能在域中阅读他们的电子邮件。

    所以我用完了解决方案。似乎很疯狂,我找不到一个简单(免费)的解决方案来允许我的最终用户在我的应用程序中导入他们的电子邮件。

    那是因为没有。

    我知道他们也是 imap 解决方案,实际上它是我用来导入邮件的解决方案(除了 gmail,还有 gmail),但要使其与 gmail 一起使用,您必须从他们的 gmail 帐户及其中删除安全性我不能问我的最终用户(出于安全原因,但也因为他们对 IT 工具没有信心,所以我想让它尽可能简单)

    我不建议尝试通过 IMAP 或 SMTP,您需要用户 gmail 帐户的密码,这是一个坏主意。或者您需要使用XOauth,在这种情况下您需要进行验证。

    如果您有任何建议,我等待您的建议

    我的建议是确定您是否真的希望在您的应用中使用此功能。如果你这样做了。

    1. 将其托管在域而不是内部。
    2. 申请验证并完成所有必需的步骤。

    【讨论】:

    • 感谢您的回答。这令人失望,但肯定是真的。我等待其他一些建议以防万一,但恐怕你是对的......
    • 如果您有兴趣,我有一个关于验证过程的视频What you need to know about Google verification in 2021.
    • @dalm谢谢你,我会检查的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2012-03-05
    • 2019-03-08
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多