2013-10-17 46 views
1

我最近建立了一個的DocuSign開發者賬戶和集成的密鑰,用的DocuSign REST的API玩,有一些問題澄清圍繞用戶管理的REST API的帳戶

  1. 我可以檢索下用戶的完整列表我通過使用以下REST調用帳戶。 https://demo.docusign.net/restapi/v2/accounts/<accountid>/users?additional_info=true

    但是,如果我嘗試和檢索特定用戶(一個比我路過我的X-的DocuSign認證等)頭,我收到HTTP 400錯誤與在請求URI中指定的「無效的用戶ID。用戶ID信息我發送下面的頭不匹配認證用戶」

    https://demo.docusign.net/restapi/v2/accounts/<accountid>/users/0d51a699-b17a-48b7-95b6-1e9e9806deb6

    在這兩種情況下。

    X-DocuSign-Authentication: <DocuSignCredentials><Username>{0}</Username><Password>{1}</Password><IntegratorKey>{2}</IntegratorKey></DocuSignCredentials>

    我很驚訝,雖然我可以讀取所有用戶都很好,我不能只是看一個特定的用戶。當然,看起來這不是安全問題,因爲我可以通過一個API讀取用戶,但使用相同的身份驗證令牌不能訪問其他用戶。

    我在想什麼?

    我想我可以去SOBO(代表功能發送)的路線,但我想確認是否預期上述行爲。

更新#1

:我去了SOBO approach,現在我得到一個不同的錯誤(USER_NOT_ACCOUNT_ADMIN)如下圖所示

GET /restapi/v2/accounts/{accountid}/users/0fe29a55-5564-42a9-b09d-cbe699db13dd HTTP/1.1 
Authorization: bearer {token for authenticating user} 
X-DocuSign-Act-As-User: {operating user's email} 
Accept: application/json 
Host: demo.docusign.net 
Connection: Keep-Alive 

HTTP/1.1 401 Unauthorized 
Cache-Control: no-cache 
Content-Length: 100 
Content-Type: application/json; charset=utf-8 
Date: Thu, 17 Oct 2013 21:18:32 GMT 
Strict-Transport-Security: max-age=7776000; includeSubDomains 

{ 
    "errorCode": "USER_NOT_ACCOUNT_ADMIN", 
    "message": "User is not an account administrator." 
} 

我也試過第二SOBO爲操作用戶獲取oauth令牌的方法,但找到http 400錯誤,並顯示以下消息

{ 
    "error": "invalid_request", 
    "error_description": "An OAuth2 error occurred." 
} 

因此,雖然我可以獲得認證用戶的oauth令牌,但我無法爲操作用戶獲取oauth令牌或代表他們採取行動。

我已經確認身份驗證用戶是「賬戶管理員」,同時將「apiAccountWideAccess」和「•allowSendOnBehalfOf」設置爲true。唯一設置爲「false」的是「canSendAPIRequests」。我在沙箱環境中的帳戶ID是「601565a7-e9c7-463b-9d7c-622aed905ea8」有什麼想法?

更新#2

而是代表都驗證用戶和操作用戶生成的OAuth令牌,我試圖通過頁眉下方,我終於可以得到其他用戶的個人資料,並更新其他用戶的個人資料。

X-DocuSign-Authentication: <DocuSignCredentials><SendOnBehalfOf>{operating userid}</SendOnBehalfOf><Username>{authenticating userid}</Username><Password>{authenticating user's password}</Password><IntegratorKey>{developer's integrator key}</IntegratorKey></DocuSignCredentials> 

太棒了! 所以這裏是什麼有效和什麼不有效的狀態。

作品沒有SOBO頭隨時隨地

GET /restapi/v2/accounts/357938/users?additional_info=true // Read all users 
GET /restapi/v2/accounts/357938/[email protected]&additional_info=true // Read single user by email 
POST /restapi/v2/accounts/357938/users // Add users 
DELETE /restapi/v2/accounts/357938/users // Close users  

* 工程與SOBO在X-的DocuSign,認證頭

PUT /restapi/v2/accounts/357938/users/74a021e1-3090-4843-b9ab-cceb7cd119f4/profile // Update user's profile 
GET /restapi/v2/accounts/357938/users/74a021e1-3090-4843-b9ab-cceb7cd119f4/profile // Read user's profile 

仍然不與oro一起工作UT SOBO **

GET /restapi/v2/accounts/357938/users/74a021e1-3090-4843-b9ab-cceb7cd119f4/settings 
GET /restapi/v2/accounts/357938/users/74a021e1-3090-4843-b9ab-cceb7cd119f4 

在這兩種不工作的情況下我得到以下錯誤

  • 沒有SOBO我得到錯誤的用戶ID不匹配autheitcating用戶。
  • 隨着SOBO我得到錯誤比用戶不是帳戶管理員

我將非常感謝在解決沒有工作的情況下任何幫助。我可以根據需要提供更多的細節。

  1. 其次我想實現這樣一個場景,我可以在賬戶停用用戶,使他們無法再登錄到的DocuSign。隨後,我想再次啓用該用戶,並使用與禁用之前相同的權限。

    我看到用戶有一個「userStatus」字段,並想知道我是否可以使用它來取消激活用戶,然後在需要時重新激活。如果支持,那麼什麼值將對應於停用用戶?

    我注意到的另一件事是,在刪除一個用戶,用戶只是軟刪除,因爲我仍然可以查詢狀態「CLOSED」的用戶。這將解決我的「停用」問題。但是我不確定在用戶「關閉」之後是否有辦法重新激活它們?

+0

任何想法,爲什麼HTTP GET ON 「/ RESTAPI/V2 /帳號/ 357938 /用戶/ 74a021e1-3090-4843-b9ab-cceb7cd119f4/profile文件」 請求儘管在頭文件中使用了SOBO,但是成功但在GET/restapi/v2/accounts/357938/users/74a021e1-3090-4843-b9ab-cceb7cd119f4上失敗。**嘗試創建新的集成器密鑰, admin用戶,盯着許多小時的權限和文檔,但無法弄清楚爲什麼第二個請求失敗並且第一個成功。我可以提供的唯一解釋是,可能某些帳戶設置丟失或在docusign結束有一個錯誤。任何幫助非常感謝! – somesh

回答

1

我認爲這可能是一個帳戶管理問題。我不知道爲什麼,但是我從DocuSign的一面查看了您的帳戶設置,並且我看到您的帳戶沒有選中「代表發送」 - 這很奇怪,因爲您似乎有權訪問您的控制檯中的設置 - >「首選項設置。

但無論如何,我想知道您剛剛在您的帳戶中啓用的設置是否可以解決您的問題。

我也不確定你的問題的用戶信息部分,讓我看看我是否能爲此提出任何問題,並且一旦我做了,我就會編輯我的答案。

+0

感謝您的回覆@Ergin.I再次嘗試,我得到同樣的錯誤。 1.)https://demo.docusign.net/restapi/v2/accounts/{accountid}/users/0fe29a55-5564-42a9-b09d-cbe699db13dd上的GET與「X-DocuSign-Authentication」標題一起返回「。 .authenticated用戶與uri中的userid不同。「 2)通過身份驗證用戶的oauth令牌的SOBO和「X-DocuSign-Act-As-User:」標頭失敗,同樣的錯誤消息「USER_NOT_ACCOUNT_ADMIN」3)嘗試爲「操作用戶」獲取oauth標記失敗,並顯示「An OAuth2發生錯誤「。我很好奇以上哪一項預計會通過? – somesh

