jam*_*mie 4 google-api google-apps google-authentication google-workspace
我们的应用要求访问与 Gsuite 帐户相关的所有 Gmail 邮箱。我可以按照https://developers.google.com/admin-sdk/reports/v1/guides/delegation 上的说明完成此操作。即手动创建服务帐户密钥,启用全域范围的凭据委托并在 G Suite 管理区域中手动分配适当的权限。当为我们的每个客户手动设置时,这似乎有效,但是,该过程复杂而繁琐,并且是采用的障碍。
为了实现一键式注册过程,根据 G Suite 市场的要求,我创建了一个 OAuth 客户端 ID(而不是服务帐户),并在注册过程中使用此凭据通过同意过程重定向用户。此后,使用刷新/访问凭据访问 G Suite API。这非常有效,除了我只能访问登录用户的邮箱(不能访问域中的其他任何人)。域范围的委派似乎不适用于客户端 ID 凭据。
我确实意识到服务帐户凭据具有客户端 ID,但它们不允许指定可接受的重定向 URI 的能力。因此,使用服务帐户似乎无法实现同意过程。
我的应用已在 Chrome 商店注册。如何创建凭证,使用同意流程接受权限,并且仍然享有域范围委派的好处?
看来我需要两个凭据。
1) Google 用户身份验证 - 客户端 ID 凭据(使用机密)
2) Gmail API 的访问权限 - 启用委托权限的服务帐户凭据(使用私钥)
1) 中的客户端 ID 凭证适用于代表用户进行身份验证或进行 API 调用(前提是已给予同意)。但是,访问多个邮箱时凭据将不起作用。在这种情况下,需要服务帐户凭据(以上 2 项)。
使用服务帐号凭证时,仍然需要获得用户的许可才能访问特定的 API 范围。这些权限/OAuth 范围在 Google Marketplace SDK 配置中指定。
转到 Google Cloud Platform -> API's & Services Daskboard -> 单击 Enable API's And Services -> 在搜索框中键入 Google Marketplace SDK -> 选择 Google Marketplace SDK -> 单击 Manage。在配置选项卡中,添加所需的范围。
首次访问应用程序时,Google Marketplace 会提示 G Suite 管理员允许范围权限。与 Office 365 不同,同意过程不是通过同意重定向来处理的。必须首先从 Google Marketplace 中访问该应用程序才能分配正确的委托权限。
归档时间: |
|
查看次数: |
2824 次 |
最近记录: |