Configuration par défaut de la sécurité de services Web

Une configuration de sécurité de services Web (WS-Security) est complémentaire de la règle de sécurité de services Web à l'exécution. La configuration de la sécurité de services Web respecte le style de la paire nom-valeur CXF et conserve le nom de propriété CXF. Certaines des propriétés sont associées à des valeurs par défaut, d'autres non.

Dans le fichier server.xml, WebSphere Application Server Liberty fournit une configuration de niveau de serveur qui est appliquée à tous les services. Il s'agit de la configuration de sécurité de services Web par défaut.

Le fichier server.xml comporte deux configurations de sécurité de services Web par défaut : une pour les applications client et une pour les applications de fournisseur. Aucune autre configuration de sécurité de services Web ne peut exister dans le fichier server.xml. Si vous avez besoin d'une configuration de sécurité de services Web personnalisée pour votre application, qui diffère de la configuration par défaut, vous devez la définir à l'aide d'un programme.

L'exemple suivant illustre une configuration client par défaut :
<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>
L'exemple suivant illustre une configuration de fournisseur par défaut :
<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>
Le tableau ci-après répertorie les propriétés utilisateur de sécurité de services Web par défaut dans Liberty. Ces mêmes propriétés existent dans CXF.
Tableau 1. Propriétés utilisateur de sécurité de services Web par défaut dans Liberty et CXF
Propriété Liberty/CXF Valeur par défaut
ws-security.username Aucune
ws-security.password Aucune
ws-security.signature.username Aucune
ws-security.encryption.username Aucune
Le tableau ci-après répertorie les propriétés de chiffrement et de la classe du gestionnaire d'appel de sécurité de services Web et les propriétés de chiffrement dans Liberty ainsi que les propriétés CXF équivalentes, si celles-ci sont différentes.
Tableau 2. Propriétés de chiffrement et de la classe du gestionnaire d'appel de sécurité de services Web dans Liberty et propriétés CXF équivalentes
Propriété Liberty Propriété CXF Valeur par défaut
ws-security.callback-handler   Aucune
<signatureProperties> ws-security.signature.properties Aucune
<encryptionProperties> ws-security.encryption.properties Aucune
Dans WebSphere Application Server, les propriétés wss4j sont spécifiées en tant qu'attributs de l'élément signatureProperties ou encryptionProperties. L'exemple suivant illustre les propriétés 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>
Le tableau ci-après répertorie les propriétés de chiffrement wss4j dans Liberty. Ces mêmes propriétés existent dans CXF.
Tableau 3. Propriétés de chiffrement wss4j dans le Liberty et CXF
Propriété Liberty/CXF Valeur par défaut
org.apache.ws.security.crypto.provider

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

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

Par défaut, fournisseur installé

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

Par défaut, fournisseur de fichier de clés

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

Aucune
Le tableau ci-après répertorie les propriétés de fichier de clés wss4j dans Liberty. Ces mêmes propriétés existent dans CXF.
Tableau 4. Propriétés de fichier de clés wss4j dans Liberty et CXF
Propriété Liberty/CXF Valeur par défaut

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

Aucune

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

Aucune

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

Aucune

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

Aucune

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

Aucune
Le tableau ci-après répertorie les propriétés de fichier de clés certifiées wss4j dans Liberty. Ces mêmes propriétés existent dans CXF.
Tableau 5. Propriétés de fichier de clés certifiées wss4j dans Liberty et CXF
Propriété Liberty Valeur par défaut

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

Aucune

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

Aucune

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

Aucune
Le tableau ci-après répertorie les propriétés diverses de sécurité de services Web dans Liberty. Ces mêmes propriétés existent dans CXF.
Tableau 6. Propriétés diverses de sécurité de services Web dans Liberty et CXF
Propriété Liberty/CXF Valeur par défaut
ws-security.enable.nonce.cache true
ws-security.cache.config.file Aucune
Le tableau ci-après répertorie les propriétés qui sont prises en charge dans Liberty seulement.
Tableau 7. Propriétés prises en charge dans Liberty seulement
Propriété Liberty Propriété CXF Valeur par défaut
callerToken Aucune Aucune

Configuration de propriétés supplémentaires

Vous pouvez définir des propriétés supplémentaires afin de fournir des informations de configuration additionnelles à l'environnement d'exécution de la sécurité de services Web. Cliquez sur les liens suivants pour des détails sur ces propriétés :

Vous pouvez spécifier les propriétés supplémentaires pour la configuration de sécurité de services Web par défaut dans le fichier server.xml.

Par exemple, pour spécifier des propriétés supplémentaires, ajoutez-les dans la section wsSecurityClient ou wsSecurityProvider, ou les deux.
<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>

Configuration du cache

La sécurité de services Web fournit une implémentation de mise en cache par défaut pour nonce dans un jeton de nom d'utilisateur, l'horodatage created et des jetons de sécurité. L'implémentation de cache par défaut repose sur ehCache avec les paramètres par défaut suivants :
maxEntriesLocalHeap="5000"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"

Pour modifier les paramètres de cache par défaut, vous pouvez fournir un fichier XML de configuration ehCache. Utilisez la propriété personnalisée ws-security.cache.config.file afin de spécifier un nom de fichier avec des propriétés personnalisées pour dévier des paramètres par défaut. Vous devez placer ce fichier quelque part dans le profil du serveur. Vous trouverez un autre exemple de fichier de configuration des paramètres du cache à l'adresse http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/resources/cxf-ehcache.xml?view=markup.

Configuration d'un algorithme de signature plus fort

En raison de la faiblesse de l'algorithme de signature SHA1, le National Institute of Standards and Technology (NIST) recommande l'utilisation d'algorithmes de signature plus forts.

Toutefois, la spécification WS-Security policy 1.3 définit HmacSha1 ou RsaSha1 (collectivement sha1) comme seul algorithme de signature. La sécurité de services Web dans Liberty possède une option de configuration permettant d'utiliser les algorithmes de signature plus forts suivants :
  • RSA-SHA-256
  • RSA-SHA-384
  • RSA-SHA-512
  • HMAC-SHA-256
  • HMAC-SHA-384
  • HMAC-SHA-512

Pour configurer la sécurité de services Web dans Liberty afin de prendre en charge l'algorithme de signature plus fort, utilisez l'attribut signatureAlgorithm afin de définir l'algorithme requis dans l'élément <signatureProperties> du fichier server.xml. Les valeurs admises pour l'attribut signatureAlgorithm sont sha256, sha384 et sha512. Par exemple, si vous spécifiez sha512 comme valeur pour l'attribut signatureAlgorithm, l'algorithme de signature qui est utilisé dans la signature avec une clé asymétrique est RSA-SHA-512, et l'algorithme de signature qui est utilisé dans la signature avec une clé symétrique est HMAC-SHA-512.

L'exemple suivant est une configuration côté client qui requiert l'algorithme de signature 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>
L'exemple suivant est une configuration côté fournisseur qui requiert l'algorithme de signature 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>

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_wssec_defaultconfig
Nom du fichier : cwlp_wssec_defaultconfig.html