Integración REST de ServiceNow: Configurar ServiceNow

A continuación se describe cómo configurar ServiceNow para realizar una llamada REST contra EJBCA que recopilará metadatos para cada certificado y creará un informe de consulta de base de datos genérico que contiene todos los metadatos del certificado ( nombre de usuario, estado de revocación, fecha de vencimiento, DN del sujeto y DN del emisor ).

Configurar la autenticación mutua

A continuación se enumeran los pasos necesarios para configurar la autenticación mutua para establecer confianza.

Para configurar la autenticación mutua:

  1. Inicie sesión en la consola de administración de Service Now.

  2. En la barra de filtro, escriba Certificados.

  3. Seleccione Certificados en Definiciones del sistema.

A continuación, realice los pasos de las siguientes secciones para configurar almacenes de confianza.

Almacén de confianza de autenticación PKCS12

Para configurar el almacén de confianza de autenticación PKCS12:

  1. En la página Definición del sistema > Certificados , seleccione Nuevo.

  2. Complete los siguientes campos:

    • Nombre: Ingrese EJBCA-RA.

    • Tipo: Seleccione Almacén de claves PKCS12 en el menú desplegable.

    • Contraseña del almacén de claves: Ingrese la contraseña PKCS12.

    • Activo: Seleccionado.

    • Breve descripción: Autoridad de Registro EJBCA.

    • Seleccione el ícono Adjunto debajo de la barra de búsqueda, seleccione Elegir archivo y seleccione el archivo P12 .

  3. Haga clic en Actualizar.

Almacén de confianza de la autoridad de certificación (CA emisora de RA EJBCA)

Para configurar el almacén de confianza de la autoridad de certificación (CA emisora de RA EJBCA):

  1. En la página Definición del sistema > Certificados , seleccione Nuevo .

  2. Complete los siguientes campos:

    • Nombre: Ingrese EJBCA-RA-IssuingCA.

    • Formato: PEM.

    • Tipo: Almacén de certificados de confianza.

    • Activo: Seleccionado.

    • Copie y pegue el certificado base64 de la CA que emitió el certificado RA en el campo Certificado PEM .

  3. Haga clic en Actualizar.

Almacén de confianza de la autoridad de certificación (CA emisora de certificados TLS EJBCA)

Estos pasos solo son necesarios si es diferente de la CA emisora de RA.

Para configurar el almacén de confianza de la autoridad de certificación (CA emisora de certificados TLS EJBCA):

  1. En la página Definición del sistema > Certificados , seleccione Nuevo.

  2. Complete los siguientes campos:

    • Nombre: Ingrese EJBCA-TLS-IssuingCA.

    • Formato: PEM.

    • Tipo: Almacén de certificados de confianza.

    • Activo: Seleccionado.

    • Copie y pegue el certificado base64 de la CA que emitió el certificado TLS en el campo Certificado PEM .

  3. Haga clic en Actualizar.

Configurar el mensaje de estado REST

Para configurar y probar el mensaje de estado REST:

  1. En la barra de filtro, escriba Mensaje REST.

  2. Seleccione Mensaje REST en Servicios web del sistema.

  3. Haga clic en Nuevo.

  4. Complete los siguientes campos:

    1. Nombre: EJBCA

    2. Punto final: https://ejbcafqdn/ejbca/ejbca-rest-api

    3. Usar autenticación mutua: Seleccionado

  5. Junto al perfil de autenticación mutua , haga clic en el ícono Buscar .

  6. Haga clic en Nuevo junto a Métodos HTTP.

  7. Introduzca ejbcatls en el campo Protocolo .

  8. Seleccione el campo Almacén de claves y seleccione EJBCA-RA.

  9. Haga clic en Enviar.

  10. Seleccione EJBCA de la lista de mensajes REST .

  11. Haga clic en Nuevo.

  12. Complete los siguientes campos:

  13. Haga clic en Enviar.

  14. Seleccione el mensaje REST de verificación de estado .

  15. Prueba de clic:

    • La pantalla se cargará con la respuesta que comienza con {"status":"OK","version":"1.0","revision"}.

    • Si no se devuelve un estado "OK" , repita los pasos anteriores hasta que se devuelva un estado "OK" .

El estado "OK" indica que la autenticación mutua, las reglas de acceso de la Autoridad de Registro y las configuraciones iniciales del protocolo REST son correctas.

No continúe con los procedimientos restantes hasta que se devuelva el estado OK anterior del mensaje de prueba REST.

Crear tabla de consulta de certificados

Las siguientes secciones proporcionan los pasos necesarios para ejecutar trabajos programados que generan informes sobre certificados que vencen mediante la llamada de descanso de búsqueda de certificados :

  1. Crear llamada REST de búsqueda de certificado

  2. Crear tabla de consulta

  3. Crear tabla de ensayo

  4. Crear mapeo de transformación

  5. Crear script incluye

  6. Crear calendario diario

  7. Crear trabajo programado

  8. Generar un informe genérico a partir de la consulta de base de datos

Crear llamada REST de búsqueda de certificado

Para crear una llamada REST de búsqueda de certificado:

  1. En la barra de filtro, escriba Mensaje REST.

  2. Seleccione Mensaje REST en Servicios web del sistema.

  3. Haga clic en Nuevo.

  4. Complete los siguientes campos:

    1. Nombre: EJBCA

    2. Punto final: https://ejbcafqdn/ejbca/ejbca-rest-api/v2

    3. Usar autenticación mutua: Seleccionado

  5. Junto al perfil de autenticación mutua , haga clic en el ícono Buscar .

  6. Haga clic en Nuevo junto a Métodos HTTP.

  7. Introduzca ejbcatls en el campo Protocolo .

  8. Seleccione el campo Almacén de claves y seleccione EJBCA-RA.

  9. Haga clic en Enviar.

  10. Seleccione EJBCA de la lista de mensajes REST .

  11. Haga clic en Nuevo en la lista de Métodos HTTP .

  12. Complete los siguientes campos:

  13. Haga clic en Enviar.

  14. Seleccione la búsqueda de certificados V2 Método HTTP.

  15. En la sección Sustitución de variables en la parte inferior, haga clic en Nuevo.

  16. Haga clic en la pestaña Solicitud HTTP .

  17. En Encabezados HTTP, haga doble clic en " Insertar una nueva fila...", escriba Aceptar en el cuadro de texto y haga clic en la marca de verificación verde.

  18. Haga doble clic en la columna Valor de la misma fila, ingrese application/json en el cuadro de texto y haga clic en la marca de verificación verde.

  19. En la siguiente fila ingrese Content-Type y application/json.

  20. Haga clic en Actualizar.

  21. Seleccione el método HTTP de búsqueda de certificado V2 .

  22. En Parámetros de consulta HTTP, ingrese el texto en el cuadro a continuación en el cuadro Contenido y haga clic en Probar.

  23. El estado HTTP debe ser 200 y el cuadro de Respuesta debe tener un cuerpo de éxito de la llamada REST.

  24. Haga clic en Eliminar.

Esta llamada REST devolverá los 10 000 certificados más recientes con estado ACTIVO . Aumente el tamaño de página para capturar más certificados.

Búsqueda de certificados
{
"pagination" : {
"page_size" : 10000 ,
"current_page" : 1
},
"sort" : {
"property" : "UPDATE_TIME" ,
"operation" : "ASC"
},
"criteria" : [
{
"property" : "CERT_STATUS" ,
"value" : "ACTIVE" ,
"operation" : "EQUAL"
}
]
}

Crear tabla de consulta

Para crear una tabla de consulta de certificado EJBCA:

  1. En la barra de filtro, escriba tablas y seleccione Tablas en Definición del sistema.

  2. Haga clic en Nuevo.

  3. Introduzca la tabla de consulta de certificado EJBCA en el campo Etiqueta .

  4. Copia el nombre generado a partir de la etiqueta y pégalo en un editor de texto. Lo necesitarás más adelante.

  5. Haga clic en Enviar.

  6. Cambie el campo de búsqueda a Etiqueta e ingrese Tabla de consulta de certificado EJBCA en el cuadro de texto.

  7. Haga clic en Tabla de consulta de certificados EJBCA.

  8. Haga clic en Nuevo en la sección Columnas .

  9. Ingrese una cadena en el campo Tipo y seleccione Cadena (UTF-8 completo).

  10. Introduzca la fecha de revocación como etiqueta de columna.

  11. Haga clic en Enviar.

  12. Repita los pasos anteriores para las columnas restantes utilizando la lista a continuación y haga clic en Actualizar cuando termine:

    • Motivo de revocación

    • Fecha de expiración

    • DN del emisor

    • Número de serie

    • Estado

    • Nombre(s) alternativo(s) del sujeto

    • Identificador de clave de sujeto

    • Tipo

    • Última actualización

    • Usuario

  13. Haga clic en Actualizar.

