postman——基礎操作——API授權


當發送請求時,通常會包括參數,用以確保請求能夠訪問和范湖所需的數據,postman提供了授權類型,能在postman中處理身份驗證問題;

 

 參考網址:https://learning.getpostman.com/docs/postman/sending-api-requests/authorization/

(1)、基本認證(basic  auth);

(2)、摘要身份驗證(digest  auth);

(3)、oauth;

================================================================================================================

授權請求

API使用授權來確保客戶端請求安全地訪問數據。這可能涉及對請求的發送者進行身份驗證,並驗證他們是否有權訪問或操作相關數據。如果要構建API,則可以從多種身份驗證模型中進行選擇。如果您要集成第三方API,則所需的授權將由API提供程序指定。

您可以傳遞身份驗證詳細信息以及在Postman中發送的任何請求。Auth數據可以包含在標題,正文中,也可以作為請求的參數。如果在“ 授權”選項卡中輸入身份驗證詳細信息,郵遞員將自動為您選擇的身份驗證類型填充請求的相關部分。您可以使用變量和集合來更安全,更有效地定義授權詳細信息,從而使您可以在多個位置重復使用相同的信息。

內容

指定授權詳細信息

在郵遞員中打開請求后,使用“ 授權”選項卡“ 類型”下拉列表選擇一種身份驗證類型。郵遞員將提示您完成所選類型的相關詳細信息。正確的數據值將由服務器端的API決定-如果您使用的是第三方API,則需要向提供商咨詢以獲取任何所需的身份驗證詳細信息。

驗證類型

您可以在Newman和Postman監視器以及應用程序中使用這些身份驗證類型。

當您選擇一種類型時,郵遞員會指出您的詳細信息將包含在請求的哪些部分中,例如標題,正文,URL或查詢參數。單擊預覽請求以查看如何將您的身份驗證數據添加到請求中,然后再嘗試發送。

預覽請求

您的身份驗證數據將出現在請求的相關部分,例如,使用您的API可以處理的標准格式,將其附加到標頭中的文本。

承載令牌預覽

您的請求可以使用環境,集合和全局變量郵遞員不會保存標頭數據或查詢參數,以避免暴露敏感數據(例如API密鑰)。

發送后,您可以在Postman控制台中檢查整個請求的原始轉儲,包括身份驗證數據。

繼承認證

如果將請求分類在集合文件夾中,則可以指定身份驗證詳細信息以在整個組中重復使用。

選擇一個集合或文件夾集合郵遞員應用程序的左側。使用溢出按鈕(...)打開選項,然后選擇“ 編輯”以配置集合或文件夾詳細信息。

編輯收藏

在編輯視圖中,選擇“ 授權”選項卡。

館藏授權

默認情況下,集合或文件夾中的請求將繼承父項的身份驗證,這意味着它們將使用您在文件夾或集合級別指定的身份驗證。要針對單個請求更改此設置,請在請求的“ 授權”選項卡中進行其他選擇

繼承授權

首次創建集合或文件夾時,可以使用相同的技術預先選擇授權類型。

沒有授權

郵遞員將不會嘗試通過請求發送授權詳細信息,除非您指定身份驗證類型。如果您的請求不需要授權,請從“ 授權”選項卡的“ 類型”下拉列表中選擇“ 無身份驗證 ” 

不記名令牌

承載令牌允許使用訪問密鑰(例如JSON Web令牌(JWT))對請求進行身份驗證。令牌是文本字符串,包含在請求標頭中。在請求授權選項卡中,類型下拉列表中選擇承載令牌在“ 令牌”字段中,輸入您的API密鑰值-或為了增加安全性,將其存儲在變量中並按名稱引用該變量。

承載令牌預覽

郵遞員將令牌值以要求的格式附加到文本“ Bearer”上,如下所示:

Bearer <Your API key>

承載令牌預覽

基本認證

基本身份驗證涉及隨請求一起發送經過驗證的用戶名和密碼。在請求授權選項卡中,類型下拉列表中選擇基本身份驗證

基本認證

在“ 用戶名”和“ 密碼”字段中輸入您的API登錄詳細信息-為了提高安全性,您可以將其存儲在變量中。

單擊預覽請求以查看郵遞員如何將基本身份驗證詳細信息附加到請求。在請求標頭中,您將看到正在向Authorization標頭傳遞一個表示您的用戶名和密碼值的Base64編碼的字符串,該字符串附加到文本“ Basic”中,如下所示:

