API 使用授權(quán)來確保客戶端請(qǐng)求安全地訪問數(shù)據(jù)。這可能涉及對(duì)請(qǐng)求的發(fā)送者進(jìn)行身份驗(yàn)證,并確認(rèn)他們有權(quán)訪問或操作相關(guān)數(shù)據(jù)。如果您正在構(gòu)建 API,則可以從多種身份驗(yàn)證模型中進(jìn)行選擇。如果您要集成第三方 API,所需的授權(quán)將由 API 提供商指定。
您可以將身份驗(yàn)證詳細(xì)信息與您在 Postman 中發(fā)送的任何請(qǐng)求一起傳遞。授權(quán)數(shù)據(jù)可以包含在標(biāo)頭、正文中,或作為請(qǐng)求的參數(shù)。如果您在“授權(quán)”選項(xiàng)卡中輸入您的身份驗(yàn)證詳細(xì)信息,Postman 將自動(dòng)為您選擇的身份驗(yàn)證類型填充請(qǐng)求的相關(guān)部分。您可以使用變量和集合來更安全有效地定義授權(quán)細(xì)節(jié),使您能夠在多個(gè)地方重復(fù)使用相同的信息。
在 Postman 中打開請(qǐng)求后,使用“授權(quán)”選項(xiàng)卡選擇身份驗(yàn)證類型,然后完成所選類型的相關(guān)詳細(xì)信息。正確的數(shù)據(jù)值將由服務(wù)器端的 API 確定。如果您使用的是第三方 API,請(qǐng)參閱提供商的文檔以了解任何所需的身份驗(yàn)證詳細(xì)信息。
您可以將這些身份驗(yàn)證類型與 Newman 和監(jiān)視器以及 Postman 一起使用。
當(dāng)您從“類型”下拉列表中選擇一種類型時(shí),Postman 將指示您的詳細(xì)信息將包含在請(qǐng)求的哪些部分中,例如標(biāo)頭、正文、URL 或查詢參數(shù)。當(dāng)您選擇或輸入它們時(shí),Postman 會(huì)將您的身份驗(yàn)證詳細(xì)信息添加到請(qǐng)求的相關(guān)部分,因此您可以在運(yùn)行請(qǐng)求之前預(yù)覽數(shù)據(jù)的發(fā)送方式。
您的授權(quán)數(shù)據(jù)將出現(xiàn)在請(qǐng)求的相關(guān)部分,例如標(biāo)題選項(xiàng)卡中。要顯示自動(dòng)添加的標(biāo)題,請(qǐng)選擇hidden。
將鼠標(biāo)懸停在標(biāo)題上以獲取有關(guān)添加位置的信息。要更改授權(quán)標(biāo)頭,請(qǐng)返回授權(quán)選項(xiàng)卡并更新您的配置。
您不能直接在“標(biāo)頭”選項(xiàng)卡中覆蓋由您的授權(quán)選擇添加的標(biāo)頭。如果您需要與 Postman 自動(dòng)生成的不同的身份驗(yàn)證標(biāo)頭,請(qǐng)更改Authorization中的設(shè)置,或刪除您的身份驗(yàn)證設(shè)置并手動(dòng)添加標(biāo)頭。
您的請(qǐng)求授權(quán)可以使用環(huán)境、集合和全局變量。Postman 不保存標(biāo)頭數(shù)據(jù)或查詢參數(shù),以避免暴露 API 密鑰等敏感數(shù)據(jù)。
發(fā)送后,您可以在 Postman 控制臺(tái)中檢查整個(gè)請(qǐng)求的原始轉(zhuǎn)儲(chǔ),包括身份驗(yàn)證數(shù)據(jù)。
如果您將請(qǐng)求分組到集合和文件夾中,則可以指定要在整個(gè)組中重復(fù)使用的身份驗(yàn)證詳細(xì)信息。
默認(rèn)情況下,集合或文件夾內(nèi)的請(qǐng)求將從父級(jí)繼承身份驗(yàn)證,這意味著它們將使用您在文件夾或集合級(jí)別指定的相同身份驗(yàn)證。要為單個(gè)請(qǐng)求更改此設(shè)置,請(qǐng)?jiān)谡?qǐng)求授權(quán)選項(xiàng)卡中進(jìn)行不同的選擇。
從授權(quán)選項(xiàng)卡上的類型下拉列表中選擇一種類型。您可以為請(qǐng)求、集合或文件夾選擇授權(quán)類型。
除非您指定身份驗(yàn)證類型,否則 Postman 不會(huì)隨請(qǐng)求發(fā)送授權(quán)詳細(xì)信息。如果您的請(qǐng)求不需要授權(quán),請(qǐng)從授權(quán)選項(xiàng)卡類型下拉列表中選擇無授權(quán)。
使用 API 密鑰身份驗(yàn)證,您可以在請(qǐng)求標(biāo)頭或查詢參數(shù)中向 API 發(fā)送鍵值對(duì)。在請(qǐng)求授權(quán)選項(xiàng)卡中,從類型列表中選擇API 密鑰。輸入您的鍵名和值,然后從“添加到”下拉列表中選擇“標(biāo)頭”或“查詢參數(shù)”。您可以將您的值存儲(chǔ)在變量中以獲得額外的安全性。
Postman 會(huì)將相關(guān)信息附加到您的請(qǐng)求Headers或 URL 查詢字符串中。
不記名令牌使請(qǐng)求能夠使用訪問密鑰進(jìn)行身份驗(yàn)證,例如 JSON Web 令牌 (JWT)。令牌是一個(gè)文本字符串,包含在請(qǐng)求標(biāo)頭中。在請(qǐng)求授權(quán)選項(xiàng)卡中,從類型下拉列表中選擇Bearer Token。在令牌字段中,輸入您的 API 密鑰值。為了增加安全性,將其存儲(chǔ)在一個(gè)變量中并按名稱引用該變量。
Postman 會(huì)將令牌值Bearer以要求的格式附加到請(qǐng)求授權(quán)標(biāo)頭的文本中,如下所示:
Bearer <Your API key>
如果需要自定義前綴,請(qǐng)使用密鑰為Authorization的API 密鑰。
Postman 還支持生成 JWT 承載令牌來授權(quán)請(qǐng)求??。您可以在編輯器中輸入負(fù)載,然后生成 JWT 令牌并將其添加到請(qǐng)求中。在請(qǐng)求授權(quán)選項(xiàng)卡中,從類型下拉列表中選擇JWT Bearer。
在高級(jí)配置部分,您還可以配置以下項(xiàng)目。如果您不配置它們,它們會(huì)自動(dòng)生成。
基本身份驗(yàn)證涉及在您的請(qǐng)求中發(fā)送經(jīng)過驗(yàn)證的用戶名和密碼。在請(qǐng)求授權(quán)選項(xiàng)卡中,從類型下拉列表中選擇基本身份驗(yàn)證。
在用戶名和密碼字段中輸入您的 API 用戶名和密碼。為了額外的安全性,將它們存儲(chǔ)在變量中。
在請(qǐng)求標(biāo)頭中,授權(quán)標(biāo)頭向 API 傳遞一個(gè) Base64 編碼的字符串,表示您的用戶名和密碼值,附加到文本中,Basic如下所示:
Basic <Base64 encoded username and password>
使用 Digest auth,客戶端向 API 發(fā)送第一個(gè)請(qǐng)求,服務(wù)器以一些詳細(xì)信息作為響應(yīng),包括只能使用一次的數(shù)字(隨機(jī)數(shù))、領(lǐng)域值和401未經(jīng)授權(quán)的響應(yīng)。然后,您發(fā)送回一個(gè)加密的數(shù)據(jù)數(shù)組,其中包括用戶名和密碼,以及在第一個(gè)請(qǐng)求中從服務(wù)器接收到的數(shù)據(jù)。服務(wù)器使用傳遞的數(shù)據(jù)生成加密字符串并將其與您發(fā)送的內(nèi)容進(jìn)行比較以驗(yàn)證您的請(qǐng)求。
在請(qǐng)求的Authorization選項(xiàng)卡中,從Type下拉列表中選擇Digest Auth。Postman 將為身份驗(yàn)證請(qǐng)求的兩個(gè)階段提供字段。它將使用第一個(gè)請(qǐng)求從服務(wù)器返回的數(shù)據(jù)自動(dòng)完成高級(jí)部分中第二個(gè)請(qǐng)求的字段。要使 Postman 能夠自動(dòng)執(zhí)行流程,請(qǐng)輸入用戶名和密碼值(或變量),這些值將與第二個(gè)請(qǐng)求一起發(fā)送。
如果您不希望 Postman 自動(dòng)提取數(shù)據(jù),請(qǐng)?jiān)谧髠?cè)欄中選擇是,禁用重試請(qǐng)求。如果這樣做,您將需要完成高級(jí)字段并手動(dòng)運(yùn)行每個(gè)請(qǐng)求。
在高級(jí)部分中設(shè)置字段是可選的。當(dāng)您的第一個(gè)請(qǐng)求運(yùn)行時(shí),Postman 會(huì)自動(dòng)填充它們。
OAuth 1.0 使客戶端應(yīng)用程序能夠訪問第三方 API 提供的數(shù)據(jù)。例如,作為服務(wù)的用戶,您可以授予另一個(gè)應(yīng)用程序訪問您使用該服務(wù)的數(shù)據(jù)的權(quán)限,而無需暴露您的用戶名和密碼等詳細(xì)信息。使用 OAuth 1.0 訪問用戶數(shù)據(jù)涉及客戶端應(yīng)用程序、用戶和服務(wù)提供商之間的一些來回請(qǐng)求。
OAuth 1.0 有時(shí)被稱為“兩條腿”(僅在客戶端和服務(wù)器之間進(jìn)行身份驗(yàn)證)或“三條腿”(客戶端為第三方服務(wù)的用戶請(qǐng)求數(shù)據(jù))。示例 OAuth 1.0 流程可以按如下方式運(yùn)行:
Postman 支持OAuth Core 1.0 Revision A。
要使用 OAuth 1.0,請(qǐng)執(zhí)行以下操作:
如果您在標(biāo)頭中發(fā)送 OAuth 1.0 數(shù)據(jù),發(fā)送您的密鑰和秘密值的授權(quán)標(biāo)頭將附加到字符串以及OAuth其他以逗號(hào)分隔的必需詳細(xì)信息。
當(dāng)您完成授權(quán)設(shè)置中的所有必填字段后,Postman 會(huì)將 OAuth 1.0 信息附加到請(qǐng)求標(biāo)頭。
如果您在正文和 URL 中發(fā)送 OAuth 1.0 數(shù)據(jù),則數(shù)據(jù)將添加到請(qǐng)求正文或參數(shù)中,具體取決于請(qǐng)求方法。
如果請(qǐng)求方法是POST或PUT,并且請(qǐng)求正文類型是x-www-form-urlencoded,Postman 將在請(qǐng)求正文中添加授權(quán)參數(shù)。否則,例如在GET請(qǐng)求中,您的密鑰和機(jī)密數(shù)據(jù)將在 URL 查詢參數(shù)中傳遞。
OAuth 1.0 auth 參數(shù)值如下:
如果您的 OAuth 1.0 服務(wù)器實(shí)現(xiàn)需要它,請(qǐng)選擇Add empty parameters to signature。您還可以選中復(fù)選框以對(duì)請(qǐng)求的授權(quán)標(biāo)頭中的參數(shù)進(jìn)行編碼。
使用 OAuth 2.0,您首先檢索 API 的訪問令牌,然后使用該令牌對(duì)未來的請(qǐng)求進(jìn)行身份驗(yàn)證。使用 OAuth 2.0 訪問數(shù)據(jù)在 API 服務(wù)提供商之間差異很大,但通常涉及客戶端應(yīng)用程序、用戶和 API 之間的一些來回請(qǐng)求。
示例 OAuth 2.0 流程可以按如下方式運(yùn)行:
要使用 OAuth 2.0,請(qǐng)執(zhí)行以下操作:
授權(quán)代碼授予類型要求用戶向提供者進(jìn)行身份驗(yàn)證——然后將授權(quán)代碼發(fā)送回客戶端應(yīng)用程序,提取并與提供者交換訪問令牌以驗(yàn)證以后的請(qǐng)求。
要使用授權(quán)代碼授予類型,請(qǐng)輸入客戶端應(yīng)用程序的回調(diào) URL(需要向 API 提供商注冊(cè)),以及 API 服務(wù)提供的各種詳細(xì)信息,包括Auth URL、Access Token URL、Client ID和Client Secret .
如果愿意,您可以在 Web 瀏覽器而不是 Postman 中輸入您的授權(quán)詳細(xì)信息,方法是選擇Authorize using browser。
您可以將 PKCE(用于代碼交換的證明密鑰)與 OAuth 2.0 一起使用。當(dāng)您選擇Authorization Code (With PKCE)時(shí),另外兩個(gè)字段將可用于Code Challenge Method和Code Verifier。您可以選擇使用SHA-256或Plain算法來生成代碼挑戰(zhàn)。驗(yàn)證器是一個(gè)可選的 43-128 字符的字符串,用于將授權(quán)請(qǐng)求連接到令牌請(qǐng)求。
建議使用授權(quán)碼(使用 PKCE)授權(quán)類型與使用瀏覽器進(jìn)行授權(quán)相結(jié)合,以防止授權(quán)碼攔截攻擊。
隱式授權(quán)類型向客戶端返回一個(gè)訪問令牌,而不需要額外的授權(quán)代碼步驟(因此安全性較低)。
要在 Postman 中對(duì)您的請(qǐng)求使用隱式授權(quán)類型,請(qǐng)輸入您已向 API 提供商注冊(cè)的回調(diào) URL 、提供商Auth URL以及您已注冊(cè)的應(yīng)用程序的客戶端 ID 。
如果愿意,您可以在 Web 瀏覽器而不是 Postman 中輸入您的授權(quán)詳細(xì)信息,方法是選擇Authorize using browser。
OAuth 2.0 密碼授予類型涉及直接從客戶端發(fā)送用戶名和密碼,因此如果您正在處理第三方數(shù)據(jù),則不推薦使用。
要使用密碼授予類型,請(qǐng)輸入您的 API 提供商的訪問令牌 URL以及用戶名和密碼。在某些情況下,您還需要提供客戶端 ID 和密碼。
客戶端憑據(jù)授權(quán)類型通常不用于訪問用戶數(shù)據(jù),而是用于與客戶端應(yīng)用程序關(guān)聯(lián)的數(shù)據(jù)。
輸入提供商的Access Token URL,以及您注冊(cè)的應(yīng)用程序的Client ID和Client Secret。
請(qǐng)求新訪問令牌的完整參數(shù)列表如下,具體取決于您的授權(quán)類型。
在配置選項(xiàng)選項(xiàng)卡上:
在高級(jí)選項(xiàng)選項(xiàng)卡上:
配置完成后,選擇Get New Access Token。
當(dāng)您使用授權(quán)代碼或隱式授權(quán)類型時(shí),系統(tǒng)將提示您提供憑據(jù)以檢索訪問令牌以在以后的請(qǐng)求中使用。默認(rèn)情況下,當(dāng)您選擇Request Token時(shí),Postman 將顯示一個(gè)彈出式瀏覽器。您可以改為選擇使用系統(tǒng)的默認(rèn) Web 瀏覽器進(jìn)行身份驗(yàn)證。選擇使用瀏覽器授權(quán),當(dāng)您在瀏覽器中完成身份驗(yàn)證時(shí),回調(diào) URL 將自動(dòng)填充以返回給 Postman,以便您的請(qǐng)求可以使用身份驗(yàn)證成功后返回的令牌。
來自 API 的令牌包括其詳細(xì)信息、到期時(shí)間和可選的刷新令牌,您可以在當(dāng)前令牌到期時(shí)使用它來檢索新的訪問令牌。選擇使用令牌以選擇返回值。
任何成功檢索到的令牌都將列在請(qǐng)求可用令牌下拉列表中。選擇一個(gè)與您的請(qǐng)求一起發(fā)送。在下拉列表中選擇管理令牌以查看更多詳細(xì)信息或刪除您的令牌。
如果身份驗(yàn)證失敗或超時(shí),Postman 將顯示一條錯(cuò)誤消息。您可以在控制臺(tái)中檢查錯(cuò)誤詳細(xì)信息,重試以再次嘗試身份驗(yàn)證,或者在繼續(xù)之前編輯您的身份驗(yàn)證詳細(xì)信息。
在 Postman 中刪除令牌不會(huì)撤銷訪問權(quán)限。只有頒發(fā)令牌的服務(wù)器才能撤銷它。
在 Postman 中生成的 OAuth 2.0 令牌過期之前,Postman 會(huì)在您發(fā)送使用它的請(qǐng)求之前自動(dòng)在后臺(tái)刷新它。刷新的訪問令牌在使用它的任何請(qǐng)求中更新。自動(dòng)刷新是默認(rèn)行為。
要關(guān)閉或打開此功能,請(qǐng)選擇自動(dòng)刷新訪問令牌。要手動(dòng)刷新令牌,請(qǐng)選擇Refresh。如果令牌在第二天到期,則會(huì)顯示令牌的到期時(shí)間。
存在刷新令牌時(shí)可以使用自動(dòng)刷新。如果不存在刷新令牌,則自動(dòng)刷新訪問令牌切換和手動(dòng)刷新選項(xiàng)不可用。要檢查是否存在刷新令牌,請(qǐng)?jiān)诹钆葡吕斜碇羞x擇管理令牌。如果不存在刷新令牌,請(qǐng)檢查授權(quán)服務(wù)。沒有刷新令牌,郵遞員無法刷新訪問令牌。
您可以在手動(dòng)發(fā)送請(qǐng)求時(shí)使用自動(dòng)刷新。自動(dòng)刷新不用于同一集合的計(jì)劃運(yùn)行或監(jiān)視器。
要使其他 Postman 用戶能夠查看和使用 OAuth 2.0 訪問令牌,請(qǐng)選擇共享訪問令牌。
要撤銷其他用戶對(duì)同步令牌的訪問權(quán)限,請(qǐng)執(zhí)行以下操作:
在您撤銷訪問權(quán)限后,有權(quán)訪問該請(qǐng)求的其他用戶將無法查看或使用該令牌。
Postman 支持使用訪問令牌或 ID 令牌進(jìn)行 OAuth 2.0 授權(quán)。訪問令牌使 OAuth 客戶端能夠調(diào)用 API。ID令牌包含有關(guān)經(jīng)過身份驗(yàn)證的用戶的信息。OAuth 客戶端可以使用此信息來定制他們的體驗(yàn)。
如果存在 ID 令牌,您可以在使用令牌類型下拉列表中選擇令牌類型(訪問令牌或ID 令牌)。如果不存在 ID 令牌,則此下拉列表不可用。要檢查 ID 令牌是否存在,請(qǐng)?jiān)诹钆葡吕斜碇羞x擇管理令牌。
Hawk 身份驗(yàn)證使您能夠使用部分加密驗(yàn)證來授權(quán)請(qǐng)求??。
要使用 Hawk 身份驗(yàn)證,請(qǐng)執(zhí)行以下操作:
當(dāng)您的請(qǐng)求的Authorization選項(xiàng)卡中的所需詳細(xì)信息完成后,Postman 會(huì)將它們添加到 Headers中。
Hawk認(rèn)證參數(shù)如下:
AWS 是 Amazon Web Services 請(qǐng)求的授權(quán)工作流程。AWS 使用基于鍵控 HMAC(哈希消息身份驗(yàn)證代碼)的自定義 HTTP 方案進(jìn)行身份驗(yàn)證。
官方 AWS 簽名文檔提供了更多詳細(xì)信息:
要使用 AWS 簽名,請(qǐng)執(zhí)行以下操作:
AWS 簽名參數(shù)如下:
Windows 質(zhì)詢/響應(yīng) (NTLM) 是 Windows 操作系統(tǒng)和獨(dú)立系統(tǒng)的授權(quán)流程。
要使用 NTLM 身份驗(yàn)證,請(qǐng)執(zhí)行以下操作:
NTLM auth 的高級(jí)參數(shù)如下:
Akamai EdgeGrid 是 Akamai 開發(fā)和使用的授權(quán)助手。
要使用 Akamai EdgeGrid,請(qǐng)執(zhí)行以下操作:
當(dāng)您的請(qǐng)求的Authorization選項(xiàng)卡中的所需詳細(xì)信息完成后,Postman 會(huì)將它們添加到 Headers中。
有關(guān)獲取憑據(jù)的信息,請(qǐng)參閱Akamai 開發(fā)人員 - 授權(quán)您的客戶端。
如果您的瀏覽器中有會(huì)話 cookie,您可以使用攔截器將它們同步到 Postman。有關(guān)詳細(xì)信息,請(qǐng)參閱攔截器擴(kuò)展和Cookie 。
如果您在獲取請(qǐng)求以進(jìn)行身份??驗(yàn)證并成功運(yùn)行時(shí)遇到問題,請(qǐng)查看API 請(qǐng)求故障排除中的提示。如果您仍然有身份驗(yàn)證問題,請(qǐng)查看Postman 論壇上的身份驗(yàn)證標(biāo)簽。
更多建議: