如何使用Google Directory API确定用户权限

时间:2014-10-08 00:09:21

标签: google-oauth google-apps google-apps-marketplace google-directory-api

Google Apps有几个内置的"角色"有权为您的域/组织执行任务的权限,例如帮助台管理员,组管理员或超级用户管理员。 Find them all here

我们有一个控制台,允许Google管理员管理来自该组织/域的哪些用户应该能够访问我们的应用,并且我们希望将对此控制台的访问权限仅限于那些具有相应任务权限的管理员在控制台上。

但是,我根本无法找到一种方法来确定登录用户是否具有这些必要的权限,只需尝试几次调用并查看它们是否有效。虽然它是一个不同的Google API,但它确实是what they tell Google Analytics developers to do here

  

检索授权用户的权限

     

您可以检索当前授权的权限信息   用户通过在帐户,Web上执行列表或获取操作   属性或视图(配置文件)资源。

     

要执行这些操作,用户必须授权其中任何一项   以下范围:....

当您从Google Directory API(/ admin-sdk / directory / v1 / reference / users)获取用户列表时,它只有两个与管理员权限相关的属性isAdmin和isDelegatedAdmin。 isAdmin适用于超级用户,而false适用于其他所有人。对于上面链接中提到的其他类型的Admin角色,isDelegatedAdmin为true。但似乎没有任何方法可以检索更具体的管理员角色,即使可以,组织也可以创建自定义管理员角色,这意味着您确实需要检查细化权限而不仅仅是角色。

有没有人以更有效的方式解决这个问题,而不是试图调用所有必要的API来查看成功或失败?我已经广泛搜索了一天的大部分时间,但找不到更好的解决方案。

1 个答案:

答案 0 :(得分:2)

编辑2018-09-19

您可以使用以下端点检索此信息:

  • Roles - 返回组织中定义的角色,包括授予角色的权限的ID。
  • RoleAssignments - 返回已分配给特定用户的角色。
  • Privileges - 返回有关可用权限的信息。

有关详细信息,请参阅Managing Roles guide