Basic <Base64 encoded username and password>

編碼的基本身份驗證

摘要授權

使用Digest auth,客戶端將向API發送第一個請求,服務器將以一些詳細信息進行響應,包括只能使用一次(一次)的數字,領域值和401未經授權的響應。然后,在第一個請求中,將包含用戶名和密碼的加密數據數組與從服務器接收到的數據相結合,發送回去。服務器使用傳遞的數據來生成加密的字符串,並將其與您發送的字符串進行比較,以認證您的請求。

請求的“ 授權”選項卡中,從“ 類型”下拉列表中選擇“摘要身份驗證 ” 郵遞員將顯示身份驗證請求兩個階段的字段,但是它將使用第一個請求從服務器返回的數據自動完成第二個請求的字段。要允許Postman自動執行流程,請輸入用戶名密碼值(或變量),這些值將與第二個請求一起發送。

摘要驗證

如果您不希望Postman自動提取數據,請選中此框以禁用重試請求。如果這樣做,則需要填寫高級字段並手動運行每個請求。

高級字段是可選的,郵遞員將在您的請求運行時嘗試自動填充它們。

  • 領域:服務器在WWW-Authenticate響應標頭中指定的字符串
  • Nonce:服務器在WWW-Authenticate響應標頭中指定的唯一字符串
  • Algorithm:一個字符串,指示用於生成摘要和校驗和的一對算法。
  • qop:應用於消息的保護質量。該值必須是服務器在WWW-Authenticate響應標頭中指定的替代值之一
  • Nonce Count(立即數):客戶端已發送的請求數量(包括當前請求)的十六進制計數,該請求中的隨機數值為。
  • 客戶端現時:客戶端提供的不透明的帶引號的字符串值,客戶端和服務器均使用該值來避免選擇的明文攻擊,提供相互身份驗證並提供某些消息完整性保護。
  • 不透明:服務器在WWW-Authenticate響應頭中指定的數據字符串,應與相同保護空間中的URI一起使用。

OAuth 1.0

OAuth 1.0允許客戶端應用程序訪問第三方API提供的數據。例如,作為服務的用戶,您可以授予另一個應用程序對該服務的數據訪問權限,而無需暴露您的登錄詳細信息。通過OAuth 1.0流訪問用戶數據需要在客戶端應用程序,用戶和服務提供商之間來回幾個請求。

OAuth 1.0有時被稱為“兩足”(僅在客戶端和服務器之間進行身份驗證)或“三足”(客戶端在其中向第三方服務的用戶請求數據)。

  • 為了使用第三方服務請求用戶數據,使用者(客戶端應用程序)使用密鑰和機密請求訪問令牌。
  • 服務提供者發出初始令牌(不提供對用戶數據的訪問),而使用者則向用戶請求授權。
  • 當用戶授予身份驗證時,消費者發出請求,將臨時令牌交換為訪問令牌,並通過用戶身份驗證。
  • 服務提供商返回訪問令牌,然后消費者可以向服務提供商提出請求以訪問用戶的數據。

請求的“ 授權”標簽中,從“ 類型”下拉列表中選擇OAuth 1.0

OAuth 1.0

輸入您的使用者密鑰使用者密鑰訪問令牌令牌密鑰值。您可以選擇設置高級細節,否則Postman會嘗試自動完成這些細節。

您可以在請求標頭或正文/ URL中包括身份驗證詳細信息-從下拉列表中選擇一個。如果要檢查詳細信息將如何包含在請求中,請單擊“ 預覽請求”。

如果您在標頭中發送OAuth 1.0數據,則會看到一個Authorization標頭,該標頭將您的密鑰和機密值以及附加的逗號分隔的必需詳細信息附加到字符串“ OAuth”中。

OAuth 1.0標頭

如果你在身體和URL發送的OAuth 1.0的數據,你會發現在請求或者將數據添加到身體參數取決於請求方法。

OAuth 1.0查詢參數

如果request方法為POSTPUT,並且請求正文類型為x-www-form-urlencoded,則Postman會將授權參數添加到請求正文中。否則,例如在GET請求中,您的密鑰和機密數據將在URL查詢參數中傳遞。

