Lab003 - Aseguramiento mediante Apikey
Para esta practica, utilizaremos nuevamente el Endpoint Server del laboratorio 002
En caso de no tener creado el endpoint server, seguir los pasos del bloque 1 de esta practica en el laboratorio 002.
1. Creación de Apikey
1.1 Abrir el swagger-ui incluido con el Xposer Server entrando a la siguiente dirección:
https://localhost:8443/xposer-admin/v1/docs
1.2. Presionar el botón Authorize de la interfaz del swagger-ui para introducir el API Key:

1.3. Introducir el Apikey en el dialogo y presionar Authorize una vez ofuscada la llave, presionar el botón Close:


1.4. Buscar en la sección de Xposer Admin APIKEY, el método POST, y presionar el botón
:

1.5. En la sección de body, colocar el siguiente payload:
{
"id": "apikey:alumno:001",
"name": "ACCESO ALUMNO APIKEY",
"apikey": "1e409d16b89d5ed7d7f89f011d0e924b",
"description": "Llave para probar el consumo de servicios autorizados por APIKEY.",
"keyType": "apikey",
"enabled": true
}
1.6. Presionar el botón de
y revisar que la ejecución se haya realizado correctamente.

1.7. Verificar que se ha creado el servidor correctamente, consumiendo el servicio de GET Server By ID. Buscar el método GET con la ruta /xposer-admin/v1/apikeys/{id}:

1.8. Presionar el botón
y en el campo de id, colocar el valor apikey:alumno:001

1.9. Presionar el botón de
como se muestra en la imagen y como podemos observar, se retorna el server que acabamos de crear:

2. Creación de Ruta (Route) para exposición del servicio.
2.1. Abrir el swagger-ui incluido con el Xposer Server entrando a la siguiente dirección:
https://localhost:8443/xposer-admin/v1/docs
2.2. Presionar el botón Authorize de la interfaz del swagger-ui para introducir el API Key:

2.3. Introducir el Apikey en el dialogo y presionar Authorize una vez ofuscada la llave, presionar el botón Close:


2.4. Buscar en la sección de Xposer Admin ROUTE, el método POST, y presionar el botón
:

2.5. En la sección de body, colocar el siguiente payload:
{
"url": "/secured/characters/*",
"prefix": "/secured/characters",
"name": "Caracteres segura con APIKEY",
"tags": ["lab03"],
"enabled": true,
"methods": {
"GET": {
"schema": {
"tags": ["Practica 3.1 - lab003"],
"headers": {
"type": "object",
"properties": {
"x-apikey": {
"type": "string"
}
},
"required": ["x-apikey"]
},
"summary": "Obtener los personajes de la serie pero mediante un apikey",
"consumes": ["application/json"],
"description": "Esta es una prueba de la descripción"
}
},
"PUT": {},
"HEAD": {},
"POST": {},
"PATCH": {},
"DELETE": {}
},
"metadata": {},
"description": "Practica 3.1 - Laboratorio 003 - Configuracion de Rutas con Apikeys",
"id": "ruta:rickymorty:0002"
}
2.6. Presionar el botón de
y revisar que la ejecución se haya realizado correctamente.

2.7. Verificar que se ha creado la ruta correctamente, consumiendo el servicio de GET Route By ID. Buscar el método GET con la ruta /xposer-admin/v1/routes/{id}:

2.8. Presionar el botón
y en el campo de id, colocar el valor ruta:rickymorty:0002

2.9. Presionar el botón de
como se muestra en la imagen y como podemos observar, se retorna el server que acabamos de crear:

3. Creación de Regla de consumo
3.1. Abrir el swagger-ui incluido con el Xposer Server entrando a la siguiente dirección:
https://localhost:8443/xposer-admin/v1/docs
3.2. Presionar el botón Authorize de la interfaz del swagger-ui para introducir el API Key:

3.3. Introducir el Apikey en el dialogo y presionar Authorize una vez ofuscada la llave, presionar el botón Close:


3.4. Buscar en la sección de Xposer Admin RULE, el método POST, y presionar el botón
:

3.5. En la sección de body, colocar el siguiente payload:
{
"name": "Regla para acceder a recurso Rick y Morty",
"xposer": "d135037f5d4da862303ac2e5deaf03f1",
"endpointType": "service",
"server": "server:rickymorty:001",
"description": "Regla de Servidor de coonsumo de servicios hacia el exterior",
"groups": [],
"consumers": [],
"apikeys": ["apikey:alumno:001"],
"authorizationType": "apikey",
"route": "ruta:rickymorty:0002",
"id": "rule:rickymorty:api:apikey"
}
3.6. Presionar el botón de
y revisar que la ejecución se haya realizado correctamente.

3.7. Verificar que se ha creado la ruta correctamente, consumiendo el servicio de GET Rule By ID. Buscar el método GET con la ruta /xposer-admin/v1/rules/{id}:

3.8. Presionar el botón
y en el campo de id, colocar el valor rule:rickymorty:api:apikey

3.9. Presionar el botón de
como se muestra en la imagen y como podemos observar, se retorna el server que acabamos de crear:

4. Verificación de funcionamiento de la nueva ruta.
4.1. Desde la interfaz de swagger ui del Xposer Server, podemos observar que ya aparece una nueva sección que corresponde al Tag de la ruta que creamos en esta practica

4.2. Debemos extender la sección de la API, y presionar el botón de
para poder ejecutar la prueba.

4.3. Coloquemos en el formulario el valor de 1 en el parámetro de *, ademas, tenemos que agregar el valor del apikey que creamos en el paso 1 de este laboratorio, el cual tiene el valor de 1e409d16b89d5ed7d7f89f011d0e924b tal y como se ve en la siguiente imagen:

4.4. Presionar el botón de
para ejecutar la prueba. Debemos recibir una respuesta igual a esta:

Con lo que podemos confirmar el funcionamiento de nuestra ruta.