2014-04-22 76 views
0

我偶然聽到一個對話,其中有兩位開發人員在談論他們正在構建的認證系統,他們談論的是Java「密鑰存儲」,還提到了「CAS服務器」以及SSL。我去了JASIG CAS網站,它似乎用於您想要控制用戶登錄和會話的身份驗證系統。看起來Java密鑰庫是一個存儲加密CA證書的文件(可能是嵌入式數據庫?)。Java密鑰存儲,SSL和CAS

我想弄清楚這三種技術如何一起用來創建一個安全的,基於Java的認證系統。

那麼Web應用程序會如何使用CAS客戶端(在我的情況下是Java)與正在運行的CAS服務器實例進行通信?如果是這樣,那麼Keystore和SSL證書在哪裏以及如何嵌入到架構中? CAS是否將SSL證書存儲在密鑰庫中,然後以某種方式將它與後端目錄(ActiveDirectory等)一起使用?有人可以給我一個關於這將如何結合在一起的高層次概述嗎?

+1

Java KeyStore是存儲加密私鑰或非加密證書的文件。 – EJP

+0

謝謝@EJP(+1) - SSL是一個加密還是非加密的證書(基本上,KeyStore會用來存儲一個SSL證書)?爲什麼或者爲什麼不? – AdjustingForInflation

+0

證書是公共文件。加密它沒有意義。 – EJP

回答

1

CAS中央認證主要與SSL及其密鑰庫和認證機構正交。 CAS是一種允許多個服務共享一個認證服務器的方式,因此用戶只能在中央認證服務器上登錄一次。與其他網絡連接一樣,服務和中央認證服務器的連接當然可以使用SSL進行加密。使用SSL需要使用密鑰庫和信任庫來存儲密鑰和信任證書,包括CA-認證機構 - 證書。

+0

感謝@Warren Dew(+1) - 一些後續問題:(1)「密鑰庫」和「信任商店」之間有什麼區別?正如EJP所說,密鑰庫是存儲私鑰或非加密證書的地方。如果那是真的,那麼*信任*商店的目的是什麼? (2)CAS與各類商店之間的關係是什麼?換句話說,CAS使用這兩種方法是爲了什麼?再次感謝! – AdjustingForInflation

+0

密鑰存儲是私鑰保存的地方。信託商店是保存信託實體的公共證書的地方。 SSL的工作方式是,交易的一方(通常是客戶)具有信任存儲,另一方(通常是服務器)具有密鑰存儲。服務器顯示其證書,並使用其私鑰證明證書確實屬於它。客戶端檢查公用證書是否可信。 –

+0

糟糕,不能在評論中使用段落。在CAS的情況下,CAS服務器和Web服務器都將擁有自己的密鑰存儲區。客戶端需要有一個包含CAS服務器和Web服務器證書的信任庫。請注意,有時候,特別是在java中,同一個文件被用作密鑰存儲和信任存儲,這就是爲什麼java有一個「keytool」來處理這兩個問題的原因。 –