OAuth 1.0 auth參數值如下:

  • 消費者密鑰:用於識別服務提供商的消費者的值。
  • 消費者秘密:消費者用來建立密鑰所有權的一種值。
  • 訪問令牌:代表消費者訪問用戶數據的權限的值。
  • 令牌秘密:消費者用於建立給定令牌所有權的值。
  • 進階參數:

    • 簽名方法:建立給定令牌所有權的消費者機密。
    • 時間戳:服務器用來防止在時間窗口之外進行重放攻擊的時間戳。
    • Nonce:客戶端生成的隨機字符串。
    • 版本: OAuth身份驗證協議的版本(1.0)。
    • 領域:服務器在WWW-Authenticate響應標頭中指定的字符串

OAuth 1.0的某些實現要求將空參數添加到簽名中。如果需要,請選中將空參數添加到簽名復選框。

OAuth 2.0

OAuth 1.0允許客戶端應用程序訪問第三方API提供的數據。例如,作為服務的用戶,您可以授予另一個應用程序對該服務的數據訪問權限,而無需暴露您的登錄詳細信息。使用OAuth 2.0,您首先要檢索API的訪問令牌,然后使用該令牌來認證將來的請求。在API服務提供商之間,通過OAuth 2.0流訪問數據的方式有很大不同,但是通常涉及一些在客戶端應用程序,用戶和API之間來回的請求。

OAuth 2.0流程示例可以如下運行:

  • 客戶端應用程序請求用戶授權對其數據的訪問。
  • 如果用戶授予訪問權限,則應用程序然后向服務提供商請求訪問令牌,並傳遞用戶的訪問權限和身份驗證詳細信息以標識客戶端。
  • 服務提供商將驗證這些詳細信息並返回訪問令牌。
  • 客戶端使用訪問令牌通過服務提供商請求用戶數據。

請求的“ 授權”標簽中,從“ 類型”下拉列表中選擇OAuth 2.0指定是否要在請求URL或標題中傳遞身份驗證詳細信息。

OAuth 2.0

要請求訪問令牌,請點擊獲取新的訪問令牌

獲取訪問令牌

輸入您的客戶端應用程序的詳細信息,以及服務提供商提供的所有身份驗證詳細信息。這使您可以在Postman內部復制應用程序身份驗證流,以測試經過身份驗證的請求。

郵遞員將提示您根據OAuth 2.0 授予類型提供特定的詳細信息,這些類型可以是授權代碼隱式密碼憑證客戶端憑證

授權碼

授權碼授予類型要求用戶向提供者進行驗證-授權碼然后​​發送回客戶端應用程序,提取並與提供者交換以獲得訪問令牌以驗證后續請求。

要使用授權碼授予類型,請輸入客戶端應用程序回調URL(應在API提供商處注冊),以及API服務提供的各種詳細信息,包括Auth URL訪問令牌URLClient IDClient Secret

隱含的

隱式授予類型立即將訪問令牌返回到客戶端,而無需執行額外的身份驗證代碼步驟(因此安全性較低)。

要將隱式授予類型用於Postman中的請求,請輸入您已向API提供程序注冊回調URL,提供程序Auth URL以及已注冊應用程序客戶端ID

密碼憑證

OAuth 2.0密碼授予類型涉及直接從客戶端發送用戶名和密碼,因此,如果您要處理第三方數據,則不建議使用。

要使用密碼授予類型,請輸入API提供者的訪問令牌URL,以及用戶名密碼在某些情況下,您還需要提供客戶端ID和密碼。

客戶憑證

客戶端憑據授予類型通常不用於訪問用戶數據,而是用於與客戶端應用程序關聯的數據。

輸入提供者的訪問令牌URL以及您注冊的應用程序客戶端ID客戶端密鑰

請求OAuth 2.0令牌

請求新訪問令牌的參數的完整列表如下,具體取決於您的授予類型:

  • 令牌名稱:您要用於令牌的名稱
  • 授予類型:選項的下拉列表-這將取決於API服務提供商的要求。
  • 回調URL:身份驗證后重定向到的客戶端應用程序回調URL,應在API提供程序中注冊。如果未提供,Postman將使用默認的空URL並嘗試從中提取代碼或訪問令牌-如果此方法不適用於您的API,則可以使用以下URL:https://www.getpostman.com/oauth2/callback
  • 身份驗證URL: API提供程序授權服務器的端點,用於檢索身份驗證代碼。
  • 訪問令牌URL:提供商的身份驗證服務器,用於交換訪問令牌的授權代碼。
  • 客戶端ID:您在API提供商處注冊的客戶端應用程序的ID。
  • 客戶端機密: API提供商提供給您的客戶端機密。
  • 范圍:您所請求的訪問范圍,其中可能包含多個以空格分隔的值。
  • 狀態:不透明的值,以防止跨站點請求偽造。
  • 客戶端身份驗證:一個下拉列表-在標頭中發送基本身份驗證請求,或在請求正文中發送客戶端憑據。升級到新版本后,請更改此下拉菜單中的值,以避免客戶端身份驗證出現問題。

