API通過授權來確保客戶端請求安全地訪問數據。主要包括:發送者身份驗證和訪問權限認證。Postman中Authorization授權機制主要包括:下面10種
Inheriting auth繼承認證
No auth 無授權認證
Bearer Token令牌
Basic auth基本授權認證
Digest auth
OAuth 1.0
OAuth 2.0
Hawk authentication
AWS Signature
NLTM authentication
1Inheriting auth繼承認證
如果將請求添加到集合和文件夾中,則可以指定身份驗證詳細信息以在整個組中重複使用。
選擇一個集合或文件夾集合郵遞員應用程序的左側。使用溢出按鈕(…)打開選項,然後選擇“ 編輯”以配置集合或文件夾詳細信息。
默認情況下,集合或文件夾中的請求將繼承父項的身份驗證,這意味着它們將使用您在文件夾或集合級別指定的身份驗證。要針對單個請求更改此設置,請在請求的“ 授權”選項卡中進行其他選擇。
2Bearer Token令牌
Bearer Token通過使用訪問密鑰對請求進行身份驗證。令牌是文本字符串,包含在請求標頭中。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“Bearer Token”。在“ Token ”字段中,輸入您的API密鑰值,也採用變量引用方式,便於管理和安全保護。
Postman將Token值附加到請求頭中,加上“ Bearer ”上,如下所示:
3Basic auth基本授權認證
Basic auth基本授權認證隨請求一起發送經過驗證的用戶名和密碼。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“Basic auth”。
在“ Username”和“ Password”字段中輸入您的API登錄信息,也採用變量引用方式,便於管理和安全保護。
在請求頭中,您將看到Authorization標頭將向API傳遞一個代表您的用戶名和密碼值的Base64編碼的字符串,該字符串附加到文本“ Basic”中,如下所示:
4Digest auth摘要授權
Digest auth摘要授權中,首先客戶端向服務器發送請求,服務器返回客戶端:nonce和realm;客戶端將用戶名、密碼、服務端返回的nonce值、HTTP請求方法和參數等組合後進行MD5運算,把計算到的摘要信息發送給服務器。服務器使用傳遞的數據來生成加密的字符串,並將其與您發送的字符串進行比較,以認證您的請求。
默認情況下,集合或文件夾中的請求將繼承父項的身份驗證,這意味着它們將使用您在文件夾或集合級別指定的身份驗證。要針對單個請求更改此設置,請在請求的“ 授權”選項卡中進行其他選擇。
2Bearer Token令牌
Bearer Token通過使用訪問密鑰對請求進行身份驗證。令牌是文本字符串,包含在請求標頭中。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“Bearer Token”。在“ Token ”字段中,輸入您的API密鑰值,也採用變量引用方式,便於管理和安全保護。
Postman將Token值附加到請求頭中,加上“ Bearer ”上,如下所示:
3Basic auth基本授權認證
Basic auth基本授權認證隨請求一起發送經過驗證的用戶名和密碼。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“Basic auth”。
在“ Username”和“ Password”字段中輸入您的API登錄信息,也採用變量引用方式,便於管理和安全保護。
在請求頭中,您將看到Authorization標頭將向API傳遞一個代表您的用戶名和密碼值的Base64編碼的字符串,該字符串附加到文本“ Basic”中,如下所示:
4Digest auth摘要授權
Digest auth摘要授權中,首先客戶端向服務器發送請求,服務器返回客戶端:nonce和realm;客戶端將用戶名、密碼、服務端返回的nonce值、HTTP請求方法和參數等組合後進行MD5運算,把計算到的摘要信息發送給服務器。服務器使用傳遞的數據來生成加密的字符串,並將其與您發送的字符串進行比較,以認證您的請求。
如果您不希望Postman自動提取數據,取消“Yes,disable retrying the request”。如果這樣做,則需要填寫高級字段並手動運行每個請求。
高級字段是可選的,Postman將在您的請求運行時嘗試自動填充它們。
realm:服務器在WWW-Authenticate響應標頭中指定的字符串。
Nonce:服務器在WWW-Authenticate響應標頭中指定的唯一字符串。
Algorithm:一個字符串,指示用於生成摘要和校驗和的一對算法。
qop:應用於消息的保護質量。該值必須是服務器在WWW-Authenticate響應標頭中指定的替代值之一。
Nonce Count(立即數):客戶端已發送的請求數量(包括當前請求)的十六進制計數,該請求中的隨機數值爲。
Client Nonce:客戶端提供的不透明的帶引號的字符串值,客戶端和服務器均使用該值來避免選擇的明文攻擊,提供相互身份驗證並提供某些消息完整性保護。
Opaque:服務器在WWW-Authenticate響應頭中指定的數據字符串,應與相同保護空間中的URI一起使用。
5OAuth 1.0
OAuth 1.0允許客戶端應用程序訪問第三方API提供的數據。例如,作爲服務的用戶,您可以授予另一個應用程序對該服務的數據訪問權限,而無需暴露您的登錄詳細信息。
在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“OAuth 1.0”。
輸入:Consumer Key, Consumer Secret, Access Token和Token Secret
“Add authorization data to”:“Request Body/Request URL,授權信息通過Body(POST請求)或者URL(GET請求)發出;“Request Headers”授權信息通過請求頭髮出。
6OAuth 2.0
OAuth 2.0認證流程:
客戶端應用程序請求用戶授權對其數據的訪問。
如果用戶授予訪問權限,則應用程序然後向服務提供商請求訪問令牌,並傳遞用戶的訪問權限和身份驗證詳細信息以標識客戶端。
服務提供商將驗證這些詳細信息並返回訪問令牌。
客戶端使用訪問令牌通過服務提供商請求用戶數據。
在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“OAuth 2.0”。
要請求訪問令牌,請點擊“Get New Access Token”。
您的請求具有令牌值後,它將顯示在請求標頭中。
輸入您的客戶端應用程序的詳細信息,以及服務提供商提供的所有身份驗證詳細信息。這使您可以在Postman內部複製應用程序身份驗證流,以測試經過身份驗證的請求。
OAuth 2.0 授予類型:Authorization code, Implicit, Password credentials和Client credentials。
7Hawk authentication身份驗證
Hawk authentication身份驗證使用部分密碼驗證來授權請求。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“Hawk authentication”。
在Hawk Auth ID,Hawk Auth Key和Algorithm字段中輸入您的詳細信息。您可以選擇設置高級詳細信息,但必要時Postman會嘗試爲其生成值。
Hawk身份驗證參數如下:
Hawk身份驗證ID:您的API身份驗證ID值。
Hawk身份驗證密鑰:您的API身份驗證密鑰值。
Algorithm:用於創建消息認證碼(MAC)的哈希算法。
“ADVANCED”參數:
用戶:用戶名。
Nonce:客戶端生成的隨機字符串。
ext:與請求一起發送的任何特定於應用程序的信息。
app:憑據與應用程序之間的綁定,以防止攻擊者使用發佈給他人的憑據。
dlg:頒發證書的應用程序的ID。
Timestamp:服務器用來防止在時間窗口之外進行重放攻擊的時間戳。
8AWS Signature簽名授權
AWS是Amazon Web Services請求的授權工作流程。AWS使用基於鍵控HMAC(哈希消息身份驗證代碼)的自定義HTTP方案進行身份驗證。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“AWS Signature”。
當您選擇AWS Signature auth方法時,Postman將在請求標頭中添加Authorization和。X-Amz-Date
AWS Signature參數如下:
AWS Region:接收請求的區域(默認爲us-east-1)。
Service Name:接收請求的服務。
Session Token:僅在使用臨時安全憑證時才需要。
9NLTM authentication
Windows質詢/響應(NTLM)是Windows操作系統和獨立系統的授權流程。在請求“Authorization ”選項卡中,從“TYPE”下拉列表中選擇“NLTM authentication”。
輸入用於NTLM訪問的“Username”和“Password”(使用變量以避免直接輸入值)。您可以選擇指定高級參數,但必要時Postman會嘗試自動完成這些參數。默認情況下,您的請求將在提取第一次收到的數據後第二次運行-您可以通過選中此複選框來禁用它。
NTLM身份驗證的高級參數如下:
Domain:要對其進行身份驗證的域或主機。
Workstation: PC的主機名。