Crear tabla de ensayo

La llamada REST de búsqueda de certificado debe analizar los datos JSON devueltos desde el cuerpo de la respuesta y colocarlos en una tabla de ensayo para su posterior transformación. La transformación se realizará y los datos se colocarán en la tabla utilizada para los informes.

  1. Cree un archivo CSV con los encabezados a continuación en la Fila 1 y guárdelo como data_set_table. Los encabezados distinguen entre mayúsculas y minúsculas y deben coincidir con el contenido del cuerpo de la respuesta para que se carguen.

    • Fecha de revocación

    • Motivo de revocación

    • fecha de vencimiento

    • DN del emisor

    • número de serie

    • estado

    • subjectAltName

    • subjectDN

    • ID de clave del sujeto

    • tipo

    • hora de actualización

    • nombre de usuario

  2. En la barra de filtro, escriba cargar datos y selecciónelo

  3. Introduzca la consulta del certificado EJBCA en el campo Etiqueta

  4. Copia el nombre generado a partir de la etiqueta y pégalo en un editor de texto. Esto será necesario más adelante.

  5. Seleccione Elegir archivo y seleccione data_set_table.

  6. Haga clic en Enviar.

  7. Una página de Progreso mostrará un estado de Completado.

  8. Haga clic en el hipervínculo Crear un mapa de transformación .

Crear mapeo de transformación

Para crear una asignación de transformación de consulta EJBCA:

  1. En la barra de filtro, escriba transformar mapas y selecciónelo.

  2. Haga clic en Nuevo.

  3. Ingrese al mapeo de transformación de consultas EJBCA.

  4. Haga clic en el menú desplegable Tabla de origen , ingrese ejbca y seleccione la tabla de almacenamiento temporal en el menú desplegable.

  5. Haga clic en Tabla de destino.

  6. Haga clic en Enviar.

  7. Cambie el campo de búsqueda a Etiqueta e ingrese EJBCA Query Transform Mapping en el cuadro de texto.

  8. Haga clic en Asignación de transformación de consultas EJBCA.

  9. Haga clic en el enlace Asistencia de mapeo en Enlaces relacionados.

  10. En la columna izquierda, seleccione todos los encabezados del archivo data_set_table y haga clic en Agregar.

  11. En la columna de la derecha, haga clic en cada elemento, haga clic en Agregar y mueva el elemento hacia arriba o hacia abajo hasta que esté en línea con el encabezado data_set_table .

  12. Haga clic en Guardar.

  13. En los mapas de campo, cambie el valor de Coalesce para serial_number a verdadero.

  14. Haga clic en Actualizar y luego en Aceptar en la solicitud para indexar la tabla debido a la función Coalesce .

Crear script incluye

Realice los pasos de las secciones siguientes para crear scripts:

Crear getJSONObjectsViaRest

  1. En la barra de filtro, escriba transformar mapas y selecciónelo.

  2. Haga clic en Nuevo.

  3. Ingrese getJSONObjectsViaRest en el campo Nombre .

  4. Cambiar Accesible de a Todos los ámbitos de aplicación.

  5. Pegue el bloque de código a continuación en el cuadro Script y haga clic en Enviar.

obtenerObjetosJSONVíaRest
function getJSONObjectsViaRest(endpoint, objects, api, request) {
var pagedR = new sn_ws.RESTMessageV2(api, request);
if (endpoint !== null ) {
pagedR.setEndpoint(endpoint);
}
var pagedResponse = pagedR.execute();
var pagedResponseBody = pagedResponse.getBody();
var pagedhttpStatus = pagedResponse.getStatusCode();
var pagedObj = JSON.parse(pagedResponseBody);
objects = objects.concat(pagedObj.certificates);
return objects;
}

Crear insertGlideRecord

  1. Haga clic en Nuevo.

  2. Introduzca insertglideRecord en el campo Nombre .

  3. Cambiar Accesible de a Todos los ámbitos de aplicación.

  4. Pegue el bloque de código a continuación en el cuadro Script y haga clic en Enviar.

insertarGlideRecord
function insertGlideRecord(GlideReference, field, value) {
if (GlideReference.isValidField(field)) {
GlideReference.setValue(field, value);
}
}

