Ámbito de Web Services Secure Conversation
Web Services Secure Conversation da soporte a dos mecanismos de ámbito: el valor predeterminado y el nivel de servicio de cliente JAX-WS (Java™ API for XML Web Services).
Consulte la siguiente información sobre los dos mecanismos de ámbito para garantizar el ámbito correcto de Secure Conversation y el conjunto de políticas de WebSphere Application Server.
Valor predeterminado
El ámbito predeterminado se basa en un clúster, una aplicación, un módulo y un punto final de servicio de destino. Para un cliente que se ejecuta en un entorno de cliente ligero, se considera que es una aplicación individual, un clúster y un módulo.
En esta modalidad de ámbito, todas las instancias del cliente JAX-WS en una determinada aplicación, clúster y módulo en el mismo punto final de servicio de destino comparten la misma Secure Conversation. Por ejemplo, en la siguiente figura, las dos instancias de cliente (Cliente 1 y Cliente 2) están en el mismo módulo. El Cliente 1 y el Cliente 2 comparten la misma Secure Conversation con el Servicio 1. Las otras dos instancias de cliente (Cliente 3 y Cliente 4), que están en un módulo distinto que los Clientes 1 y 2, comparten Secure Conversation entre ellos, pero no con los Clientes 1 y 2.
Nivel de servicio de cliente JAX-WS
El ámbito en el nivel de servicio de cliente JAX-WS se habilita especificando una propiedad en la configuración de enlace de generador de señales de la señal de Secure Conversation (SCT) en la solicitud de aplicación cliente (salida de aplicación). El enlace se encuentra en la META-INF de la aplicación desplegada.
$PROFILE_DIR/config/cells/<nombre_célula>/WSSampleClientBeta.ear/deployments/WSSampleClientBeta
/META-INF/SecureConversation123binding/PolicyTypes/WSSecurity/bindings.xml.
A continuación, se proporciona un ejemplo de la configuración:
<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>
El siguiente ejemplo de código demuestra el comportamiento una vez habilitada la propiedad en la configuración de enlace de generador de señales del SCT en la solicitud de aplicación cliente (salida de aplicación). En esta modalidad, Web Services Secure Conversation tiene el ámbito de la instancia de servicio de cliente 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);
donde svc1 y svc2 están en dos conversaciones seguras diferentes con el punto final de servicio de destino.
Puede cambiar el ámbito utilizando la consola administrativa o los scripts para añadir una propiedad.