<\/HEAD>
<\/A>La mayoría de nosotros aquí estamos relativamente familiarizados con ArcGIS Server para .Net. Sin embargo, en soporte nuestra exposición al producto Java es relativamente limitada, simplemente porque parece que menos clientes han implementado ArcGIS Server para Java. En esta publicación, intentaré cubrir un tema que surge de vez en cuando en soporte, cómo asegurar tanto los endpoints de servicios GIS OGC como Esri proporcionados por la misma instancia de ArcGIS Server. Este concepto es similar pero implementado de manera diferente al tema de ayuda de ArcGIS Server para .Net "Múltiples Instancias Web de ArcGIS Server para Seguridad<\/A>".
Antes de comenzar, revisemos un par de mejores prácticas (cosas que es bueno saber) que debemos entender antes de involucrarnos en cualquier configuración.
Primero, eche un vistazo rápido a la documentación<\/A> sobre la exportación del manejador de servicios web y REST de ArcGIS Server 10 para Java. El servidor web Tomcat que viene con ArcGIS Server para Java debe usarse para desarrollo y administración de ArcGIS Server. Realmente no está pensado para manejar la carga del trabajo en producción. Recomendamos usar ArcGIS Server manager para exportar sus aplicaciones REST, servicios web y tokens a un archivo estándar .WAR y luego desplegar esos archivos .WAR en su servidor web J2EE favorito para uso en producción.
Segundo, respecto a la seguridad y servicios OGC<\/A>:
Es importante reconocer que no hay ninguna disposición <\/EM>en la especificación OGC para autenticación basada en token con servicios OGC. Esto significa que si desea asegurar sus servicios WMS, WFS o WCS, necesitará usar un mecanismo de autenticación más estándar distinto al servicio de token proporcionado por Esri, como autenticación HTTP BASIC o DIGEST.
De fábrica, sin desplegar los manejadores del GIS Server a un servidor J2EE externo, ArcGIS Server para Java estará limitado a un solo mecanismo de autenticación. Sin embargo, como discutiremos abajo, podemos sortear esta limitación desplegando múltiples manejadores de servicios web - cada uno con su propio mecanismo de autenticación.
Para acomodar esta configuración, usaremos Tomcat 7<\/A> (tanto 32- como 64-bit está bien, solo asegúrese que si tiene instalado Java del mismo nivel de bits que el Tomcat que elija).
Mientras configura Tomcat, dado que trabajaremos con autenticación, también querrá habilitar HTTPS\/SSL. De lo contrario, sus credenciales y tokens se transmitirán en texto claro por la red. En mis pruebas, generalmente creo un repositorio SSL y certificado autofirmado usando el comando keytool<\/A>. SSL es requerido cuando se trabaja con el servicio de token con ArcGIS Server para Java, y no hay una forma soportada para deshabilitar este requisito como sí existe en el producto .Net.
Después de instalar y configurar Tomcat con SSL, configure su almacén de seguridad. Para este ejemplo, configuraremos ArcGIS Server para usar Autenticación por Token ArcGIS y habilitaremos seguridad para sus servicios. Pruebe para verificar que la seguridad funciona.
Luego, exportaremos los manejadores SOAP (servicios web)<\/A>, REST<\/> , y
manejadores del servicio token<\/> , y luego los desplegaremos a la instancia externa de Tomcat y probaremos para verificar que se pueda acceder a los servicios. Cuando exporto mis manejadores web, usualmente uso nombres genéricos para las aplicaciones, como 'REST', 'Services' y 'Tokens'.
Cuando configure los manejadores SOAP y REST, asegúrese de habilitar la autenticación usando el servicio token ArcGIS, y asegúrese que la URL del servicio token apunte al manejador del servicio token desplegado en la instancia "externa" de Tomcat.
<\/> Después de haber sido desplegados exitosamente en Tomcat, pruebe para verificar que puede acceder a sus endpoints REST y WSDLs del servicio. Tenga en cuenta que a menos que se defina explícitamente una nueva ruta contextual, estas aplicaciones se desplegarán en la raíz del servidor web. Eso significa que sus URLs a los endpoints del servicio serán similares a estos (usando el puerto HTTPS predeterminado de Tomcat):
https:\/\myserver:8443/services?wsdl
https:\/\myserver:8443/rest/services
Una vez haya probado y verificado que los manejadores del servicio funcionan como se espera, incluyendo requerir autenticación para los servicios asegurados, es hora de desplegar otro manejador de servicios. Este lo usaremos para acceder a nuestros servicios OGC seguros. En este caso, dado que sabemos que los servicios OGC no soportan autenticación basada en token, configuraremos el manejador del servicio para usar autenticación básica o digest. Podemos usar el mismo almacén de seguridad creado anteriormente cuando aseguramos los servicios, pero no podemos usar el servicio token.
<\/> Exporte esta aplicación como un archivo .WAR y nómbrela algo así como "OGC".
Tenga en cuenta que dado que ahora estamos usando una instancia externa de Tomcat, también necesitaremos hacer una rápida modificación al archivo tomcat-users.xml. De lo contrario, Tomcat no podrá reconocer los usuarios y roles que configuró con el Tomcat interno y los manejadores del servicio creados usando la experiencia GUI del ArcGIS Server Manager. Por defecto encontrará ese archivo aquí: C:Program FilesApache Software FoundationTomcat 7.0conf
Abra Tomcat-Users.xml con un editor de texto y descomente la sección usuarios y roles, luego agregue líneas a este archivo para coincidir con los usuarios que creó en el almacén de seguridad GIS Server, así:
<\/> Finalmente, reinicie el servicio Apache Tomcat para que Tomcat reconozca los nuevos usuarios y roles.
Luego debería poder pasar credenciales para acceder a sus servicios OCG, así:
https:\/myserver:8443/OGC/myservice/mapserver/wmsserver?request=getcapabilities
¡Eso es todo!
Para resumir, debido a que los servicios OGC no soportan autenticación basada en token, esencialmente exportamos dos conjuntos de manejadores del servicio: uno para nuestros servicios REST usando el servicio token y otro para nuestros servicios OGC usando autenticación básica o digest. Los servicios entregados sobre SOAP pueden ser autenticados usando cualquiera de los endpoints, dependiendo de los requisitos de la aplicación cliente.
Randall W. - Analista de Soporte del Servidor<\/EM>\n\n\n\n<\/BODY><\/HTML>