Crear loadRestInTable

  1. Haga clic en Nuevo.

  2. Introduzca loadRestInTable en el campo Nombre .

  3. Cambiar Accesible de a Todos los ámbitos de aplicación.

  4. Pegue el bloque de código a continuación en el cuadro Script y haga clic en Enviar.

cargarRestoEnTabla
function loadRestInTable(rest_message, http_method, target_table) {
try {
var objects = getJSONObjectsViaRest( null , [], rest_message, http_method);
for ( var i=0; i<objects.length; i++ ) {
parseJSONObject(objects[i], target_table);
}
} catch (ex) {
var message = ex.message;
gs.info( 'JSON IMPORT ERROR: ' + message);
}
}

Crear parseJSONObject

  1. Haga clic en Nuevo.

  2. Ingrese parseJSONObject en el campo Nombre .

  3. Cambiar Accesible de a Todos los ámbitos de aplicación.

  4. Pegue el bloque de código a continuación en el cuadro Script y haga clic en Enviar .

analizar objetoJSON
function parseJSONObject(object, target_table) {
var JSONImport = new GlideRecord(target_table);
JSONImport.initialize();
for ( var key in object) {
if (object.hasOwnProperty(key)) {
var field = key.toLowerCase();
var actualField = "" ;
var value = "" ;
if ( typeof (object[key]) === "object" ) {
if (!Array.isArray(object[key])) {
for ( var inner_key in object[key]) {
actualField = ( 'u_' + field + "_" + inner_key).toLowerCase();
value = object[key][inner_key];
insertGlideRecord(JSONImport, actualField, value);
}
}
} else {
value = object[key].toString();
actualField = 'u_' + field;
}
insertGlideRecord(JSONImport, actualField, value);
}
}
JSONImport.insert();
}

Crear calendario diario

Para crear un calendario diario:

  1. En la barra de filtro, escriba calendario y selecciónelo.

  2. Haga clic en Nuevo.

  3. Introduzca “Todos los días” en el campo Nombre .

  4. Haga clic en Nuevo en la lista Días .

  5. Seleccione lunes en el menú desplegable Día de la semana y haga clic en Enviar.

  6. Repita el paso 5 durante los 6 días restantes.

Crear trabajo programado

Para crear un trabajo programado:

  1. En la barra de filtro, escriba trabajos programados y seleccione Trabajos programados en Definición del sistema.

  2. Haga clic en Nuevo.

  3. Seleccione Ejecutar automáticamente un script de su elección.

  4. Ingrese EJBCA - Consulta de certificado diaria en el campo Nombre .

  5. Seleccione Diariamente en la lista desplegable Ejecutar .

  6. Introduzca 02 00 00 en el campo Hora .

  7. Ingrese lo siguiente en el cuadro Ejecutar y haga clic en Enviar.

    • Actualice el nombre de la consulta para que coincida con el nombre en ServiceNow:

cargarRestoEnTabla
loadRestInTable( 'EJBCA' , 'Certificate Search V2' , 'x_138548_demo_ejbca_certificate_query' );

1.ª var = Mensaje REST, 2.ª var = Método HTTP configurado en el Mensaje REST, 3.ª var = Tabla de ensayo.

Asegúrese de modificar estos valores si se utilizan nombres diferentes para las tres variables que se llaman.

Generar un informe genérico a partir de la consulta de base de datos

Para generar un informe genérico a partir de la consulta de la base de datos:

  1. En la barra de filtro, escriba informes y seleccione Crear nuevo en Informes.

  2. Ingrese EJBCA: consulta de base de datos genérica.

  3. Haga clic en el menú desplegable Tabla e ingrese el nombre de la tabla generada cuando se creó la tabla de consulta de certificado EJBCA en el pasoCrear tabla de consulta .

  4. Haga clic en Siguiente.

  5. Seleccione Lista en Otro.

  6. Haga clic en Siguiente.

  7. Haga clic en Elegir columnas y seleccione los campos deseados.

  8. Haga clic en Guardar en la parte superior derecha.

Consulta de prueba e informe

Como paso final, ahora puedes probar la consulta y el informe.

Es necesario generar un certificado en EJBCA antes de completar el procedimiento de prueba.

Para probar la consulta y ver el informe creado que contiene todos los metadatos del certificado:

  1. Regrese a EJBCA - Consulta de certificado diario en Definición del sistema > Trabajos programados .

  2. Haga clic en Ejecutar ahora .

  3. Regrese a la consulta de base de datos genérica EJBCA y vea los datos de respuesta.