您好,登錄后才能下訂單哦!
表1 認證機制對比分析
HTTP Basic Auth | 數字簽名/數字證書 | OAuth協議方式(Token) | SSO(Token) | |
實現方式 | 客戶端在發送之前是以用戶名追加一個冒號然后串接上口令,并將得出的結果字符串再用Base64算法編碼。例如,提供的用戶名是Aladdin、口令是open sesame,則拼接后的結果就是Aladdin:open sesame,然后再將其用Base64編碼,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最終將Base64編碼的字符串發送出去,由接收者解碼得到一個由冒號分隔的用戶名和口令的字符串。 | 為每個接入方分配一個密鑰,并且規定一種簽名的計算方法。要求接入方的請求中必須加上簽名參數。同時為防范Replay***,需要在請求中添加時間戳。 | OAUTH認證授權有三個步驟,概括為: 1. 獲取未授權的Request Token; 2. 獲取用戶授權的Request Token; 3. 用授權的Request Token換取Access Token。 當應用拿到Access Token后,就可以有權訪問用戶授權的資源了。 | 當用戶第一次訪問應用系統1的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之后會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統2和應用系統3了。 |
適用范圍 | 適用于HTTP協議的請求。 | 適用于REST/SOAP接口。 例如:AWS REST/SOAP API。 | OAuth協議適用于為外部應用授權訪問本站資源的情況。其中的加密機制與HTTP Digest身份認證相比,安全性更高。需要注意,OAuth身份認證與HTTP Digest身份認證之間并不是相互取代的關系,它們的適用場景是不同的。OAuth協議更適合于為面向最終用戶維度的API提供授權,例如獲取隸屬于用戶的微博信息等等。如果API并不是面向最終用戶維度的,例如像七牛云存儲這樣的存儲服務,這并非是OAuth協議的典型適用場景。 | 適用于不同網頁或應用之間,不需要用戶重復輸入用戶名密碼的場景。 |
優點 | 簡單,容易理解和實現。 基本上所有流行的網頁瀏覽器都支持基本認證。 | 簡單,容易理解和實現。 | 在使用中,OAuth不會使第三方網站或應用接觸到用戶的帳號信息(如用戶名與密碼),授權后的http通信中也不再傳輸用戶信息而是以數字簽名和訪問令牌(AccessToken)取代,即使截到數據包,也無法還原出用戶的登錄信息。這是OAuth最大的優點,也是它得以逐漸成為現在通用的授權標準的原因。 | 改善系統易用性。對于終端用戶使用非常方便。只需記錄一組用戶名和密碼,而且只需輸入一次。 提高系統開發效率。對于開發人員來說,在一個好的SSO構架中身份驗證框架只有一個,各應用系統開發人員可以專注于業務邏輯,無須自己再設計身份驗證程序。 簡化管理員管理。對于系統管理員,有了SSO,用戶的賬戶和管理系統都只有一套,管理方便,減少負擔。 |
缺點 | 雖然基本認證非常容易實現,但該方案建立在以下的假設的基礎上,即:客戶端和服務器主機之間的連接是安全可信的。特別是,如果沒有使用SSL/TLS這樣的傳輸層安全的協議,那么以明文傳輸的密鑰和口令很容易被攔截。該方案也同樣沒有對服務器返回的信息提供保護。 | 需要承擔安全保存密鑰和定期更新密鑰的負擔,還要注意防范replay***。而且不夠靈活,更新密鑰和升級簽名算法很困難。如果請求中添加時間戳,需要保證客戶端和服務端時間同步。 | OAuth作為一個授權協議,而不是一個認證協議,OAuth提供的是權限分配而非認證,授權本身的實質相當于系統為第三方網站/應用開了一個后門,而你的授權就是允許它們可以走后門進來獲取你的隱私資料和使用權限。 詳見:http://www.oschina.net/news/31399/oauth30-road-to-hell | 遭受******后的危害較大。因為身份驗證系統集中,如果***攻破這一系統,意味著可以危害整個應用系統體系;竊取某一用戶在某個系統中的用戶名和密碼,就可以竊取該用戶在該SSO體系中所有系統中的資源。 忘記鎖定個人桌面的信息泄露。如果用戶忘記鎖定電腦,被他人看到,則該用戶在整個系統中的信息都將被泄露。對比多次登錄的系統,同樣的情況下,可能只有某個子系統的特定類型數據會被泄露。 |
表2 ForgeRock開源IDM、AM產品分析
OpenIDM | OpenAm | OpenDJ | |
功能 | 用戶管理功能,包括:用戶身份周期管理、用戶和組管理、密碼管理、角色管理、權限管理、策略管理、認證和授權、同步功能等核心功能。 并提供REST接口進行管理。 OpenIDM的用戶數據可以同步到OpenDJ。 | OpenAM 是一個領先的開源認證、授權的產品,可用于替換即將被取消的OpenSSO。 OpenAM 提供核心的標識服務用來簡化實現在一個網絡架構中的透明單點登錄,包括集中式或者分布式的單點登錄。主要的特性有: ·完全符合開源AAA產品; ·AAA協議:計算機安全領域的協議,AAA指:鑒權,授權,計費(Authentication, Authorization, Accounting); ·簡單易用、易配置; ·純Java開發; ·可輕松配置聯合認證系統,并集成到已有項目中。 并提供REST接口進行管理。 | 提供LDAP服務,并提供REST接口進行方便的管理。 |
角色 | IDM(用戶身份管理) | SSO(單點登錄) | LDAP(輕型目錄訪問協議) |
適用范圍 | 用戶管理。 | 主要適用于單點登錄(SSO)的應用場景。 | LDAP應用。 |
認證機制 | 客戶端進行認證的時候,向OpenIDM提供用戶名密碼(明文傳輸),OpenIDM進行認證并返回認證結果。 | OpenAM提供的認證機制主要是用戶登錄功能,用戶在接口中提供用戶名密碼,OpenAM驗證成功之后會返回一個TokenId,用于后續的SSO步驟。 | 提供標準的LDAP認證機制。 |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。