Gestión de servicios web

Este artículo contiene los siguientes temas:
casm173
Este artículo contiene los siguientes temas:
Servicios Web
es un conjunto de estándares de intercambio de datos que permiten la comunicación entre productos, aunque se encuentren en entornos operativos diferentes. Esta capacidad es similar a navegar por Internet en un ordenador personal; se puede acceder a todos los sitios web remotos, independientemente de si estén alojados en Solaris, AIX, Windows, etc. De la misma manera, Servicios Web permite que los productos se comuniquen por HTTP con diferentes servidores independientemente del entorno operativo. Por ejemplo, un producto de Microsoft Office puede establecer la comunicación con un programa ubicado en un servidor de UNIX. Del mismo modo, una página de servidor Java puede acceder a un servidor alojado en un servidor de Windows. Esta comunicación independiente de plataformas permite llevar a cabo integraciones sólidas.
Los servicios web aprovechan las ventajas de esta tecnología, lo que permite que casi cualquier producto para acceda a CA SDM y a la gestión del conocimiento. Los clientes de Servicios Web pueden crear tickets, actualizar activos, buscar en la base de conocimiento y mucho más.
Para obtener información adicional sobre los servicios web, consulte la Guía de referencia técnica de CA SDM.
Componentes de CA SDM
CA SDM proporciona los archivos de instalación de esta versión de los servicios web de J2EE en el directorio siguiente:
<NX_ROOT>/sdk/websvc/R11
<NX_ROOT> es la ruta de instalación raíz de CA SDM.
Opciones de servicio Web
Estas opciones controlan la sesión de servicio Web:
  • rest_webservice_access_duration
    Especifica el número de horas que la clave de acceso del servicio Web REST permanece activa antes de vencer. El tiempo de espera de la clave de acceso no se basa en el tiempo de inactividad, sino en el tiempo desde la creación de la clave de acceso. Cuando la clave de acceso cumple la duración especificada, esta termina a pesar de que se esté usando.
    Si se desea, el cliente REST también puede proporcionar la duración de la clave de acceso para una clave de acceso específica durante la solicitud de la misma. Para proporcionar el valor de duración, establézcalo directamente en el atributo expiration_date del recurso rest_access como parte de la carga útil de solicitud de POST.
    Intervalo válido
    : 1-8.760 horas
    Valor predeterminado
    : 168
  • rest_webservice_disable_basic_auth
    Desactiva la autenticación básica en los servicios Web REST.
    Valor predeterminado
    : No
  • rest_webservice_list_max_length
    Especifica el número máximo de filas que devuelve una consulta del servicio Web REST.
    Valor predeterminado
    : 500
  • rest_webservice_list_page_length
    Especifica el número predeterminado de filas que devuelve por página una consulta del servicio Web REST.
    Intervalo válido
    : 1-500
    Valor predeterminado:
    25
  • rest_webservice_resources_to_expose
    Especifica la lista de fábricas de Majic (recursos) que CA SDM expone mediante servicios web REST. Esta opción anula el comportamiento predeterminado. De forma predeterminada, CA SDM expone todas las fábricas mediante los servicios web REST.
    Si no se introducen valores en esta opción, el comportamiento predeterminado expone cualquier fábrica de Majic que no tenga la propiedad REST_OPERATIONS establecida en NONE. De forma predeterminada, ninguna fábrica de Majic tiene esta propiedad establecida en NONE.
    Utilice la propiedad REST_OPERATIONS para establecer los métodos CRUD de HTTP específicos (CREATE, READ, UPDATE, DELETE) para que CA SDM exponga en una fábrica de Majic dada.
    Valor predeterminado:
    rest_access
    Ejemplo:
    rest_access, cnt, grp, cr, crs, pri, alg, urg, imp, pcat, org
  • hmac_algorithm
    Especifica el algoritmo que se utiliza para calcular la firma para la autenticación de la clave secreta/personalizada en los servicios Web REST.
    Valor predeterminado
    : HmacSHA1
  • string_to_sign_fields
    Especifica los campos que se utilizan para calcular la firma para la autenticación de la clave secreta/personalizada en los servicios Web REST, además de los campos predeterminados REQUEST_METHOD, REQUEST_URI y QUERY_STRING.
    Valor predeterminado:
    en blanco
  • webservice_domsrvr
    Especifica el nombre del motor de objetos que los servicios Web SOAP utilizan. Si no está instalado, los servicios Web SOAP utilizan "domsrvr".
    El valor de la opción debe ser una cadena que comience con los caracteres "domsrvr:".
  • webservice_session_timeout
    Establece el valor de tiempo de espera (en minutos) para las sesiones del servicio Web SOAP. Si el tiempo que transcurre entre las llamadas sucesivas al método Web supera el valor especificado, el ID de la sesión se marca como vencido. La sesión deja de ser válida.
    Para impedir que las sesiones venzan debido a la actividad, establezca el valor de esta opción en 0. Otros métodos, como las rutinas de cierre de sesión, aún pueden invalidar las sesiones.
