请求的范围不允许:admin.directory.group.member

时间:2014-03-31 14:35:47

标签: node.js jwt google-api-nodejs-client

我想做一个插入授权请求。根据{{​​3}},我需要以下范围:

  

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

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

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

// 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'
}

为什么我收到此错误?

1 个答案:

答案 0 :(得分:2)

在使用服务帐户模拟Apps用户时,您需要明确向服务帐户授予所需范围的授权。管理员可以限制服务帐户代表实际用户执行的操作。

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

上的步骤