簡體   English   中英

Confluence REST API授權

[英]Confluence REST API authorization

  1. 用戶已經登錄Confluence;
  2. 還有另一個外部WEB應用程序,可將附件保存到具體頁面。
  3. 要從外部應用程序執行休息呼叫,我需要知道融合用戶的用戶名和密碼(但我不知道,因為已經通過了授權。或者可以使用會話ID;

如何獲取用於REST訪問的訪問令牌? 如何使用訪問匯合令牌執行ajax調用?

$.ajax({
  url: "http://localhost:1990/confluence/rest/api/content",
  headers: "Basic=" + GET_SOMEHOW_ACCESS_TOKEN,
  success: function(html){
      console.log(html)
  }
 });

您想模擬用戶並代表他們執行操作,而無需身份驗證。 通常,您不能這樣做。 盡管出於良性目的,但這是跨站點請求偽造(CSRF)的一種形式。 應用程序應受到保護。

我調查了一下,看來您實際上可以通過API模仿用戶。 在Atlassian論壇上報告了Martin Cassidy的答案,並對其進行了輕微編輯以解決拼寫錯誤:

您需要做的是:

  • 創建公鑰和私鑰對
  • 使用Jira GUI設置受信任的應用程序,並啟用2條腿的OAuth選項
  • 像往常一樣發送請求(忘記請求令牌以及訪問和訪問令牌,並在請求的查詢字符串中包含以下參數
    • oauth_consumer_key-通過Jira GUI在受信任的應用程序設置中設置的消費者名稱
    • oauth_token-空字符串
    • oauth_signature_method-應該是RSA-SHA1,因為這是Jira支持的全部
    • oauth_signature-請求的簽名,您必須使用私鑰生成該簽名。 如果使用Java,我建議使用net.oauth類,與Jira OAuth示例相同( https://developer.atlassian.com/display/JIRADEV/JIRA%2520REST%2520API%2520Example%2520-%2520OAuth%2520authentication
    • oauth_timestamp-同樣,您可以使用net.oauth自動生成
    • oauth_nonce-同樣,如上所述自動生成
    • user_id-可選(如果指定),Jira將以指定用戶身份運行RESTful請求。 如果未給出,Jira將使用您在“受信任的應用程序的配置開始”中指定的用戶運行請求。

請注意,Martin在談論使用Jersey的Java客戶端。 您可以在JavaScript中執行相同的操作,但是您應該意識到,您會將私有訪問令牌泄漏給Confluence,允許任何抓住它的人代表您的應用程序發出請求。 因此,建議在服務器端實現該部分,在該部分中可以隱藏API密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM