?? security.html
字號:
<a name="wp526724"> </a><p class="pParagraph">用戶通過驗證后,<em class="cEmphasis">授權</em>級別將決定該用戶可以執行哪些操作。用戶的授權以其<em class="cEmphasis">角色</em>為基礎。例如,人力資源應用程序可以授權管理者查看所有雇員的個人信息,但只允許雇員查看自己的個人信息。有關角色的更多信息,請參見“<a href="security.html#wp526844" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526844">了解用戶、組、角色和區域</a>”。</p><a name="wp526728"> </a><h4 class="pHeading3">指定 JACC 提供者</h4><a name="wp526730"> </a><p class="pParagraph">JACC(Java 容器授權合同)屬于 J2EE 1.4 規范,它為可插拔授權提供者定義了接口。這使得管理員可以設置第三方插件模塊來執行授權。 </p><a name="wp526736"> </a><p class="pParagraph">默認情況下,Application Server 提供一個符合 JACC 規范的基于文件的簡單授權引擎。還可以指定其他第三方 JACC 提供者。</p><a name="wp526738"> </a><p class="pParagraph">JACC 提供者使用 Java 驗證和授權服務 (JAAS) API。JAAS 允許服務驗證并強制對用戶進行訪問控制。JAAS 實現了 Java 技術版本的標準可插拔驗證模塊 (PAM) 框架。</p><a name="wp526742"> </a><h4 class="pHeading3">審計驗證和授權決策</h4><a name="wp526760"> </a><p class="pParagraph">Application Server 可以通過<em class="cEmphasis">審計模塊</em>提供對所有驗證和授權決策的審計跟蹤。Application Server 提供了一個默認的審計模塊,還提供了自定義審計模塊的功能。有關開發自定義審計模塊的信息,請參見 Application Server Developer's Guide。有關 Developer's Guide 的鏈接,請參見“<a href="security.html#wp530280" tppabs="http://docs.sun.com/source/819-1553/security.html#wp530280">詳細信息</a>”。</p><a name="wp526764"> </a><h4 class="pHeading3">配置消息安全性</h4><a name="wp526766"> </a><p class="pParagraph"><em class="cEmphasis">消息安全性</em>使服務器可以在消息層執行 Web 服務調用和響應的端對端驗證。Application Server 使用 SOAP 層上的消息安全性提供者來實現消息安全性。消息安全性提供者提供了請求和響應消息所需的驗證類型等信息。支持的驗證類型包括:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp526768"> </a><div class="pSmartList1"><li>發件人驗證,包括用戶名和密碼驗證。</li></div><a name="wp526770"> </a><div class="pSmartList1"><li>內容驗證,包括 XML 數字簽名。</li></div></ul></div><a name="wp526772"> </a><p class="pParagraph">該版本附帶了兩個消息安全性提供者。可以為 SOAP 層的驗證配置消息安全性提供者。可以配置的提供者包括 <code class="cCode">ClientProvider</code> 和 <code class="cCode">ServerProvider</code>。 </p><a name="wp526774"> </a><p class="pParagraph">以(可插入)驗證模塊的形式將消息層安全性支持集成到 Application Server 及其客戶機容器中。默認情況下,Application Server 中的消息層安全性處于禁用狀態。 </p><a name="wp526788"> </a><p class="pParagraph">可以為整個 Application Server 或者為特定的應用程序或方法配置消息層安全性。“<a href="ws-security.html#wp929401" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp929401">配置消息安全性</a>”討論了在 Application Server 級別配置消息安全性。Developer's Guide 的 "<a href="javascript:if(confirm('http://docs.sun.com/source/819-0079/dgsecure.html \n\n該文件無法用 Teleport Ultra 下載, 因為 它是一個域或路徑外部被設置為它的啟始地址的地址。 \n\n你想在服務器上打開它?'))window.location='http://docs.sun.com/source/819-0079/dgsecure.html'" tppabs="http://docs.sun.com/source/819-0079/dgsecure.html"></a><a href="javascript:if(confirm('http://docs.sun.com/source/819-0217/dgsecure.html \n\n該文件無法用 Teleport Ultra 下載, 因為 它是一個域或路徑外部被設置為它的啟始地址的地址。 \n\n你想在服務器上打開它?'))window.location='http://docs.sun.com/source/819-0217/dgsecure.html'" tppabs="http://docs.sun.com/source/819-0217/dgsecure.html">Securing Applications</a>" 一章中討論了如何配置應用程序級別的消息安全性。</p><a name="wp526844"> </a><h3 class="pHeading2">了解用戶、組、角色和區域</h3><a name="wp526850"> </a><p class="pParagraph">Application Server 對以下實體強制執行其驗證和授權策略:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp526860"> </a><div class="pSmartList1"><li><a href="security.html#wp526897" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526897">用戶</a>:<em class="cEmphasis">Application Server 中定義的</em>單個標識。通常,用戶是指一個人、一個軟件組件(例如企業 Bean),甚至是一種服務。經過驗證的用戶有時被稱為<em class="cEmphasis">主體</em>。用戶有時被稱為<em class="cEmphasis">主題</em>。</li></div><a name="wp526870"> </a><div class="pSmartList1"><li><a href="security.html#wp526903" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526903">組</a>:<em class="cEmphasis">Application Server 中定義的一組用戶</em>,按照常見特性進行分類。 </li></div><a name="wp526876"> </a><div class="pSmartList1"><li><a href="security.html#wp526909" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526909">角色</a>:<em class="cEmphasis">由應用程序定義的</em>命名授權級別。可以將角色比喻為開鎖的鑰匙。許多人都可以有此鑰匙的復制鑰匙。鎖不關心誰要造訪,而只關心使用的鑰匙是否正確。</li></div><a name="wp526882"> </a><div class="pSmartList1"><li><a href="security.html#wp526921" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526921">區域</a>:包含用戶和組信息及其關聯的安全憑證的系統信息庫。區域也被稱為<em class="cEmphasis">安全策略域</em>。 </li></div></ul></div><a name="wp526888"> </a><p class="pParagraph"><b class="cBold">注:</b>盡管用戶和組是為整個 Application Server 指定的,但是每個應用程序都需要定義自己的角色。當封裝和部署應用程序時,應用程序會指定用戶/組和角色之間的映射,如下圖所示。</p><a name="wp526893"> </a><p class="pParagraph">角色映射</p><div align="left"><img src="images/security-roleMapping.gif" tppabs="http://docs.sun.com/source/819-1553/images/security-roleMapping.gif" border="0" hspace="0" vspace="0"/></div><p class="pParagraph"></p><a name="wp526897"> </a><h4 class="pHeading3">用戶</h4><a name="wp526899"> </a><p class="pParagraph"><em class="cEmphasis">用戶</em>是已在 Application Server 中定義的個人(或應用程序)標識。用戶可以與組關聯。Application Server 驗證服務可以管理多個區域中的用戶。</p><a name="wp526903"> </a><h4 class="pHeading3">組</h4><a name="wp526905"> </a><p class="pParagraph"><em class="cEmphasis">J2EE 組</em>(或簡稱組)是按常見特性(例如職務或用戶概要文件)進行分類的用戶類別。例如,假定電子商務應用程序的用戶屬于 <code class="cCode">customer</code> 組,但是大客戶可以屬于 <code class="cCode">preferred</code> 組。將用戶分組可以簡化對用戶量很大時的訪問控制。</p><a name="wp526909"> </a><h4 class="pHeading3">角色</h4><a name="wp526911"> </a><p class="pParagraph"><em class="cEmphasis">角色</em>定義用戶可以訪問哪些應用程序和每個應用程序的哪些部分以及用戶可以執行的操作。也就是說,角色決定了用戶的授權級別。</p><a name="wp526913"> </a><p class="pParagraph">例如,假定在人事應用程序中,所有雇員均可以訪問電話號碼和電子郵件地址,但只有管理人員才能訪問薪水信息。該應用程序至少需要定義兩個角色:<code class="cCode">employee</code> 和 <code class="cCode">manager</code>;僅允許 <code class="cCode">manager</code> 角色中的用戶查看薪水信息。</p><a name="wp526915"> </a><p class="pParagraph">角色與用戶組的不同之處在于,角色在應用程序中定義功能,而用戶組是以某一方式相關的一組用戶。例如,假定在人事應用程序中有 <code class="cCode">full-time</code>、<code class="cCode">part-time</code> 和 <code class="cCode">on-leave</code> 幾個組,但所有這些組中的用戶仍是 <code class="cCode">employee</code> 角色。</p><a name="wp526917"> </a><p class="pParagraph">角色是在應用程序部署描述符中定義的。相反,組是針對整個服務器和區域而定義的。應用程序開發者或部署者在每個應用程序的部署描述符中將角色映射到一個或多個組。</p><a name="wp526921"> </a><h4 class="pHeading3">區域</h4><a name="wp526923"> </a><p class="pParagraph"><em class="cEmphasis">區域</em>(也稱為<em class="cEmphasis">安全策略域</em>或<em class="cEmphasis">安全域</em>)是服務器定義和強制執行通用安全策略的范圍。在實際應用中,區域是服務器存儲用戶和組信息的系統信息庫。 </p><a name="wp526933"> </a><p class="pParagraph">Application Server 預先配置了三個區域:<code class="cCode">file</code>(初始默認區域)、<code class="cCode">certificate</code> 和 <code class="cCode">admin-realm</code>。您還可以設置 <code class="cCode">ldap</code>、<code class="cCode">solaris</code> 或自定義區域。應用程序可以在其部署描述符中指定要使用的區域。如果應用程序不指定區域,Application Server 將使用其默認區域。</p><a name="wp526939"> </a><p class="pParagraph">在 <code class="cCode">file</code> 區域中,服務器將用戶憑證存儲在本地名為 <code class="cCode">keyfile</code> 的文件中。您可以使用管理控制臺來管理 <code class="cCode">file</code> 區域中的用戶。有關更多信息,請參見“<a href="security.html#wp528106" tppabs="http://docs.sun.com/source/819-1553/security.html#wp528106">管理 file 區域用戶</a>”。</p><a name="wp526945"> </a><p class="pParagraph">在 <code class="cCode">certificate</code> 區域中,服務器將用戶憑證存儲在證書數據庫中。使用 <code class="cCode">certificate</code> 區域時,服務器結合使用證書和 HTTPS 協議來驗證 Web 客戶機。有關證書的更多信息,請參見“<a href="security.html#wp526971" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526971">證書和 SSL 簡介</a>”。 </p><a name="wp526951"> </a><p class="pParagraph"><code class="cCode">admin-realm</code> 也是一個 <code class="cCode">FileRealm</code>,它將管理員用戶憑證存儲在本地名為 <code class="cCode">admin-keyfile</code> 的文件中。您可以使用管理控制臺管理此區域中的用戶,其方法與您管理 <code class="cCode">file</code> 區域中的用戶的方法相同。有關更多信息,請參見“<a href="security.html#wp528106" tppabs="http://docs.sun.com/source/819-1553/security.html#wp528106">管理 file 區域用戶</a>”。</p><a name="wp526953"> </a><p class="pParagraph">在 <code class="cCode">ldap</code> 區域中,服務器將從輕量目錄訪問協議 (LDAP) 服務器(例如 Sun Java System Directory Server)中獲取用戶憑證。LDAP 是一種協議,它使任何人都可以在網絡(無論是公共 Internet 還是企業內聯網)中查找組織、個人和其他資源(例如文件和設備)。有關管理 <code class="cCode">ldap</code> 區域中的用戶和組的信息,請參閱您的 LDAP 服務器文檔。</p><a name="wp526955"> </a><p class="pParagraph">在 <code class="cCode">solaris</code> 區域中,服務器將從 Solaris 操作系統中獲取用戶憑證。Solaris 9 OS 和更高版本支持此區域。有關管理 <code class="cCode">solaris</code> 區域中的用戶和組的信息,請參閱您的 Solaris 文檔。</p><a name="wp526965"> </a><p class="pParagraph">自定義區域是用戶憑證的任何其他系統信息庫,例如關系型數據庫或第三方組件。有關更多信息,請參見“<a href="security.html#wp527902" tppabs="http://docs.sun.com/source/819-1553/security.html#wp527902">創建自定義區域</a>”或 Developer's Guide 的 "<a href="javascript:if(confirm('http://docs.sun.com/source/819-0079/dgsecure.html \n\n該文件無法用 Teleport Ultra 下載, 因為 它是一個域或路徑外部被設置為它的啟始地址的地址。 \n\n你想在服務器上打開它?'))window.location='http://docs.sun.com/source/819-0079/dgsecure.html'" tppabs="http://docs.sun.com/source/819-0079/dgsecure.html"></a><a href="javascript:if(confirm('http://docs.sun.com/source/819-0217/dgsecure.html \n\n該文件無法用 Teleport Ultra 下載, 因為 它是一個域或路徑外部被設置為它的啟始地址的地址。 \n\n你想在服務器上打開它?'))window.location='http://docs.sun.com/source/819-0217/dgsecure.html'" tppabs="http://docs.sun.com/source/819-0217/dgsecure.html">Securing Applications</a>" 一章。</p><a name="wp526971"> </a><h3 class="pHeading2">證書和 SSL 簡介</h3><a name="wp526973"> </a><p class="pParagraph">本節包括以下主題:</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp526979"> </a><div class="pSmartList1"><li><a href="security.html#wp526989" tppabs="http://docs.sun.com/source/819-1553/security.html#wp526989">關于數字證書</a></li></div><a name="wp526985"> </a><div class="pSmartList1"><li><a href="security.html#wp527029" tppabs="http://docs.sun.com/source/819-1553/security.html#wp527029">關于安全套接字層</a></li></div></ul></div><a name="wp526989"> </a><h4 class="pHeading3">關于數字證書</h4><a name="wp526991"> </a><p class="pParagraph"><em class="cEmphasis">數字證書</em>(或簡稱證書)是在 Internet 上唯一地標識人員和資源的電子文件。證書使兩個實體之間能夠進行安全、保密的通信。 </p><a name="wp526997"> </a><p class="pParagraph">證書有很多種類型,例如個人證書(由個人使用)和服務器證書(用于通過安全套接字層 [SSL] 技術在服務器和客戶機之間建立安全會話)。有關 SSL 的更多信息,請參見“<a href="security.html#wp527029" tppabs="http://docs.sun.com/source/819-1553/security.html#wp527029">關于安全套接字層</a>”。</p><a name="wp526999"> </a><p class="pParagraph">證書是基于<em class="cEmphasis">公共密鑰加密</em>的,公共密鑰加密使用數字<em class="cEmphasis">密鑰</em>對(很長的數字)對信息進行<em class="cEmphasis">加密</em>或編碼,從而使信息只能被目標收件人讀取。然后,收件人對信息進行<em class="cEmphasis">解密</em>(解碼)即可讀取該信息。</p><a name="wp527001"> </a><p class="pParagraph">一個密鑰對包含一個公共密鑰和一個專用密鑰。擁有者對公共密鑰進行分發并使任何人都可以使用該公共密鑰。但是擁有者永遠不會分發專用密鑰;專用密鑰始終是保密的。由于密鑰與數學相關,因此使用了密鑰對中的一個密鑰進行加密的數據只能通過密鑰對中的另一個密鑰進行解密。 </p><a name="wp527003"> </a><p class="pParagraph">證書就好像一本護照:它可以標識持有者并提供其他重要信息。證書由稱為<em class="cEmphasis">證書授權機構</em> (CA) 的受信任的第三方發布。CA 類似于護照申領辦公室:它將驗證證書持有者的身份并對證書進行簽名,以使他人無法偽造或篡改證書。CA 對證書進行簽名之后,持有者可以提供該證書作為身份證明并建立經過加密的保密通信。 </p><a name="wp527005"> </a><p class="pParagraph">最重要的是,證書會將擁有者的公共密鑰綁定到擁有者的標識。與護照將照片綁定到其持有者的個人信息類似,證書將公共密鑰綁定到有關其擁有者的信息。</p><a name="wp527007"> </a><p class="pParagraph">
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -