对 Google Admin SDK 的非管理员只读访问权限
Non-admin read-only access to Google Admin SDK
在 2014 年 9 月 23 日的 a post on the Google Developers blog 中,它说:
Read access to all domain users
Historically, only admins have been able to access the data in the Admin SDK.
Beginning today, any user (not just admins) will now be able to call the
Directory API to read the profile of any user on the domain (of course, we
will respect ACLing settings and profile sharing settings).
然而,尽管检查了我能找到的每个 Google 应用程序管理设置,但我对目录 API 的调用对非管理员用户来说失败了。压缩代码:
params = {
client_id: XXXXXX,
scope: 'https://www.googleapis.com/auth/admin.directory.user.readonly',
response_type: 'token id_token',
immediate: true
};
gapi.auth.authorize(params, gHandleAuthResult);
var request = gapi.client.request({
'path': '/admin/directory/v1/users',
'params': {
'customer': 'my_customer',
}
});
request.then(function (response) {
var users = response.result.users;
if (!!users && users.length > 0) {
users.forEach(function (user) {
newMember.id = user.id || '';
}
}
}
这是为 JavaScript 使用 Google API 客户端库。我已经在多个 Google 应用程序帐户上尝试过此操作,它始终适用于管理员帐户,而不适用于非管理员帐户,我得到的响应是 "Not Authorized to access this resource/api"。
一位 previous post 询问了这个问题并收到了您必须使用服务帐户的回复,但那是从 2014 年 6 月开始的,在博客 post 之前。我已成功使用服务帐户进行调用,但我宁愿不必这样做,因为它需要服务器充当桥梁。
Google 开发人员文档说 "Google engineers monitor and answer against the tag google-admin-sdk",所以希望 Google 在这里得到答案。
尝试:
var request = gapi.client.request({
'path': '/admin/directory/v1/users',
'viewType': 'domain_public'
'params': {
'customer': 'my_customer',
}
});
viewType=domain_public 需要以 described in the reference documentation. There's also a bit more explanation in the user accounts docs.
的非管理员身份执行目录操作
在 2014 年 9 月 23 日的 a post on the Google Developers blog 中,它说:
Read access to all domain users
Historically, only admins have been able to access the data in the Admin SDK. Beginning today, any user (not just admins) will now be able to call the Directory API to read the profile of any user on the domain (of course, we will respect ACLing settings and profile sharing settings).
然而,尽管检查了我能找到的每个 Google 应用程序管理设置,但我对目录 API 的调用对非管理员用户来说失败了。压缩代码:
params = {
client_id: XXXXXX,
scope: 'https://www.googleapis.com/auth/admin.directory.user.readonly',
response_type: 'token id_token',
immediate: true
};
gapi.auth.authorize(params, gHandleAuthResult);
var request = gapi.client.request({
'path': '/admin/directory/v1/users',
'params': {
'customer': 'my_customer',
}
});
request.then(function (response) {
var users = response.result.users;
if (!!users && users.length > 0) {
users.forEach(function (user) {
newMember.id = user.id || '';
}
}
}
这是为 JavaScript 使用 Google API 客户端库。我已经在多个 Google 应用程序帐户上尝试过此操作,它始终适用于管理员帐户,而不适用于非管理员帐户,我得到的响应是 "Not Authorized to access this resource/api"。
一位 previous post 询问了这个问题并收到了您必须使用服务帐户的回复,但那是从 2014 年 6 月开始的,在博客 post 之前。我已成功使用服务帐户进行调用,但我宁愿不必这样做,因为它需要服务器充当桥梁。
Google 开发人员文档说 "Google engineers monitor and answer against the tag google-admin-sdk",所以希望 Google 在这里得到答案。
尝试:
var request = gapi.client.request({
'path': '/admin/directory/v1/users',
'viewType': 'domain_public'
'params': {
'customer': 'my_customer',
}
});
viewType=domain_public 需要以 described in the reference documentation. There's also a bit more explanation in the user accounts docs.
的非管理员身份执行目录操作