Mar*_*idt 8 node.js jwt google-admin-sdk
我正在尝试创建一个服务器应用程序,将用户添加/删除到我的域组.请注意,它不会与用户进行任何交互,而是服务器到服务器应用程序.
我在Google API控制台中注册了我的应用程序,下载了密钥并通过发布将其转换为.pem
openssl pkcs12 -in my_google_key.p12 -out my_google_key.pem -nocerts -nodes
Run Code Online (Sandbox Code Playgroud)
然后我去过域管理,安全 - >高级设置 - >身份验证 - >管理OAuth客户端访问.在那里,我在授权API客户端中添加了一条记录.我使用了从控制台中的服务帐户获得的客户端ID并使用了范围:
https://www.googleapis.com/auth/admin.directory.group.
我安装了googleapis for nodejs,使用
npm install googleapis
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var googleapis = require('googleapis');
var SERVICE_ACCOUNT_EMAIL = 'My Service Account E-mail Address';
var SERVICE_ACCOUNT_KEY_FILE = 'my_google_key.pem'; // The .pem file is at the root of my application
var jwt = new googleapis.auth.JWT(
SERVICE_ACCOUNT_EMAIL,
SERVICE_ACCOUNT_KEY_FILE,
null,
['https://www.googleapis.com/auth/admin.directory.group']
);
var client;
googleapis
.discover('admin', 'directory_v1')
.execute(function(err, data) {
client = data;
jwt.authorize(function(err, result) {
console.log(jwt);
client.admin.groups.list({
"customer": "my_customer", // This is actually "my_customer"
"domain": "domain.com" // The domain name I administer
})
.withAuthClient(jwt)
.execute(function(err, result) {
console.log(err);
console.log(result);
});
});
});
Run Code Online (Sandbox Code Playgroud)
运行此代码的结果是:
{ errors:
[ { domain: 'global',
reason: 'forbidden',
message: 'Not Authorized to access this resource/api' } ],
code: 403,
message: 'Not Authorized to access this resource/api' }
Run Code Online (Sandbox Code Playgroud)
我错过了什么?如何使用Admin SDK授权我的应用程序?
1)确保您将域范围的权限委派给您的服务帐户.
2)服务帐户必须模拟有权访问Admin SDK Directory API的人员.
初始化时包含它:
var jwt = new googleapis.auth.JWT(
SERVICE_ACCOUNT_EMAIL,
SERVICE_ACCOUNT_KEY_FILE,
null,
['https://www.googleapis.com/auth/admin.directory.group'],
account_with_Admin_SDK_access_to_impersonate@example.com
);
Run Code Online (Sandbox Code Playgroud)
本部分文档详细说明了这两个方面:https://developers.google.com/admin-sdk/directory/v1/guides/delegation#delegate_domain-wide_authority_to_your_service_account
| 归档时间: |
|
| 查看次数: |
4593 次 |
| 最近记录: |