确定用户是否为组成员

Eri*_* J. 10 google-api google-apps google-admin-sdk

背景

我们的企业用户拥有Google Apps帐户.我们希望允许他们(并且只有他们)使用Google帐户登录外联网.理想情况下,我们还希望通过Google域管理用户界面管理权限.一种想法是创建组并将组成员资格与外部网权限相关联.

研究

Google Apps支持使用OAuth 2.0进行登录,并且还支持通过API进行配置,这样我们就可以测试用户是否是群组成员.Provisioning API可能需要管理员凭据.

是否可以以编程方式确定Google Apps用户是否是某个组的成员而不需要域管理员凭据?

有没有更好的方法来实现这一目标?

Jay*_*Lee 7

检查组成员身份的API调用确实需要至少一个委派的管理员,该管理员有权通过API读取组.如果您使用新的Google Admin SDK会员API调用,则还可以将范围限制为只读:

https://www.googleapis.com/auth/admin.directory.group.readonly
Run Code Online (Sandbox Code Playgroud)

Admin SDK使用OAuth 2.0,它不需要委托管理员的用户名/密码,只需要OAuth令牌.

  • 这是一个非常重要的问题/答案,它确实需要更加清晰,以确保我们能够做好事(tm).@jaylee,请您澄清一下:在使用服务帐户的凭据进行API调用以检查组成员身份(成员:获取)时,我们应该假冒哪个管理员帐户?是否应该有专门的管理员帐户用于此目的? (3认同)
  • 您知道此范围是否适用于服务帐户?我已成功使用普通帐户将其与 OAuth 回调一起使用,但尚未使用服务帐户/私钥。我在设置权限时遇到问题。 (2认同)
  • 您可以使用已为此范围授权的服务帐户。查看来自 Google 的以下指南:https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority (2认同)
  • 一些具体的代码示例将非常有帮助。几天来,我一直在努力尝试实现这个确切的功能。 (2认同)