Web Services Security のデフォルト構成

Web Services Security (WS-Security) 構成は、実行時に WS-Security ポリシーを補完します。WS-Security 構成は、CXF の名前と値のペアのスタイルに従い、CXF プロパティー名を保持します。 プロパティーには、デフォルト値を持つものも、持たないものもあります。

WebSphere® Application Server Liberty では、server.xml ファイルに、 すべてのサービスに適用されるサーバー・レベルの構成が用意されています。 この構成は、デフォルト WS-Security 構成として知られています。

server.xml ファイルには、クライアント・アプリケーション用とプロバイダー・アプリケーション用の 2 つのデフォルト WS-Security 構成があります。 その他の WS-Security 構成が server.xml ファイルに存在することはできません。 ご使用のアプリケーション用にデフォルトから派生したカスタム WS-Security 構成が必要な場合には、 プログラムで構成を行う必要があります。

以下の例は、デフォルト・クライアント構成を示しています。
<wsSecurityClient id="default"
                  ws-security.username="user2"
                  ws-security.password="security">
  <signatureProperties org.apache.ws.security.crypto.merlin.keystore.type="jks"
                       org.apache.ws.security.crypto.merlin.keystore.password="LibertyX509Client"
                       org.apache.ws.security.crypto.merlin.keystore.alias="x509ClientCert"
                       org.apache.ws.security.crypto.merlin.file="${server.config.dir}/x509ClientDefault.jks"/>
</wsSecurityClient>
以下の例は、デフォルト・プロバイダー構成を示しています。
<wsSecurityProvider id="default"
                    ws-security.username="user2">
  <encryptionProperties org.apache.ws.security.crypto.merlin.keystore.type="jks"
                        org.apache.ws.security.crypto.merlin.keystore.password="LibertyX509Server"
                        org.apache.ws.security.crypto.merlin.keystore.alias="x509ServerCert"
                        org.apache.ws.security.crypto.merlin.file="${server.config.dir}/x509ServerDefault.jks"/>
</wsSecurityProvider>
以下の表に、Liberty のデフォルト WS-Security ユーザー・プロパティーを示します。CXF のプロパティーも以下と同じです。
表 1. Liberty および CXF のデフォルト WS-Security ユーザー・プロパティー
Liberty/CXF プロパティー デフォルト値
ws-security.username none
ws-security.password none
ws-security.signature.username none
ws-security.encryption.username none
以下の表に、Liberty の WS-Security コールバック・ハンドラー・クラスおよび暗号プロパティーと、それに相当する CXF プロパティー (異なる場合) を示します。
表 2. Liberty の WS-Security コールバック・ハンドラー・クラスおよび暗号プロパティーと相当する CXF プロパティー
Liberty プロパティー CXF プロパティー デフォルト値
ws-security.callback-handler   none
<signatureProperties> ws-security.signature.properties none
<encryptionProperties> ws-security.encryption.properties none
WebSphere Application Server では、wss4j プロパティーは、signatureProperties エレメントまたは encryptionProperties エレメントの属性として指定されます。 以下の例で、wss4j プロパティーを示します。
<signatureProperties org.apache.ws.security.crypto.merlin.keystore.type="jks"
                     org.apache.ws.security.crypto.merlin.keystore.password="LibertyX509Client"
                     org.apache.ws.security.crypto.merlin.keystore.alias="x509ClientDefault"
                     org.apache.ws.security.crypto.merlin.file="${server.config.dir}/x509ClientDefault.jks">
</signatureProperties>
以下の表で、Liberty の wss4j 暗号プロパティーを示します。CXF のプロパティーも以下と同じです。
表 3. Liberty の wss4j 暗号プロパティーと CXF
Liberty/CXF プロパティー デフォルト値
org.apache.ws.security.crypto.provider

org.apache.ws.security.components.
crypto.Merlin

org.apache.ws.security.crypto.
merlin.keystore.provider

デフォルトはインストールされているプロバイダー

org.apache.ws.security.crypto.
merlin.cert.provider

デフォルトは鍵ストア・プロバイダー

org.apache.ws.security.crypto.
merlin.x509crl.file

none
以下の表で、Liberty の wss4j 鍵ストア・プロパティーを示します。CXF のプロパティーも以下と同じです。
表 4. Liberty の wss4j 鍵ストア・プロパティーと CXF
Liberty/CXF プロパティー デフォルト値

org.apache.ws.security.crypto.
merlin.keystore.file

none

org.apache.ws.security.crypto.
merlin.keystore.password

none

org.apache.ws.security.crypto.
merlin.keystore.type

none

org.apache.ws.security.crypto.
merlin.keystore.alias

none

org.apache.ws.security.crypto.
merlin.keystore.private.password

none
以下の表で、Liberty の wss4j トラストストア・プロパティーを示します。CXF のプロパティーも以下と同じです。
表 5. Liberty の wss4j トラストストア・プロパティーと CXF
Liberty プロパティー デフォルト値

org.apache.ws.security.crypto.
merlin.truststore.file

none

org.apache.ws.security.crypto.
merlin.truststore.password

none

org.apache.ws.security.crypto.
merlin.truststore.type

none
以下の表に、Liberty の WS-Security 各種プロパティーを示します。CXF のプロパティーも以下と同じです。
表 6. Liberty および CXF の WS-Security 各種プロパティー
Liberty/CXF プロパティー デフォルト値
ws-security.enable.nonce.cache true
ws-security.cache.config.file none
以下の表に、Liberty でのみサポートされるプロパティーを示します。
表 7. Liberty のみでサポートされるプロパティー
Liberty プロパティー CXF プロパティー デフォルト値
callerToken none none

追加プロパティーの構成

いくつかの追加のプロパティーを設定して、 追加の構成情報を WS-Security ランタイム環境に提供することができます。 これらのプロパティーの詳細情報については、以下のリンクを参照してください。

どの追加プロパティーも、 server.xml ファイルのデフォルト WS-Security 構成に指定可能です。

例えば、 追加プロパティーを指定するには、 それらを wsSecurityClient セクション、または wsSecurityProvider セクション、あるいはその両方に指定します。
<wsSecurityProvider id="default"
  <signatureProperties ... />
  <encryptionProperties ... />
  ws-security.cache.config.file = "${server.config.dir}/resources/ws-security/new_cxf-ehcache.xml"
</wsSecurityProvider>

<wsSecurityClient id="default"
  <signatureProperties ... />
  <encryptionProperties ... />
  ws-security.username-token.always.encrypted="false"
</wsSecurityClient>

キャッシュの構成

WS-Security では、 UsernameToken の noncecreated タイム・スタンプ、およびセキュリティー・トークンのデフォルト・キャッシュ実装が提供されます。 デフォルト・キャッシュ実装は、以下のデフォルト設定の ehCache に基づいています。
maxEntriesLocalHeap="5000"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"

デフォルト・キャッシュ設定を変更するには、 ehCache 構成 XML ファイルを指定できます。 ws-security.cache.config.file カスタム・プロパティーを使用して、 デフォルト設定から派生するためにカスタマイズしたプロパティーを含むファイル名を指定します。 サーバー・プロファイルのどこかにこのファイルを入れる必要があります。 http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/resources/cxf-ehcache.xml?view=markup に追加のサンプルのキャッシュ設定構成ファイルがあります。

より強力な署名アルゴリズムの構成

SHA1 署名アルゴリズムでは弱いことから、米国連邦情報・技術局 (NIST) では、より強力な署名アルゴリズムの使用を推奨しています。

ただし、WS-Security ポリシー 1.3 で署名アルゴリズムとして定義しているのは、 HmacSha1 または RsaSha1 (まとめて sha1 と呼ぶ) のみです。 Liberty の WS-Security には、より強力な以下の署名アルゴリズムを使用する構成オプションがあります。
  • RSA-SHA-256
  • RSA-SHA-384
  • RSA-SHA-512
  • HMAC-SHA-256
  • HMAC-SHA-384
  • HMAC-SHA-512

より強力な署名アルゴリズムをサポートするように Liberty で WS-Security を構成するには、server.xml ファイルの <signatureProperties> エレメントの中で、signatureAlgorithm 属性を使用して必要なアルゴリズムを定義します。signatureAlgorithm 属性に有効な値は sha256、sha384、および sha512 です。 例えば、signatureAlgorithm 属性の値として sha512 を指定すると、 非対称鍵による署名で使用される署名アルゴリズムは RSA-SHA-512、対称鍵による署名で使用される署名アルゴリズムは HMAC-SHA-512 になります。

以下の例は、sha256 署名アルゴリズムを必要とするサンプルのクライアント・サイド構成を示しています。
<wsSecurityClient id="default"
  ws-security.password="security"
  ws-security.username="user1"
  ws-security.callback-handler="com.ibm.ws.wssecurity.example.cbh.CommonPasswordCallback"
  ws-security.signature.username="soaprequester">
  <signatureProperties
    signatureAlgorithm="sha256"
    org.apache.ws.security.crypto.merlin.keystore.type="jks"
    org.apache.ws.security.crypto.merlin.keystore.password="client"
    org.apache.ws.security.crypto.merlin.keystore.alias="soaprequester"
    org.apache.ws.security.crypto.merlin.file="${server.config.dir}/dsig-sender.ks" />
</wsSecurityClient>
以下の例は、sha256 署名アルゴリズムを必要とするサンプルのプロバイダー・サイド構成を示しています。
<wsSecurityProvider id="default"
  ws-security.callback-handler="com.ibm.ws.wssecurity.example.cbh.CommonPasswordCallback"
  ws-security.signature.username="soapprovider">
  <signatureProperties
    signatureAlgorithm="sha256"
    org.apache.ws.security.crypto.merlin.keystore.type="jks"
    org.apache.ws.security.crypto.merlin.keystore.password="server"
    org.apache.ws.security.crypto.merlin.keystore.alias="soapprovider"
    org.apache.ws.security.crypto.merlin.file="${server.config.dir}/dsig-receiver.ks" /> 
</wsSecurityProvider>

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_wssec_defaultconfig
ファイル名: cwlp_wssec_defaultconfig.html