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/CXF プロパティー | デフォルト値 |
---|---|
ws-security.username | none |
ws-security.password | none |
ws-security.signature.username | none |
ws-security.encryption.username | none |
Liberty プロパティー | CXF プロパティー | デフォルト値 |
---|---|---|
ws-security.callback-handler | none | |
<signatureProperties> | ws-security.signature.properties | none |
<encryptionProperties> | ws-security.encryption.properties | none |
<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/CXF プロパティー | デフォルト値 |
---|---|
org.apache.ws.security.crypto.provider | org.apache.ws.security.components. |
org.apache.ws.security.crypto. |
デフォルトはインストールされているプロバイダー |
org.apache.ws.security.crypto. |
デフォルトは鍵ストア・プロバイダー |
org.apache.ws.security.crypto. |
none |
Liberty/CXF プロパティー | デフォルト値 |
---|---|
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
Liberty プロパティー | デフォルト値 |
---|---|
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
org.apache.ws.security.crypto. |
none |
Liberty/CXF プロパティー | デフォルト値 |
---|---|
ws-security.enable.nonce.cache | true |
ws-security.cache.config.file | none |
Liberty プロパティー | CXF プロパティー | デフォルト値 |
---|---|---|
callerToken | none | none |
追加プロパティーの構成
どの追加プロパティーも、 server.xml ファイルのデフォルト WS-Security 構成に指定可能です。
<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>
キャッシュの構成
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) では、より強力な署名アルゴリズムの使用を推奨しています。
- 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 になります。
<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>
<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>