【问题标题】:What Admin Roles settings to set to be able to access Google Classroom API for the domain?要设置哪些管理员角色设置才能访问该域的 Google Classroom API?
【发布时间】:2020-03-22 03:41:43
【问题描述】:

我们正在尝试创建一个单独的管理员角色以分配给用户,以便能够调用 Google Classroom API(域)。如果我们将它们设置为“超级管理员”,它可以工作,但我们不想给这些用户超级管理员权限。任何人都知道对此进行设置的任何指南或设置吗?

【问题讨论】:

  • 恐怕用户必须是超级管理员才能做到这一点。您能否具体说明这些用户应该能够做什么?
  • 查看课程、注册/删除学生到课程、添加/删除合作教师

标签: google-classroom


【解决方案1】:

答案:

除了Super Admin 之外,没有任何角色可以让用户执行所有这些操作。您可以通过assigning custom admin roles 向用户检查。即使检查了所有可能的权限,如果用户不是Super Admin,则用户无法在 Classroom API 中充当域管理员。

非超级管理员可以做什么:

非超级管理员用户只能访问他们所属的课程(作为教师或学生),而不是域中的所有课程。

他们可以通过courses.teachers.deletecourses.students.delete 直接从他们拥有的课程中删除学生和其他教师,但他们cannot directly add新学生和教师到他们的课程通过courses.teachers.createcourses.students.create。只有域管理员(超级管理员)才能做到这一点。非管理员必须先通过invitations.create()发送邀请,并征得用户同意。

更新:服务帐号:

您还可以让您的应用程序使用服务帐户来模拟超级管理员,以便该帐户可以代表该管理员执行该管理员可以执行的操作。为此,您必须通过访问Admin console 并按照here 指定的步骤操作create the Service Account向其委派域范围的权限

请注意,授予域范围的委派是一个非常强大的工具,因为它使服务帐户能够代表域中的任何用户进行操作,所以如果不小心管理很容易被滥用(没有域范围的委派,服务帐户类似于普通帐户,它只能访问由它创建的资源,与它共享,等,就像普通帐户一样)。

无论如何,一旦创建了域范围的委派,在您的应用程序中使用服务帐户与使用普通帐户非常相似。在应用程序中,您必须构建凭据,然后通过写入用户的电子邮件地址来指定帐户应模拟哪个用户。我不知道您使用的是哪种语言,但您可以在 Java 和 Python here 或 Node here 中找到代码 sn-ps 来执行此操作。

参考:

【讨论】:

  • 如果我们创建一个 API 密钥并让我们的应用程序使用它而不是 OAuth,它会起作用吗?
  • @facultyclassroomtest 不,那行不通。 As specified here,您“必须使用 OAuth 2.0 来授权请求​​。不支持其他授权协议”。
  • 我看到我们可以创建服务帐户并链接到 OAuth 以授权请求?它会起作用吗?如果是,我如何在 OAuth 请求中包含服务帐户?
  • @facultyclassroomtest 我根据您的评论更新了我的答案。
  • 我认为它现在正在工作。同步服务clientID/范围权限可能需要一些时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多