簡體   English   中英

授權碼包含什么?

[英]What does a Authorization Code contains?

授權碼流-用戶從客戶端應用登錄,授權服務器向應用返回授權碼。 然后,應用程序將授權碼交換為訪問令牌,因此,我想知道授權服務器作為授權碼發送的內容是什么?我的意思是授權碼包含什么代碼或簽名?

oAuth的RFC在1.3.1節(稱為授權代碼)中說明了oAuth中的授權代碼。 看到:

通過使用授權服務器作為客戶端和資源所有者之間的中介,可以獲取授權代碼。 客戶端不是直接從資源所有者請求授權,而是將資源所有者定向到授權服務器(通過[RFC2616]中定義的用戶代理),后者又將資源所有者與授權代碼一起引導回客戶端。

在使用授權碼將資源所有者引導回客戶端之前,授權服務器對資源所有者進行身份驗證並獲得授權。 由於資源所有者僅通過授權服務器進行身份驗證,因此資源所有者的憑據永遠不會與客戶端共享。

授權代碼提供了一些重要的安全益處,例如對客戶端進行身份驗證的能力,以及將訪問令牌直接傳輸到客戶端的過程,而無需將其傳遞給資源所有者的用戶代理,並且可能會將其暴露給其他人,包括資源所有者。

在4.1授權代碼授權和10.5授權代碼中將使用框圖更詳細地說明該功能。 看到:

上面引用的文檔中的一些相關引用:

授權代碼的傳輸應在安全通道上進行,如果URI標識了網絡資源,則客戶端應要求使用帶有其重定向URI的TLS。 由於授權代碼是通過用戶代理重定向發送的,因此有可能通過用戶代理歷史記錄和HTTP引用來源標頭公開它們。

授權代碼用作純文本承載憑據,用於驗證在授權服務器上授予授權的資源所有者是否與返回客戶端以完成該過程的資源所有者相同。 因此,如果客戶端依靠授權碼進行自己的資源所有者身份驗證,則客戶端重定向終結點務必要求使用TLS。

授權碼必須是短期的且只能使用一次。 如果授權服務器觀察到多次嘗試為訪問令牌交換授權代碼,則授權服務器應嘗試基於泄露的授權代碼撤回已授予的所有訪問令牌。

如果可以對客戶端進行身份驗證,則授權服務器必須對客戶端進行身份驗證,並確保將授權代碼發布給相同的客戶端。

有關更多詳細信息,請參見RFC 6749的其余部分:

暫無
暫無

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

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