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:

xposer swagger-ui auth button

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

apikey request clear

api key request obfuscated

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

try it out apikey

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 execute button y revisar que la ejecución se haya realizado correctamente.

response apikey creation 200

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}:

get apikey by id

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

execution get apikey by id

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

apikey get confirmation

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:

xposer swagger-ui auth button

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

apikey request clear

api key request obfuscated

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

try it out api route

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 execute button y revisar que la ejecución se haya realizado correctamente.

response route creation 200 -2

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}:

get route by id

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

execution get route by id

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

execution get route by id

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:

xposer swagger-ui auth button

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

apikey request clear

api key request obfuscated

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

try it out api rule

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 execute button y revisar que la ejecución se haya realizado correctamente.

response rule creation 200

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}:

get rule by id section

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

execution get rule by id

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

rule by id confirmation

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

route label tag lab002

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

try it out testing service

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:

get request to endpoint

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

response from testing endpoint

Con lo que podemos confirmar el funcionamiento de nuestra ruta.