+0

更一般地說,我想了解如果是代表帳戶管理員在帳戶中創建/更新/刪除用戶,我們是否需要SOBO或將擁有帳戶管理員的用戶名/密碼並使用我們(開發人員)創建的集成密鑰? – somesh

+0

任何作爲帳戶管理員的人都應該能夠修改/添加/刪除帳戶中的用戶。我不確定您的SOBO步驟是否正確,您是否確切地確認您正在遵循[這些步驟](http://www.docusign.com/developer-center/explore/features/sobo)?如果是這樣,你會在哪個步驟遇到問題或出現錯誤? – Ergin

1

回覆上面的Erign的帖子。

任何帳戶管理員都應該能夠修改/添加/刪除帳戶中的用戶。我不確定你的SOBO步驟是否正確,你能確認你完全遵循這些步驟嗎?如果是這樣,在哪一步你遇到問題或得到一個錯誤? - Ergin5分鐘前

是的,我遵循這些步驟。我能夠爲認證用戶生成oauth令牌,但在爲操作用戶執行相同操作時會出現錯誤。以下是我的要求和迴應。

1. FOR AUTH令牌請求用於認證用戶

POST /restapi/v2/oauth2/token HTTP/1.1 
Accept: application/json 
Content-Type: application/x-www-form-urlencoded 
Host: demo.docusign.net 
Content-Length: 139 
Expect: 100-continue 
Connection: Keep-Alive 

grant_type=password&client_id={integratorykey}&username={authenticating user's email}&password={authenticating user's password}&scope=api 

RESPONSE

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Content-Length: 100 
Content-Type: application/json; charset=utf-8 
Date: Thu, 17 Oct 2013 22:57:26 GMT 
Strict-Transport-Security: max-age=7776000; includeSubDomains 

{ 
    "access_token": "{authenticating user's token}", 
    "token_type": "bearer", 
    "scope": "api" 
} 

2. REQUEST FOR AUTH令牌操作用戶

POST /restapi/v2/oauth2/token HTTP/1.1 
Authorization: bearer {authenticating user's token} 
Accept: application/json 
Content-Type: application/x-www-form-urlencoded 
Host: demo.docusign.net 
Content-Length: 137 
Expect: 100-continue 

grant_type=password&client_id={integratorykey}&username={operating user's id}&password={empty}&scope=api 

響應

HTTP/1.1 400 Bad Request 
Cache-Control: no-cache 
Content-Length: 87 
Content-Type: application/json; charset=utf-8 
Date: Thu, 17 Oct 2013 22:57:29 GMT 
Strict-Transport-Security: max-age=7776000; includeSubDomains 

{ 
    "error": "invalid_request", 
    "error_description": "An OAuth2 error occurred." 
} 
+0

好吧,我想我知道你的OAuth2錯誤發生了什麼。每個帳戶有10個代幣的限制,並且我相信當您達到限制時會出現此錯誤。嘗試刪除至少一個令牌轉到首選項 - >連接的應用程序,然後嘗試再次請求一個新的,它應該工作... – Ergin

+0

我檢查,我只有一個連接的應用程序在我的帳戶。我記得由於10個應用程序的限制而看到這個錯誤,但我可以證實,在這種情況下,它絕對不是錯誤的原因。也許還有其他限制,我可能會打?任何其他想法? – somesh

+0

我創建了一個新的模擬賬戶和相同的問題。也許這是一般的演示賬戶的限制?我也嘗試使用Docusign API-Explorer來查看SOBO令牌的示例請求/響應,但是我也看到了失敗。 API-Explorer似乎總是將「blah」作爲操作用戶的用戶名而不是我希望它使用的用戶。 – somesh