尝试访问目录 api 时无权访问此资源/api

Oli*_*ver 1 node.js google-admin-sdk

我正在使用带有googleapisgoogle-auth-library包的节点来访问 G-Suite 域的用户。为此,创建了一个启用了域范围委派的服务帐户:

全域委托

域管理员授予了对服务帐户的访问权限以访问以下范围:

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

我的代码如下所示:

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

JWT 客户端使用为服务帐户收到的凭据进行初始化。无论如何,客户端会返回以下消息:Not Authorized to access this resource/api

Oli*_*ver 8

您必须使用您的 google 域管理员的电子邮件来模拟服务帐户。

const client = new JWT(
      keys.client_email,
      undefined,
      keys.private_key,
      [
        "https://www.googleapis.com/auth/admin.directory.group.readonly",
        "https://www.googleapis.com/auth/admin.directory.group.member.readonly",
        "https://www.googleapis.com/auth/admin.directory.user.readonly"
      ],
      "admin@yourdomain.com"
    );
Run Code Online (Sandbox Code Playgroud)

这在框中的文档中的某处提到过,但没有真正记录在任何地方如何实现......