天天看點

CAS的單點登入和oauth2的最大差別

CAS的單點登入時保障用戶端的使用者資源的安全

oauth2則是保障服務端的使用者資源的安全

CAS用戶端要擷取的最終資訊是,這個使用者到底有沒有權限通路我(CAS用戶端)的資源。

oauth2擷取的最終資訊是,我(oauth2服務提供方)的使用者的資源到底能不能讓你(oauth2的用戶端)通路

CAS的單點登入,資源都在用戶端這邊,不在CAS的伺服器那一方。

使用者在給CAS服務端提供了使用者名密碼後,作為CAS用戶端并不知道這件事。

随便給用戶端個ST,那麼用戶端是不能确定這個ST是使用者僞造還是真的有效,是以要拿着這個ST去服務端再問一下,這個使用者給我的是有效的ST還是無效的ST,是有效的我才能讓這個使用者通路。

oauth2認證,資源都在oauth2服務提供者那一方,用戶端是想索取使用者的資源。

是以在最安全的模式下,使用者授權之後,服務端并不能直接傳回token,通過重定向送給用戶端,因為這個token有可能被黑客截獲,如果黑客截獲了這個token,那使用者的資源也就暴露在這個黑客之下了。

于是聰明的服務端發送了一個認證code給用戶端(通過重定向),用戶端在背景,通過https的方式,用這個code,以及另一串用戶端和服務端預先商量好的密碼,才能擷取到token和重新整理token,這個過程是非常安全的。

如果黑客截獲了code,他沒有那串預先商量好的密碼,他也是無法擷取token的。這樣oauth2就能保證請求資源這件事,是使用者同意的,用戶端也是被認可的,可以放心的把資源發給這個用戶端了。

是以cas登入和oauth2在流程上的最大差別就是,通過ST或者code去認證的時候,需不需要預先商量好的密碼。 

轉自:https://www.cnblogs.com/flying607/p/7652537.html