【发布时间】:2014-02-13 02:39:32
【问题描述】:
我正在考虑使用 OAuth 2.0 service accounts 和 domain-wide delegation of authority 将我们的服务与 Google Apps 集成。一个特定的用例是:
-
当 Google Apps 客户注册我们的服务时,利用客户现有的组织结构或资源(组织单位、组、设备、用户、文件夹、文件等)预先提供我们的服务。
当客户的 Google Apps 资源发生变化时,将适用的更改同步到我们的服务。
我发现在使用服务帐号时,我需要为我正在查询的域指定授权超级用户的电子邮件地址,如下所示:
var cred = new ServiceAccountCredential( new ServiceAccountCredential.Initializer( "{SERVICEACCOUNTEMAIL}" )
{
Scopes = new[]
{
DirectoryService.Scope.AdminDirectoryOrgunitReadonly
},
User = "{USERTOIMPERSONATE@customergadomain.com}"
}.FromCertificate( x509cert ) );
如果我想,例如
- 查询域中的所有组织单位或组
- 查询组织拥有的所有文件夹,或特定用户的文件夹
理想情况下,我不希望将我们服务器上的自动后台进程与特定的 Google Apps 用户结合起来,以使资源与域管理员或用户可能在 Google Apps 方面发生的更改保持同步。
我不想指定用户。所以我的主要问题是,我是否使用正确的授权模型来执行我正在尝试做的事情?
我的第二个问题更多的是旁白。当委派已授予对域资源的访问权限时,要求模拟以使用管理 API 的目的是什么?与正常的 OAuth 2.0 授权工作流程相比,我不必代表用户授权,我只需指定她的电子邮件地址。我是否缺少服务帐户/委托访问模型的意图?
【问题讨论】:
-
好问题 +1 这也让我感到困惑,我已经完成了域范围的委派,但最终我发送了所有以域管理员身份验证的请求......
标签: google-oauth google-admin-sdk google-directory-api