?? ws-security.html
字號:
配置特定于應(yīng)用程序的 Web 服務(wù)安全性</h4><a name="wp929737"> </a><p class="pParagraph">通過在應(yīng)用程序的特定于 Sun 的部署描述符中定義 message-security-binding 元素,可以配置特定于應(yīng)用程序的 Web 服務(wù)安全性功能(在應(yīng)用程序匯編時(shí))。這些 message-security-binding 元素用于將特定提供者或消息保護(hù)策略與 Web 服務(wù)端點(diǎn)或服務(wù)引用相關(guān)聯(lián),并可以被限定以使這些元素應(yīng)用到相應(yīng)端點(diǎn)或引用服務(wù)的特定端口或方法。</p><a name="wp929743"> </a><p class="pParagraph">有關(guān)定義特定于應(yīng)用程序的消息保護(hù)策略的更多信息,請參閱 Developer's Guide 的 "<em class="cEmphasis">Securing Applications</em>" 一章。“<a href="ws-security.html#wp930504" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930504">詳細(xì)信息</a>”中有指向該章的鏈接。</p><a name="wp929769"> </a><h3 class="pHeading2">確保樣例應(yīng)用程序的安全</h3><a name="wp929771"> </a><p class="pParagraph">Application Server 附帶了名為 <code class="cCode">xms</code> 的樣例應(yīng)用程序。<code class="cCode">xms</code> 應(yīng)用程序具有簡單的 Web 服務(wù)功能,它由 J2EE EJB 端點(diǎn)和 Java Servlet 端點(diǎn)共同實(shí)現(xiàn)。這兩個(gè)端點(diǎn)共享同一個(gè)服務(wù)端點(diǎn)接口。服務(wù)端點(diǎn)接口定義了單個(gè)操作 (<code class="cCode">sayHello</code>),此操作將獲取一個(gè)字符串參數(shù),并將由前置 <code class="cCode">Hello</code> 編寫的 <code class="cCode">String</code> 返回到調(diào)用參數(shù)中。 </p><a name="wp929777"> </a><p class="pParagraph">將提供 <code class="cCode">xms</code> 樣例應(yīng)用程序來演示 Application Server 的 WS-Security 功能的用途,以確保現(xiàn)有 Web 服務(wù)應(yīng)用程序的安全。樣例附帶的說明介紹了如何啟用 Application Server 的 WS-Security 功能以使其用于確保 <code class="cCode">xms</code> 應(yīng)用程序的安全。樣例還將演示如何向應(yīng)用程序直接綁定 WS-Security 功能(如“<a href="ws-security.html#wp929735" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp929735">配置特定于應(yīng)用程序的 Web 服務(wù)安全性</a>”中所述)以使其特定應(yīng)用于應(yīng)用程序。</p><a name="wp929779"> </a><p class="pParagraph"><code class="cCode">xms</code> 樣例應(yīng)用程序安裝在以下目錄中:<em class="cEmphasis">install_dir</em><code class="cCode">\samples\webservices\security\ejb\apps\xms\</code></p><a name="wp929785"> </a><p class="pParagraph">有關(guān)編譯、封裝和運(yùn)行 <code class="cCode">xms</code> 樣例應(yīng)用程序的信息,請參閱 Developer's Guide 的 "<em class="cEmphasis">Securing Applications</em>" 一章。“<a href="ws-security.html#wp930504" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930504">詳細(xì)信息</a>”中有指向該章的鏈接。</p><a name="wp929791"> </a><h3 class="pHeading2">配置 Application Server 以實(shí)現(xiàn)消息安全性</h3><a name="wp929793"> </a><p class="pParagraph">Application Server 使用在其 SOAP 處理層中集成的消息安全性提供者來實(shí)現(xiàn)消息安全性。消息安全性提供者取決于 Application Server 的其他安全性工具。</p><a name="wp929795"> </a><p class="pParagraph">要配置這些其他工具,請執(zhí)行以下步驟:</p><div class="pSmartList1"><ol type="1" class="pSmartList1"><a name="wp929797"> </a><div class="pSmartList1"><li>如果使用的 Java SDK 的版本早于 1.5.0,而且使用了加密技術(shù),請配置 JCE 提供者。</li></div><a name="wp929803"> </a><p class="pStepParaI1">“<a href="ws-security.html#wp929861" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp929861">配置 JCE 提供者</a>”中說明了如何配置 JCE 提供者。</p><a name="wp929805"> </a><div class="pSmartList1"><li>如果使用了用戶名令牌,請?jiān)诒匾獣r(shí)配置用戶數(shù)據(jù)庫。使用用戶名/密碼令牌時(shí),必須配置適當(dāng)?shù)膮^(qū)域并為該區(qū)域配置適當(dāng)?shù)挠脩魯?shù)據(jù)庫。</li></div><a name="wp929811"> </a><p class="pStepParaI1">“<a href="security.html#wp527965" tppabs="http://docs.sun.com/source/819-1553/security.html#wp527965">編輯區(qū)域</a>”中說明了如何配置用戶數(shù)據(jù)庫。</p><a name="wp929813"> </a><div class="pSmartList1"><li>管理證書和專用密鑰(如有必要)。</li></div><a name="wp929819"> </a><p class="pStepParaI1">“<a href="security.html#wp529850" tppabs="http://docs.sun.com/source/819-1553/security.html#wp529850">關(guān)于證書文件</a>”中說明了如何管理證書和專用密鑰。</p></ol></div><a name="wp929825"> </a><p class="pParagraph">如果已將 Application Server 的工具配置為供消息安全性提供者使用,則將會(huì)啟用隨 Application Server 一起安裝的提供者,如“<a href="ws-security.html#wp929961" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp929961">啟用消息安全性提供者</a>”中所述。</p><a name="wp929861"> </a><h4 class="pHeading3">配置 JCE 提供者</h4><a name="wp929869"> </a><p class="pParagraph">J2SE 1.4.x 中包括的 Java 加密擴(kuò)展 (JCE) 提供者不支持 RSA 加密。由于由 WS-Security 所定義的 XML 加密通常是基于 RSA 加密,因此為了使用 WS-Security 來加密 SOAP 消息,您必須下載并安裝支持 RSA 加密的 JCE 提供者。</p><a name="wp929871"> </a><p class="pParagraph"><b class="cBold">注:</b>RSA 是 RSA Data Security, Inc. 開發(fā)的公共密鑰加密技術(shù)。RSA 縮略詞分別代表該技術(shù)的三位發(fā)明者:Rivest、Shamir 和 Adelman。</p><a name="wp929873"> </a><p class="pParagraph">如果是在 1.5 版的 Java SDK 中運(yùn)行 Application Server,則已正確配置了 JCE 提供者。如果是在 1.4.x 版的 Java SDK 中運(yùn)行 Application Server,請執(zhí)行以下步驟以靜態(tài)方式將 JCE 提供者添加為 JDK 環(huán)境的一部分。</p><div class="pSmartList1"><ol type="1" class="pSmartList1"><a name="wp929875"> </a><div class="pSmartList1"><li>下載并安裝 JCE 提供者 JAR(Java 歸檔)文件。通過以下 URL 可以獲得支持 RSA 加密的 JCE 提供者的列表:</li></div></ol></div><div class="pParaIndent1"><ul class="pParaIndent1"><a name="wp929879"> </a><p class="pParaIndent1"><a href="javascript:if(confirm('http://java.sun.com/products/jce/jce14_providers.html \n\n該文件無法用 Teleport Ultra 下載, 因?yàn)?它是一個(gè)域或路徑外部被設(shè)置為它的啟始地址的地址。 \n\n你想在服務(wù)器上打開它?'))window.location='http://java.sun.com/products/jce/jce14_providers.html'" tppabs="http://java.sun.com/products/jce/jce14_providers.html"></a>http://java.sun.com/products/jce/jce14_providers.html</p></ul></div><div class="pSmartList1"><ol start="2" type="1" class="pSmartList1"><a name="wp929881"> </a><div class="pSmartList1"><li>將 JCE 提供者 JAR 文件復(fù)制到 <code class="cCode"><</code><em class="cEmphasis">JAVA_HOME</em><code class="cCode">>/jre/lib/ext/</code> 中。</li></div><a name="wp929883"> </a><div class="pSmartList1"><li>停止 Application Server。如果未停止 Application Server 而后來又在該進(jìn)程中重新啟動(dòng)了 Application Server,則 Application Server 將無法識別 JCE 提供者。</li></div><a name="wp929885"> </a><div class="pSmartList1"><li>在任何一種文本編輯器中編輯 <code class="cCode"><</code><em class="cEmphasis">JAVA_HOME</em><code class="cCode">>/jre/lib/security/java.security</code> 屬性文件。將剛才下載的 JCE 提供者添加到此文件。<code class="cCode">java.security</code> 文件包含添加該提供者的詳細(xì)說明。通常,您需要在具有類似屬性的某個(gè)位置處添加一行,其格式如下: </li></div><a name="wp929887"> </a><code class="pCodelineIndent">security.provider.<n>=<provider class name></code></ol></div><div class="pParaIndent1"><ul class="pParaIndent1"><a name="wp929889"> </a><p class="pParaIndent1">在本示例中,<<em class="cEmphasis">n</em>> 是 Application Server 評估安全性提供者時(shí)使用的優(yōu)先級順序。將剛才添加的 JCE 提供者的 <<em class="cEmphasis">n</em>> 值設(shè)置為 <code class="cCode">2</code>。 </p><a name="wp929891"> </a><p class="pStepParaI1">例如,如果下載的是 Legion of the Bouncy Castle JCE 提供者,則應(yīng)添加以下行。</p><a name="wp929893"> </a><code class="pCodelineIndent">security.provider.2=org.bouncycastle.jce.provider.<br />BouncyCastleProvider</code><a name="wp929895"> </a><p class="pParaIndent1">確保將 Sun 安全性提供者保持在最高優(yōu)先級,值為 1。</p><a name="wp929897"> </a><code class="pCodelineIndent">security.provider.1=sun.security.provider.Sun</code><a name="wp929899"> </a><p class="pParaIndent1">將其他安全性提供者的優(yōu)先級調(diào)低,從而使每個(gè)優(yōu)先級上只有一個(gè)安全性提供者。</p><a name="wp929901"> </a><p class="pParaIndent1">以下是提供所需 JCE 提供者并將現(xiàn)有提供者保持在正確位置的 <code class="cCode">java.security</code> 文件的示例。</p><a name="wp929903"> </a><code class="pCodelineIndent">security.provider.1=sun.security.provider.Sun<br />security.provider.2=org.bouncycastle.jce.provider.<br />BouncyCastleProvider<br />security.provider.3=com.sun.net.ssl.internal.ssl.Provider<br />security.provider.4=com.sun.rsajca.Provider<br />security.provider.5=com.sun.crypto.provider.SunJCE<br />security.provider.6=sun.security.jgss.SunProvider</code></ul></div><div class="pSmartList1"><ol start="5" type="1" class="pSmartList1"><a name="wp929905"> </a><div class="pSmartList1"><li>保存并關(guān)閉文件。</li></div><a name="wp929907"> </a><div class="pSmartList1"><li>重新啟動(dòng) Application Server。</li></div></ol></div><a name="wp929913"> </a><h2 class="pHeading1"><hr />有關(guān)消息安全性的管理控制臺任務(wù)</h2><a name="wp929915"> </a><p class="pParagraph">為使用消息安全性而對 Application Server 進(jìn)行設(shè)置的大部分步驟都可以通過使用管理控制臺、<code class="cCode">asadmin</code> 命令行工具或通過手動(dòng)編輯系統(tǒng)文件來完成。通常,不建議使用編輯系統(tǒng)文件,因?yàn)樗赡軙?huì)導(dǎo)致出現(xiàn)無意識的更改而使 Application Server 不能正常運(yùn)行,所以,如有可能,建議優(yōu)先選擇使用管理控制臺來配置 Application Server,其次選擇使用 <code class="cCode">asadmin</code> 工具命令。僅在無管理控制臺或等效的 <code class="cCode">asadmin</code> 時(shí),才使用手動(dòng)編輯系統(tǒng)文件步驟。</p><a name="wp929917"> </a><p class="pParagraph">以(可插入)驗(yàn)證模塊的形式將消息層安全性支持集成到 Application Server 及其客戶機(jī)容器中。默認(rèn)情況下,Application Server 中的消息層安全性處于禁用狀態(tài)。以下各節(jié)提供了啟用、創(chuàng)建、編輯和刪除消息安全性配置和提供者的詳細(xì)信息。</p><div class="pSmartList1"><ul class="pSmartList1"><a name="wp929923"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp929961" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp929961">啟用消息安全性提供者</a></li></div><a name="wp929929"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp930051" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930051">配置消息安全性提供者</a></li></div><a name="wp929935"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp930175" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930175">創(chuàng)建消息安全性提供者</a></li></div><a name="wp929941"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp930302" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930302">刪除消息安全性配置</a></li></div><a name="wp929947"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp930358" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930358">刪除消息安全性提供者</a></li></div><a name="wp929953"> </a><div class="pSmartList1"><li><a href="ws-security.html#wp930420" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930420">啟用客戶機(jī)應(yīng)用程序的消息安全性</a></li></div></ul></div><a name="wp929955"> </a><p class="pParagraph">大多數(shù)情況下,在執(zhí)行以上列出的管理操作后應(yīng)重新啟動(dòng) Application Server。它尤其適用于當(dāng)執(zhí)行完操作時(shí),您要將管理更改的效果應(yīng)用到 Application Server 上已部署的應(yīng)用程序中的情況。</p><a name="wp929961"> </a><h3 class="pHeading2">啟用消息安全性提供者</h3><a name="wp929967"> </a><p class="pParagraph">要為在 Application Server 中部署的 Web 服務(wù)端點(diǎn)啟用消息安全性,必須指定要在服務(wù)器端默認(rèn)使用的提供者。如果啟用了消息安全性的默認(rèn)提供者,您還需要啟用要由 Application Server 中部署的 Web 服務(wù)客戶機(jī)所使用的提供者。<a href="ws-security.html#wp930420" tppabs="http://docs.sun.com/source/819-1553/ws-security.html#wp930420">啟用客戶機(jī)應(yīng)用程序的消息安全性</a>中說明了有關(guān)啟用客戶機(jī)使用的提供者的信息。</p><a name="wp929969"> </a><p class="pParagraph">要為源于已部署的端點(diǎn)的 Web 服務(wù)調(diào)用啟用消息安全性,您必須指定默認(rèn)客戶機(jī)提供者。如果已為 Application Server 啟用了默認(rèn)客戶機(jī)提供者,則必須確保從 Application Server 中部署的端點(diǎn)中調(diào)用的所有服務(wù)均已配置為與消息層安全性兼容。</p><a name="wp929971"> </a><p class="pParagraph">
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -