Sugerencias para la resolución de problemas de autenticación, autorización y transporte seguro de servicios web
Los servicios web se desarrollan e implementan de acuerdo con la especificación de servicios web para Java™ Platform, Enterprise Edition (Java EE). Existen varias consideraciones acerca de la resolución de problemas de autenticación y autorización cuando se protegen los servicios web.
Estos servicios web se desarrollan e implementan basándose en la especificación Web Services para Java Platform, Enterprise Edition (Java EE). En este tema se describe la resolución de problemas de autenticación, autorización y transporte a tener en cuenta cuando se están protegiendo los servicios web.
Especificación de WSDL remoto utilizando el protocolo de transporte HTTPS
Si la aplicación de cliente JAX-WS (API Java para servicios web XML) especifica una dirección remota para la ubicación WSDL que requiere comunicación segura HTTPS, y no se completa la configuración SSL, se producirá una excepción. Cuando se especifica el URL de WSDL utilizando el protocolo de transporte HTTPS, se debe completar la configuración SSL antes de crear la instancia de cliente. Para configurar SSL, configure la propiedad del sistema com.ibm.SSL.ConfigURL como el nombre de la configuración SSL.
@WebServiceClient(name = "SampleService", targetNamespace = "http://jaxws.sample.websphere.ibm.com/",
wsdlLocation = "https://localhost:9443/Sample/SampleServicePort?WSDL")
public class SampleService
extends Service
{
private final static URL SAMPLESERVICE_WSDL_LOCATION;
static {
URL url = null;
try {
url = new URL("https://localhost:9080/Sample/SampleService?WSDL");
} catch (MalformedURLException e) {
e.printStackTrace();
}
SAMPLESERVICE_WSDL_LOCATION = url;
}
...
}
Para obtener más información sobre cómo establecer esta propiedad del sistema, consulte el apartado Configuración SSL para clientes en la documentación de la configuración de cliente ssl.client.props.
Se muestra un aviso de autenticación o una anomalía de autorización
Podría aparecer un aviso de autenticación o una anomalía de autorización si se produce una conmutación de hebra. Por ejemplo, puede que una aplicación cree una hebra nueva o que se abra una conexión de socket sin procesar con un servlet. La especificación Java EE recomienda que no se utilice una conmutación de hebra porque la información de contexto de seguridad se almacena en una hebra local. Cuando se produce una conmutación de hebra, la identidad autenticada no se pasa de la hebra local a la hebra nueva. Como resultado, WebSphere Application Server considera que la identidad no está autenticada. Si debe crear una hebra nueva, debe propagar el contexto de seguridad a la hebra nueva. No obstante, WebSphere Application Server no soporta este proceso.
La aplicación habilitada para la seguridad de servicios web no se puede iniciar
[6/19/03 11:13:02:976 EDT] 421fdaa2 KeyStoreKeyLo E WSEC5156E: Excepción al recuperar
la clave del objeto KeyStore:
java.security.UnrecoverableKeyException: El bloque final dado no se ha rellenado correctamente
Las aplicaciones con la seguridad de servicios web habilitada no pueden interactuar entre WebSphere Application Server Versión 6.0.x y Versión 5.0.2
Las aplicaciones con la seguridad de servicios web habilitada no pueden interactuar entre WebSphere Application Server Versión 6.0.x y Versión 5.0.2. Cuando las aplicaciones intentan interactuar, aparece un error de "discrepancia en la conversión (digest)". Existe un error en el algoritmo de canonización de la firma digital XML, que se ha arreglado en la versión 5.1. Para que la seguridad de servicios web interactúe entre WebSphere Application Server Versión 6 y Versión 5.0.2, debe actualizar el servidor de aplicaciones de la Versión 5.0.2. Para actualizar el servidor de la Versión 5.0.2, acceda al sitio web de soporte de WebSphere Application Server y descargue el último fixpack para WebSphere Application Server, Versión 5.0.2.