統一認證授權及單點登錄的技術選擇


主要認證授權技術

LtpaToken
全稱:IBM Lightweight Third-Party Authentication。是一個羽量的token生成規則,作用有點像OAUTH2.0的第四種規則Client Credentials,即直接產生Access Token
一個非常靈活的認證規則,輕量級用戶單點登錄,適用於簡單實現幾個類,實現統一算法的URL登陸跳轉。

OAUTH2.0
OAUTH2.0協議在第三方調用開發上比較簡單,比較輕量級,各個語言的支持非常豐富,認證類型有4種,可以比較靈活的選擇,業內比較偏向選擇這個方案。

OpenID
OpenID只起到了認證的作用。

OpenID和OAUTH的區別
很多人把OpenID和OAUTH混淆了,國內搜索出來的站點基本上是摩棱兩可,講不清楚。
實際上區別很明顯:

  • OpenID認證(即證明你是你,用於登陸Login時認證),OAuth是授權(即授予訪問權限的功能/數據/URL/等。無需處理原始身份登陸認證)。
  • OAuth可以用於外部合作伙伴或企業內部第三方網站允許訪問受保護的數據,而不必重新驗證用戶。

SAML
SAML協議較OAUTH來說比較復雜,,但是功能也十分強大,支持認證,權限控制和用戶屬性。

CAS

CAS(Central Authentication Service) 是 Yale 大學發起的一個開源項目。
使用起來較繁瑣,在3.5版已包含OAUTH2.0認證算法。
但如果僅僅是集成第三方認證,沒必要用CAS。

 

OAUTH2.0的基本概念

介紹,這篇比較好:

http://www.cnblogs.com/linianhui/p/oauth2-authorization.html

重點需要了解OAUTH2的4種授權流程(許可類型)

  • Authorization Code
  • Implicit
  • Resource Owner Password Credentials
  • Client Credentials

看看這些例子就能很快了解這些許可類型的區別:

豆瓣Authorization Code接口

https://developers.douban.com/wiki/?title=oauth2

QQ Implicit互連接口

http://wiki.connect.qq.com/%E4%BD%BF%E7%94%A8implicit_grant%E6%96%B9%E5%BC%8F%E8%8E%B7%E5%8F%96access_token

微信Client Credentials接口

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

可見,微信的接口最簡單易用,便於集成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM