调用directory.user.update api需要什么特权?

时间:2013-07-18 21:54:39

标签: google-admin-sdk google-sso

我们的组织将SAML用于SSO到Google Apps。为了使用SSO,我们必须通过API管理更改密码功能。由于已弃用Provisioning API以支持Admin SDK Directory API,因此我正在针对此API进行开发。

我正在开发的流程是最终用户将使用Google OAuth2登录我的应用程序。然后,使用用户访问令牌我试图调用https://www.googleapis.com/admin/directory/v1/users/ API来设置新密码,但是我收到错误403“未授权访问此资源/ api”。

我的问题是,用户能够更新自己的密码需要什么权限?使用GET调用此API时,我能够成功检索用户信息,但尝试输入新密码(或任何其他字段)会失败。

以下是我的请求和回复示例: 请求:

PUT https://www.googleapis.com/admin/directory/v1/users/user%40domain.org?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZT_7onp48edpClD72X-*************************
X-JavaScript-User-Agent:  Google APIs Explorer

{
  "password": "wlKsf.##2af"
}

响应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Not Authorized to access this resource/api"
   }
  ],
  "code": 403,
  "message": "Not Authorized to access this resource/api"
 }
}

1 个答案:

答案 0 :(得分:2)

只有super admins, delegated admins and resellers才能访问管理SDK目录API。

我建议创建一个委派管理员,该管理员只能通过API访问更新用户,然后让您的网络应用程序使用为此委派管理员创建的OAuth令牌。