0

我想提出插入授权请求。根据API Explorer我需要以下范围:

在代码中它看起来像这样:

{
    ...
  , scopes": [
        "https://www.googleapis.com/auth/admin.directory.group"
      , "https://www.googleapis.com/auth/admin.directory.group.member"
   ]
}

我有一个pem用于 JWT 身份验证的文件。让我们看一下代码:

// dependencies
var Assert = require('assert')
  , GoogleApis = require('googleapis')
  , authData = require("./authData")
  ;

// output
console.log("Auth data is: ", authData);

// set jwt data
var jwt = new GoogleApis.auth.JWT(
    authData.email
  , authData.keyFile
  , authData.key
  , authData.scopes // my scopes
  , "ionica.bizau@example.com"
);

// authorize
jwt.authorize(function (err, data) {

    // output error
    if (err) {
        console.log("Error: ", err);
        return;
    }

    /* run authorized requests */
});

我收到以下错误:

{
    error: 'access_denied',
    error_description: 'Requested scopes not allowed: https://www.googleapis.com/auth/admin.directory.group https://www.googleapis.com/auth/admin.directory.group.member'
}

为什么我会收到此错误?

4

1 回答 1

2

在使用服务帐户模拟应用程序用户时,您需要明确授予服务帐户所需范围的权限。这就是管理员可以限制服务帐户代表实际用户执行的操作的方式。

Google Drive API 文档总结了https://developers.google.com/drive/web/delegation#delegate_domain-wide_authority_to_your_service_account上的步骤

于 2014-03-31T15:07:02.587 回答