2013-07-18 39 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

周杰倫,謝謝你的迴應,這是有道理的,我不能改變我自己的密碼。我只是在測試帳戶上再次測試,並且它正常工作。 –