Configuration de Web Services Secure Conversation
Web Services Secure Conversation prend en charge deux mécanismes de configuration : le niveau par défaut et le niveau de service client JAX-WS (Java™ API for XML Web Services).
Consultez les informations ci-dessous relatives aux deux mécanismes de configuration, pour vous assurer que la configuration de la conversation sécurisée et de l'ensemble de règles de WebSphere Application Server est correcte.
Valeut par défaut
La portée par défaut est basée sur un cluster, une application, un module et un noeud final de service cible. Pour un client exécuté dans un environnement de client léger, il est considéré comme étant une application, un cluster et un module unique.
Dans ce mode de configuration, toutes les instances du client JAX-WS dans une application, un cluster et un module particuliers du même noeud final de service cible partagent la même conversation sécurisée. Par exemple, dans la figure ci-dessous, les deux instances client (client 1 et client 2) figurent dans le même module. Le client 1 et le client 2 partagent la même conversation sécurisée avec le service 1. Les deux autres instances client (client 3 et client 4), qui se trouvent dans un module différent de celui des clients 1 et 2, partagent une conversation sécurisée l'une avec l'autre et non avec les clients 1 et 2.
Niveau de service client JAX-WS
La portée au niveau du service client JAX-WS est activée via la spécification d'une propriété dans la configuration de liaison du générateur de jetons du SCT (Secure Conversation Token) dans la demande d'application client (application sortante). La liaison est située dans le répertoire META-INF de l'application déployée.
$PROFILE_DIR/config/cells/<nom_cellule>/WSSampleClientBeta.ear/deployments/WSSampleClientBeta
/META-INF/SecureConversation123binding/PolicyTypes/WSSecurity/bindings.xml.
Exemple de configuration :
<tokenGenerator name="gen_enctgen"
classname="com.ibm.ws.wssecurity.wssapi.token.impl.CommonTokenGenerator">
<valueType localName="http://schemas.xmlsoap.org/ws/2005/02/sc/sct" uri="" />
<callbackHandler classname="com.ibm.ws.wssecurity.impl.auth.callback.WSTrustCallbackHandler">
<properties name="com.ibm.ws.wssecurity.sc.SCTScope" value="SERVICE_SCOPE"/>
</callbackHandler>
<properties name="com.ibm.ws.wssecurity.sc.dkt.ServiceLabel" value="WSC"/>
<properties name="com.ibm.ws.wssecurity.sc.dkt.ClientLabel" value="WSC"/>
<jAASConfig configName="system.wss.generate.sct"/>
</tokenGenerator>
L'exemple de code ci-dessous démontre le comportement après l'activation de la propriété de la configuration de liaison du générateur de jetons du SCT dans la demande d'application client (application sortante). Dans ce mode, Web Services Secure Conversation est configuré sur l'instance de service client JAX-WS.
QName serviceQname = new QName("http://ws.apache.org/axis2", "EchoService");
QName portQname = new QName("http://ws.apache.org/axis2", "EchoServicePort");
String endpointUrl = "http://myhost/......";
Service svc1 = Service.create(serviceQname);
svc1.addPort(portQname, null, endpointUrl);
Dispatch<Source> dispatch = svc1.createDispatch(portQname, Source.class, null);
……
……
Service svc2 = Service.create(serviceQname);
svc2.addPort(portQname, null, endpointUrl);
Dispatch<Source> dispatch = svc2.createDispatch(portQname, Source.class, null);
où svc1 et svc2 se trouvent dans deux conversations sécurisées différentes avec le noeud final de service cible.
Vous pouvez modifier la portée via la console d'administration ou à l'aide du scriptage pour ajouter une propriété.