Estas opciones exigen reiniciar el servidor de CA SDM.
Instalación de Servicios Web
En función del tipo de configuración, CA SDM instala servicios web para los siguientes servidores:
  • Convencional: el servidor principal y el servidor secundario Para que los clientes de los servicios web puedan utilizar una dirección URL en un servidor secundario, es necesario agregar un motor web al servidor secundario.
  • Disponibilidad avanzada: servidor de aplicaciones
Los servicios web utilizan el gestor de objetos predeterminado que está instalado en el servidor de CA SDM. Para utilizar cualquier otro gestor de objetos, instale y establezca la opción
webservice_domsrvr
en Gestor de opciones.
Para obtener información sobre la adición y configuración de gestores de objetos, directores web y motores web, consulte la sección Gestor de opciones.
Cómo activar la función Tiempo de creación (Design-time)
Los servicios web de CA SDM incluyen una función de configuración de códigos auxiliares de métodos para desarrolladores en la versión Java. Cuando está activada, los servicios web ignoran el servidor de CA SDM y devuelven datos simulados para llamadas a métodos, con el objetivo de que se puedan realizar llamadas a los servicios web sin ejecutar un servidor de CA SDM.
Siga los pasos siguientes:
  1. Edite deploy.wsdd para no comentar las secciones de "design_mode_stubs".
  2. Invierta la implementación y vuelva a implementar el servidor.
  3. Reinicie el servidor de aplicaciones.
    Se activa la opción de tiempo de creación.
La función de tiempo de creación sólo se aplica a métodos de servicios web de CA SDM.
Seguridad de servicios Web
Cuando se implementan servicios Web, debe conocer las importantes consideraciones de seguridad. Cuando se utiliza HTTP, la configuración predeterminada no es segura, al igual que ocurre con toda la información en llamadas a servicios Web transmitida entre clientes y servidores en texto sin formato a través de la red y mediante el protocolo HTTP. Esto afecta no sólo a datos de aplicaciones, como descripciones de tickets y nombres de contacto, sino también a identificadores de sesión de servicios Web (SID). Según los métodos de inicio de sesión utilizados en las aplicaciones de servicios Web, puede incluir contraseñas.
Se recomienda que los administradores a cargo de la implementación de los servicios Web consulten esta información con detenimiento y apliquen ciertos ajustes de configuración en los niveles de red y aplicaciones para asegurar el entorno de los servicios Web.
La configuración predeterminada de los servicios web utilizada con HTTP no es segura y puede verse afectada por amenazas de seguridad como, por ejemplo, el descubrimiento de contraseñas, la fijación de sesión y el espionaje de datos.
A la hora de desarrollar Servicios Web, deben tenerse en cuenta tres consideraciones de seguridad claves relacionadas entre sí:
  • ¿Qué esquemas de autenticación de acceso (en el nivel de aplicaciones) debería admitir este desarrollo?
  • ¿Qué otras funciones de seguridad al nivel de red requiere este desarrollo?
  • ¿Cómo se impondrán estos requisitos mediante las opciones de configuración de los servicios Web?
