如何以编程方式请求 Google Calendar API 的域范围委托?

问题描述 投票:0回答:3

我现在已经花了几个小时浏览文档+阅读其他SO帖子,但我仍然不清楚如何简单地请求Google Calendar API的域范围凭据适用于其他域;不是我自己的 ).

我们当前的 Web 应用程序启动 OAuth 流程,为单个用户请求日历 API 凭据;但是,似乎没有像这样的简单方法来请求整个域的凭据。似乎获取域级访问权限需要管理员手动设置服务帐户,然后将该信息传递给(https://developers.google.com/admin-sdk/directory/v1/guides/delegation)非常麻烦。

使用 Microsoft 的日历 API,这是一个非常简单的过程,您只需指定“应用程序权限”,然后管理员必须完成 OAuth 流程以获得预期的访问和刷新令牌集。对于 GSuite,我找不到这样的等效项...

为了根据一些评论进行澄清,我试图弄清楚 GSuite 是否具有与 Microsoft Graph 提供的功能等效的功能,如下所述: https://learn.microsoft.com/en-us/graph/auth-v2-service

我见过的最接近的需要发布到 Google Apps Marketplace;然而,这里的文档似乎相当缺乏,并且不清楚如何处理像redirect_uri这样用于将凭据移交给后端服务器的事情。

如果我错过了任何文档,并且有人可以为我指出正确的方向,那么我将不胜感激。

google-api google-oauth google-calendar-api google-workspace service-accounts
3个回答
1
投票

有关如何设置服务帐号的全域委派的最佳文档是 -> 执行 Google Workspace 全域授权

请求 Google Calendar API 的域范围凭据(适用于其他域;不是我自己的域)。

你不能。谷歌工作区域的管理员为该域拥有的服务帐户设置域范围的委派。

似乎没有像这样的简单方法来请求整个域的凭据。

服务帐户授权与Oauth2授权有很大不同。 服务帐户授权适用于需要在无需请求用户许可的情况下访问数据的后端系统。

Oauth2 允许您为每个用户授予授权。 用户必须通过接受同意屏幕来授予应用程序访问其数据的权限。

没有 oauth2 流程可以将您的应用程序授予工作区域上的所有用户。 说实话,我认为这是一件好事。


0
投票
  1. 只有超级管理员才能配置全网域委派,这是在 Google Workspace 管理控制台中完成的
  2. 当您为服务帐户启用域范围委派时,基本上您就授予其模拟域内任何用户的权限
  3. 如果您需要代表您的用户发出日历请求,您将需要在您的应用程序中实现模拟,这样您将使用具有广域委派的服务帐户来代表您的用户发出请求
  4. 在这里您可以找到解释如何设置广域委托的文档以及进行 API 调用实现模拟的示例 https://developers.google.com/identity/protocols/oauth2/service-account#authorizingrequests

0
投票
例如,Google 不支持像 Microsoft 那样的

client_credentials

 类型。 
您仍然可以使用“管理员安装”权限在 Google Workspaces Marketplace 中创建应用。
当 GSuite 管理员安装此应用程序时,他们将看到 
auth0
对话框,其中包含在域级别授予的所有必需权限。
	

© www.soinside.com 2019 - 2024. All rights reserved.