【问题标题】:Gmail API - Service Account delegationGmail API - 服务帐户委托
【发布时间】:2020-09-23 23:53:46
【问题描述】:

我正在研究使用 GMail API 以编程方式为我们的一个系统发送电子邮件。我相信我需要创建一个服务帐户,然后将其设置为具有域范围的访问权限,以便委派电子邮件发送(因此电子邮件似乎来自实际用户而不是我的程序)。我的问题是,如果我走这条路 - 有没有办法阻止某些用户,以便服务帐户不能为他们“委托”?例如,我希望能够为我们的销售团队生成和发送电子邮件,但我不希望 api 能够为我们的高级管理人员生成任何电子邮件。

事情的流程是......我们的程序从我们的数据库中收集信息,然后循环通过这些数据并使用 gmail api 为销售人员生成电子邮件。我对 google/gmail api 非常陌生,并且对授予服务帐户域范围的授权访问权限持怀疑态度。

是否有执行此类操作的“最佳实践”方法?

【问题讨论】:

    标签: gmail-api service-accounts delegation


    【解决方案1】:

    很遗憾,无法在管理员/云控制台设置中将域范围的委派限制为仅限某些用户

    • 您的用户启用了 DOMAIN-WIDE 委派或根本不启用委派
    • 您只能以编程方式控制谁将被模仿
    • 一种选择是预先过滤您的数据库,以便您的代码只输入您想要模拟的用户的电子邮件地址
    • 另一种选择是实现一个if 语句来检索例如每封电子邮件的 orgUnit,并根据用户的 orgUnit 模拟或不模拟用户(例如,仅模拟 orgUnit“销售人员”)

    【讨论】:

    • 谢谢,我还读到您可以在设置 API 密钥时限制对 API 的访问。我认为只要我可以限制对 API 的访问,以便对 API 的调用只能来自某个服务器/应用程序,我们就可以接受域范围的委派.....我假设它可以使用API 密钥和服务帐户?
    • API 密钥是一个不同的概念。您将它们用于public requests that do not need authorization,或者 - 当您执行请求身份验证时与clientID 结合使用。对于服务帐户,authentication process 是不同的,很遗憾您不能使用 API 密钥。
    猜你喜欢
    • 2014-09-13
    • 2015-11-28
    • 2016-09-30
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2020-12-20
    • 2022-01-15
    相关资源
    最近更新 更多