Horodatage
Un horodatage est la valeur d'un objet qui indique l'heure système à un moment critique dans l'historique de l'objet.
Un horodatage est inclus dans un message pour réduire la vulnérabilité d'une application contre les attaques de type replay. Dans les services Web, une attaque de type replay se produit lorsqu'une demande HTTP est interceptée et son contenu renvoyé au fournisseur dans son format d'origine.

Pour les phases d'exécution de JAX-RPC et JAX-WS WS-Security, le délai d'expiration du message par défaut est de 5 minutes et cette valeur est utilisée si aucune valeur n'est spécifiée dans le message. Si un délai d'expiration différent est requis pour un client spécifique ou que vous avez des doutes par rapport à la valeur par défaut du service cible, configurez un délai d'expiration pour l'horodatage sortant.

- Lorsque les phases d'exécution de la sécurité de service Web JAX-RPC et JAX-WS génèrent ou consomment un message, ils n'imposent pas le fait que l'intégrité de l'horodatage est protégé.
- Les phases d'exécution de la sécurité de service Web JAX-RPC et JAX-WS ne disposent pas d'un délai d'expiration pour le message sortant par défaut. Si vous voulez inclure un délai d'expiration dans un message, vous devez le configurer. Bien que la phase d'exécution de JAX-WS n'est pas associée à un délai d'expiration de message sortant par défaut, vous pouvez configurer cette valeur dans les liaisons générales par défaut. Cette valeur est acquise par toutes les applications au niveau auquel les liaisons par défaut sont appliquées. Par exemple, la valeur peut être acquise au niveau de la cellule ou de l'application.
- En ce qui concerne la phase d'exécution de JAX-RPC, le délai d'expiration de l'horodatage est spécifié dans l'extension de descripteur de déploiement des services Web. Vous ne pouvez pas modifier cette extension dans la console d'administration ; vous pouvez uniquement la consulter. Pour modifier cette extension, vous devez utiliser un outil d'assemblage et ajouter ou modifier le délai d'expiration de l'horodatage d'une application JAX-RPC.
- Si des contraintes WS-Security existent pour consommer un horodatage, le client doit envoyer un horodatage.
- WebSphere Application Server impose l'assertion de règle IncludeTimestamp. Toutefois, de nombreux fournisseurs de services exigent l'élément <wsu:Timestamp> dans la demande mais n'envoient pas cet élément dans la réponse. Il est aussi possible qu'il n'y ait aucun en-tête de sécurité ou horodatage dans la réponse. L'erreur suivante se produira sur un client quand IncludeTimestamp est inclus dans la règle alors qu'aucun horodatage n'est retourné dans la réponse :
Pour résoudre le problème, configurez le fournisseur de service pour envoyer un horodatage ou bien configurez le client pour qu'il ne demande pas l'horodatage en définissant à false la propriété personnalisée com.ibm.wsspi.wssecurity.consumer.timestampRequired dans les liaisons de règle WS-Security. Pour plus d'informations, voir Propriétés personnalisées de la sécurité des services Web.CWWSS5730E: Un horodatage requis est introuvable.
L'environnement d'exécution JAX-WS WS-Security est compatible avec l'exigence requise d'horodatage pour la spécification OASIS WS-SecurityPolicy 1.2. Si vous souhaitez configurer une application de telle sorte qu'aucun horodatage entrant ne soit requis lorsqu'un horodatage sortant est configuré, vous pouvez ajouter com.ibm.wsspi.wssecurity.consumer.timestampRequired en tant que propriété personnalisée de la sécurité pour les services Web entrants/sortants.
- paramétrer la propriété com.ibm.wsspi.wssecurity.timestamp.keyword sur SecurityFirst ;
- paramétrer la propriété com.ibm.wsspi.wssecurity.timestamp.dialect sur http://www.ibm.com/websphere/webservices/wssecurity/dialect-was. La valeur par défaut de com.ibm.wsspi.wssecurity.timestamp.dialect est dialect-was mais, pour que la fonction désirée fonctionne, la propriété doit être définie explicitement.