我理解嘗試從提供者的角度使用OAuth進行身份驗證的安全問題。然而,我被要求爲用戶提供使用OAuth登錄到新Web應用程序的功能,並從Google和Twitter等用戶中獲取他們的基本身份信息,從中創建客戶端應用程序中的新用戶帳戶。此外,用戶可以通過用戶/密碼直接註冊/登錄,以便任何不想使用第三方帳戶的人使用。OAuth身份驗證客戶端安全問題
我們不需要任何訪問用戶的詳細信息/提供者API,只是他們初次登錄時的基本身份,當然也不允許他們在將來通過提供者登錄。並不完全是OAuth的用例,OpenId將是首選,但OAuth已被指定,並且不需要有效的關注。
我的問題是,它是多麼安全,它假設用戶已正確認證自己與相關的供應商。如果我相信Google說要執行足夠的身份驗證,並且我獲得了訪問令牌和他們的身份,那麼推測我可以認爲這是合法用戶?如果有人能夠訪問資源所有者機器並在瀏覽器中保存密碼,顯然存在問題,但是那些選擇直接註冊的用戶會遇到問題。
假定有可能僞造訪問令牌,例如,中間的人假裝是谷歌? MITM可以僞造訪問令牌並提供與註冊用戶的Google ID匹配的身份詳細信息?我沒有看到任何客戶知道這些信息絕對來自提供者。很明顯,這個問題並不是OAuth獨有的。
有沒有另一種方式有人可以非法訪問一個使用OAuth的帳戶驗證自己。
首先,接入令牌是特定於應用程序和** **不最終用戶。要獲取訪問令牌,應用程序必須註冊到服務提供商。其次,OAuth對用戶身份驗證過程沒有任何引用**,用戶身份驗證僅用於允許用戶接受應用程序是否可以訪問其受保護資源。那麼,如果應用程序本身從未被服務提供商註冊過,僞造訪問令牌的方式是否真的適合? –
很明顯,應用程序將被註冊。我曾想過,如果有東西可以攔截通信給OAuth提供商,他們可以假裝成它們,返回一個隨機令牌,然後在請求時提供一個捕獲的Google ID。谷歌永遠不會聯繫,應用程序'假設'用戶已經去谷歌和身份驗證。從我所看到的客戶端無法驗證來自Google的令牌。 – vickirk