A continuación se describen las funciones de seguridad:
  • Esquemas de autenticación de nivel de aplicación de servicio web
    : para acceder a los servicios web, se debe autenticar una aplicación cliente de servicio web con la aplicación de servicio web. Servicios Web proporciona dos esquemas de autenticación de acceso. El primero es por nombre de usuario/contraseña, mientras que el segundo es por tecnología PKI (infraestructura de claves públicas). Ambos colaboran con el componente de control y gestión de acceso de Servicios Web mediante una política de acceso. La autenticación de acceso y la gestión de acceso son las funciones de seguridad más importantes de Servicios Web.
    La autenticación con nombre de usuario/contraseña puede desactivarse mediante el comando de configuración de seguridad siguiente:
    disable_user_logon
    Antes de activar esta opción y con respecto a cada cliente de servicios Web para el que la empresa solicita acceso a Servicios Web, el administrador deberá determinar la compatibilidad de dicho servicio con el método de autenticación alternativo, es decir, el método login basado en PKI. La ventaja principal de la tecnología PKI es que las aplicaciones cliente de Servicios Web no exigen el
    mantenimiento
    de cuentas de usuario del sistema, es decir, el mantenimiento, el almacenamiento y la transmisión de sus contraseñas.
  • Configuración de seguridad al nivel de red
    : en ambos esquemas de autenticación, nombre de usuario/contraseña e infraestructura de claves públicas (PKI), tenga en cuenta el identificador de sesión devuelto por el método de inicio de sesión específico (al igual que toda la información que se incluye a continuación) se transmite en texto sin formato al usar HTTP. Es más, si se utiliza el esquema de autenticación por nombre de usuario/contraseña, la contraseña se envía sin protección (en texto sin formato) desde la aplicación cliente del servicio Web a los Servicios Web. Durante el desarrollo del producto, W3C no tenía estándares recomendados para la seguridad de los servicios Web. Ulteriormente, WS-Security no se utiliza en estas implementaciones de Servicios Web para proporcionar un contexto de seguridad. En su lugar, se recomienda el uso de la seguridad de la capa de transporte punto a punto (SSL/TLS) y de otros mecanismos de seguridad al nivel de red (por ejemplo, IPSec). Esto serviría para proteger la transmisión de los intercambios de autenticación al nivel de aplicaciones que, de otro modo, tendría lugar como texto sin formato, así como la identificación de sesiones y los datos subsiguientes.
    Se recomienda el uso de SSL (o https) para proteger los intercambios de autenticación al nivel de aplicaciones, así como las transmisiones subsiguientes de los datos y la identificación de sesiones.
  • Configuración de servicios web
    : para permitir a los administradores imponer la seguridad de nivel de protocolo en el nivel de aplicación de servicios web, se admiten los dos siguientes comandos de configuración de seguridad.
    require_secure_logon
    Esta función de seguridad requiere el uso de SSL (o https) para invocar los métodos Login() y LoginService(). Constituye un método útil para proteger el nombre de usuario y la contraseña a la vez que se evita la sobrecarga de SSL en el resto de los servicios Web.
    Si utiliza el comando require_secure_logon, la aplicación de Servicios web solamente confirmará el uso de seguridad de nivel de protocolo de comunicaciones para los métodos Login() y LoginService(). A menos que se tomen otras precauciones, los demás métodos de Servicios web podrían invocarse de forma insegura e incrementar así la vulnerabilidad a amenazas de seguridad.
    require_secure_connection
    Esta función de seguridad requiere el uso de SSL para acceder a cualquier parte del servicio Web. Si https se necesita pero no se utiliza, se devolverá un error de SOAP con el código UDS_SECURE_CHANNEL_REQUIRED.
    Para obtener más información sobre la configuración de SSL, consulte la documentación del contenedor de Servlet J2EE.
Uso de Servicios Web
La información de esta sección le proporciona las nociones básicas necesarias para utilizar los servicios web de CA SDM. Hay algunos códigos de ejemplo que los utilizan servicios web en el siguiente directorio de instalación de CA SDM:
<NX_ROOT>/samples/sdk/websvc/java
El código de ejemplo está escrito en Java con Apache Axis para mensajes SOAP.
Inicios de sesión
Antes de poder utilizar cualquier método de Servicios Web, se debe obtener un SID (ID de sesión) a partir de uno de estos métodos: login(), loginService() y loginServiceManaged(). Los dos primeros métodos necesitan un nombre de usuario y una contraseña que se validen exactamente igual que la interfaz web de CA SDM; el tipo de acceso del contacto especifica el método de validación. El tercer método necesita un par clave pública/clave privada, donde la solicitud de inicio de sesión cifrada con la clave privada sólo se puede descifrar mediante la clave pública y viceversa.
Cómo ejecutar tareas comunes
Los servicios web proporcionan una API flexible y potente en CA SDM, pero requieren algunos conocimientos de la estructura de objeto que el producto utiliza, como se especifica a continuación:
  1. Es necesario familiarizarse con la información sobre objetos y atributos en Comandos de referencia de CA Service Desk Manager.
    En esta guía se muestran los atributos de cada objeto del sistema, algo esencial teniendo en cuenta que muchos métodos de Servicios Web necesitan nombres de atributo.
  2. Revise los métodos de Servicios Web, especialmente aquellos genéricos. Por ejemplo, si la aplicación tiene que mostrar todos los registros de actividades de una solicitud, identifique primero cómo se relacionan los registros de actividades con la solicitud.
    La sección Comandos de referencia de CA Service Desk Manager
    explica que el objeto de solicitud tiene dos listas de registros de actividades: act_log (que solo muestra registros no internos) y act_log_all (que muestra todos los registros de actividades).
  3. Identifique los métodos de servicios Web necesarios. Para que se adjunten listas a un objeto, utilice getRelatedList() o getRelatedListValues().
