如何以编程方式请求Google日历API的域范围委派



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

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

使用微软的日历API,这是一个非常简单的过程,您只需指定;应用程序权限";然后OAuth流必须由Admin完成,以获得预期的访问和刷新令牌集。对于GSuite,我找不到这样的对等。。。

为了根据一些评论进行澄清,我试图弄清楚GSuite是否有与这里描述的Microsoft Graph相当的东西:https://learn.microsoft.com/en-us/graph/auth-v2-service

我见过的最接近的应用程序需要发布到谷歌应用程序市场;然而,这里的文档似乎非常缺乏,也不清楚如何处理诸如用于将凭据移交给后端服务器的redirecturi之类的事情。

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

关于如何设置服务帐户的域范围委派的最佳文档是->执行谷歌工作区域授权

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

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

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

服务帐户授权与Oauth2授权非常不同。服务帐户授权适用于需要访问数据而无需请求用户权限的后端系统。

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

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

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

最新更新