2013-07-18 41 views
1

我们的组织使用SAML将SSO应用到Google Apps中。为了使用SSO,我们必须通过API管理更改密码功能。由于Provisioning API已被弃用,以支持Admin SDK Directory API,因此我正在针对此API进行开发。调用directory.user.update 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" 
} 
} 

回答

2

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

我建议创建一个委托管理员,只有通过API更新用户的权限,然后让您的Web应用程序使用为此委派管理员创建的OAuth令牌。

+0

周杰伦,谢谢你的回应,这是有道理的,我不能改变我自己的密码。我只是在测试帐户上再次测试,并且它正常工作。 –