簡體   English   中英

為什么OAuth 2擁有資源所有者密碼憑據授予?

[英]Why does OAuth 2 have Resource Owner Password Credentials Grant?

為什么有人會將OAuth 2用於此類撥款? 我的意思是,如果客戶端已經擁有資源所有者的名稱和密碼,為什么不使用資源服務器使用的任何身份驗證工具作為資源所有者進行身份驗證?

我不明白這里的理由。 有人可以解釋一下嗎?

如規范所述,資源所有者密碼憑據授權僅用於遷移目的,僅適用於客戶端和授權服務器由同一方控制的方案, https://tools.ietf.org/html/rfc6749 #section-1.3.3

資源所有者密碼憑證(即用戶名和密碼)可以直接用作授權授權以獲得訪問權限
令牌。 憑證只應在有高價時使用
資源所有者和客戶之間的信任程度(例如,
客戶端是設備操作系統的一部分或具有高權限
應用程序),以及其他授權授權類型時
可用(例如授權代碼)。

它允許在客戶端和資源服務器之間的支路上使用標准令牌和協議(例如OAuth 2.0承載令牌),同時使用“待棄用”方式在客戶端和授權服務器之間獲取令牌。 https://tools.ietf.org/html/rfc6749#section-10.7

資源所有者密碼憑據授予類型通常用於
遺產或遷移原因。 它降低了存儲的整體風險
客戶端的用戶名和密碼,但不會消除向客戶端公開高權限憑據的需要。

此授權類型比其他授權類型具有更高的風險,因為它維護了此協議試圖避免的密碼反模式。 客戶端可能濫用密碼,或者密碼可能無意中被泄露給攻擊者(例如,通過日志文件或客戶端保存的其他記錄)。

此外,由於資源所有者無法控制授權過程(資源所有者的參與在將其憑據移交給客戶端時結束),客戶端可以獲得
訪問具有比資源所需范圍更廣的范圍的令牌
所有者。 授權服務器應考慮范圍和
通過此授權類型發出的訪問令牌的生命周期。

授權服務器和客戶端應該盡可能地減少對此授權類型的使用,並盡可能利用其他授權類型。

我將提供另一種觀點。

OAuth 2.0是一種用於常見Web應用程序的出色協議。 但是,某些應用程序使用更強大的身份驗證/授權機制。 對於這些情況,允許使用強方法進行令牌建立是有意義的。 此類應用程序的一個示例可以是銀行API - 它可以使用Web上的經典OAuth 2.0流(使用銀行網站)和使用PowerAuth 2.0(我是此解決方案的作者)等協議的強大數據簽名,用於本機移動或桌面應用程序。

暫無
暫無

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

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