Identificadores predeterminados
Algunos datos predeterminados proporcionados por el producto se utilizan con frecuencia. En lugar de buscar identificadores para estos objetos, se muestran algunos de los más utilizados en las tablas siguientes.
Los identificadores no pueden modificarse, pero los símbolos legibles sí.
Tipo de contacto (nombre de objeto: ctp)
Identificador
Nota
ctp:2307
El tipo “Analista”
ctp:2310
El tipo “Cliente”
ctp:2305
El tipo “Empleado”
ctp:2308
El tipo “Grupo”
Impacto (nombre de objeto: imp)
Identificador
Nota
imp:1605
Impacto "Ninguno"
imp:1600
Impacto bajo "5"
imp:1601
Impacto medio-bajo "4"
imp:1602
Impacto medio "3"
imp 1603
Impacto medio-alto "2"
imp:1604
Impacto alto "1"
Prioridad (nombre de objeto: pri)
Identificador
Nota
pri:505
Prioridad sin asignar "Ninguna"
pri:500
Prioridad baja "5"
pri:501
Prioridad media-baja "4"
pri:502
Prioridad media "3"
pri:503
Prioridad media-alta "2"
pri:504
Prioridad alta "1"
Severidad (nombre de objeto: sev)
Identificador
Nota
sev:800
Severidad baja "1"
sev:801
Severidad media-baja "2"
sev:802
Severidad media "3"
sev:803
Severidad media-alta "4"
sev:804
Severidad alta "5"
Tipo de solicitud de llamada (nombre de objeto: crt)
Identificador
Nota
crt:180
Solicitud
crt:181
Problema
crt:182
Incidente
Consulta de solicitudes, incidencias u órdenes de cambio asignadas a un contacto
Una de las operaciones más comunes es recuperar las solicitudes activas asignadas a un analista (asignatario). Puede utilizar uno de los distintos métodos, como doQuery() (para obtener una referencia de lista) o doSelect() (para obtener los valores inmediatamente). Suponiendo que ya se conoce el identificador del asignatario, se debe utilizar la siguiente cláusula Where:
assignee.id = U'<assigneeID>' AND active = 1
En esta cláusula where, <assigneeID> es la parte del id de un valor o de un identificador de contacto, como “555A043EDDB36D4F97524F2496B35E75”.
Esta cláusula Where funciona para solicitudes, órdenes de cambio e incidencias porque todas tienen los atributos "assignee" (asignatario) y "active" (activo), y significan lo mismo para los tres tipos de objeto. La parte "active = 1" de la cláusula Where limita la búsqueda a solicitudes activas.
Indicador de activo
La mayoría de objetos de CA SDM tienen un campo llamado "active" o "delete_flag". Se trata, en realidad, de un puntero SREL de los objetos Active_Boolean_Table o Boolean_Table. Considere agregar estos campos a las consultas para filtrar los objetos marcados como Inactive (Inactivo) por el administrador del sistema. Para las consultas, busque "delete_flag = 0" para localizar registros activos y "delete_flag = 1" para localizar registros inactivos. Por ejemplo, el siguiente pseudocódigo demuestra el uso de doSelect() para recuperar valores para todos los objetos Estado de solicitud activos:
doSelect(SID, "crs", "delete_flag = 0", -1, new String[0]);
Para definir un objeto como activo o inactivo, tiene que introducir el identificador del objeto booleano que represente el valor true (verdadero) o false (falso). Estos identificadores no cambian, por lo que puede codificarlos con seguridad. Son los siguientes:
Active_Boolean_Table
Boolean_Table
actbool:4551 = "Active"
bool:200 = "False"
actbool:4552 = "Inactive"
bool:201 = "True"
Recuperación de longitudes de lista relacionada
Al solicitar valores de atributo de un objeto, como con getObjectValues(), puede obtener la longitud de una lista relacionada solicitando el siguiente atributo:
"<listName>.length"
Por ejemplo, para obtener el número de registros de actividad de una determinada solicitud, introduzca lo siguiente para getObjectValues():
"act_log_all.length"
Esta es la única forma en que se pueden utilizar nombres de lista en estos tipos de métodos.