【发布时间】:2022-01-10 21:59:13
【问题描述】:
我的场景涉及两个服务帐户,即 S1 和 S2。 S2 被授予对 Google Workspace 的全域访问权限。
我想让 S1 冒充 S2(已经在 S1 上拥有“服务帐户令牌创建者角色”)并使用其权限来使用 S2 的访问权限来检索有关 Google Workspace 的一些信息。
是否可以将权限委托给 S1?
编辑: Johannes Passing 解决方案成功了,但仍然感觉有点像解决方法,在 google-api-dotnet-client 上打开了一个问题以添加这样的功能。
【问题讨论】:
-
什么是 S1 S2?您是在谈论两个不同的服务帐户吗?只要在域帐户上创建了服务帐户凭据,您就可以设置委派。
-
@DaImTo - 更新了我希望它澄清问题的问题。 S1 和 S2 确实是两个不同的服务帐户,S1 对 S2 具有“服务帐户令牌创建者角色”权限,而 S2 对 Google Workspace 具有域范围的访问权限。
-
据我所知,必须对域上的用户执行委派。我认为您不能委托给另一个服务帐户。话虽如此,您是否尝试过发生了什么?你遇到了什么问题?
-
我能够使用 S2 并委托给用户。我还能够使用 S1 并模拟 S2。我无法将这两个步骤结合起来 - 1. S1 模拟 S2 2. 委托给用户
-
我没有亲自尝试过,但谷歌支持委托链。您必须在委派时同时指定三个帐户。 S1 -> S2 -> 用户。设置模拟时,您必须在委托链中指定 S2。换句话说,S1 通过在委托链中声明 S2 来模拟 User。
标签: google-workspace google-api-dotnet-client service-accounts