配置完成后,點擊請求令牌如果您成功從API接收到令牌,則將看到其詳細信息,到期時間以及可選的刷新令牌,當當前令牌過期時,您可以使用該令牌來檢索新的訪問令牌。單擊“ 使用令牌”以選擇返回的值。

任何成功檢索的令牌都將在請求“ 可用令牌”下拉列表中列出。選擇一個發送您的請求。在下拉列表中選擇管理令牌以查看更多詳細信息或刪除您的令牌。

在Postman中刪除令牌不會撤消訪問權限。只有發出令牌的服務器才能撤銷它。

鷹認證

Hawk身份驗證使您可以使用部分密碼驗證來授權請求​​。

請求的“ 授權”選項卡中,從“ 類型”下拉列表中選擇“ Hawk身份驗證 ” 

鷹認證

Hawk Auth IDHawk Auth KeyAlgorithm字段中輸入您的詳細信息您可以選擇設置高級詳細信息,但必要時Postman會嘗試為其生成值。

Hawk身份驗證參數如下:

  • Hawk身份驗證ID:您的API身份驗證ID值。
  • Hawk身份驗證密鑰:您的API身份驗證密鑰值。
  • 算法:用於創建消息認證碼(MAC)的哈希算法。
  • 進階參數:

    • 用戶:用戶名。
    • Nonce:客戶端生成的隨機字符串。
    • ext:與請求一起發送的任何特定於應用程序的信息。
    • app:憑據與應用程序之間的綁定,以防止攻擊者使用發布給他人的憑據。
    • dlg:頒發證書的應用程序的ID。
    • 時間戳:服務器用來防止在時間窗口之外進行重放攻擊的時間戳。

AWS簽名

AWS是Amazon Web Services請求的授權工作流程。AWS使用基於鍵控HMAC(哈希消息身份驗證代碼)的自定義HTTP方案進行身份驗證。

官方的AWS Signature文檔提供了更多詳細信息:

請求的“ 授權”選項卡中,從“ 類型”下拉列表中選擇“ AWS簽名 ” 

AWS簽名身份驗證

直接在字段中或通過變量輸入訪問密鑰和秘密值,以提高安全性。

您可以選擇設置高級字段,但必要時Postman會嘗試自動生成這些字段。

AWS Signature參數如下:

  • AWS區域:接收請求的區域(默認為us-east-1)。
  • 服務名稱:接收請求的服務。
  • 會話令牌:僅在使用臨時安全憑證時才需要。

NTLM身份驗證

Windows質詢/響應(NTLM)是Windows操作系統和獨立系統的授權流程。

請求的“ 授權”選項卡中,從“ 類型”下拉列表中選擇“ NTLM身份驗證 ” 

NTLM身份驗證

輸入用於NTLM訪問的用戶名密碼(使用變量以避免直接輸入值)。您可以選擇指定高級參數,但必要時Postman會嘗試自動完成這些參數。默認情況下,您的請求將在提取第一次收到的數據后第二次運行-您可以通過選中此復選框來禁用它。

NTLM身份驗證的高級參數如下:

  • 域:要對其進行身份驗證的域或主機。
  • 工作站: PC的主機名。

Akamai EdgeGrid

Akamai Edgegrid是Akamai開發和使用的授權幫助程序。

請求的“ 授權”選項卡中,從“ 類型”下拉列表中選擇Akamai EdgeGrid

Akamai EdgeGrid身份驗證

使用變量來輸入Access TokenClient TokenClient Secret,以提高安全性-在Akamai注冊客戶端應用程序時,您將收到這些詳細信息。

有關獲取憑據的信息,請參閱Akamai開發人員-授權您的客戶端

同步cookie

如果瀏覽器中有會話cookie,則可以使用Interceptor將它們同步到Postman(請參閱Interceptor擴展Cookies)以獲取更多詳細信息。

下一步

如果您在獲取請求進行身份驗證和成功運行時遇到問題,請嘗試對API請求進行故障排除中的一些技巧如果仍然存在身份驗證問題,請在Postman論壇上簽出身份驗證標簽


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM