Saltar al contenido principal

Seguridad

Por defecto Searchpe no incluye ningún tipo de seguridad; es decir, puedes consumir sus servicios REST sin autenticación ni autorización.

fetch('http://localhost:8180/api/contribuyentes/{numeroDocumento}', {
method: "GET"
})
.then(response => console.log(response));
.catch(error => console.log(error));

Basic Auth

info

Esta capa de seguridad está basada en Quarkus - Security built in Authentication

Searchpe puede activar authenticación y autorización a travéz del paso de una variable de entorno:

Variable de entornovalor
QUARKUS_PROFILEprod,basic
  • Si usas Windows utiliza Environment variables on Windows
  • Si usas Linux utiliza los archivos ~/.bashrc o ~/.profile para incluir la linea QUARKUS_PROFILE=prod,basic
  • Si utilizas Contenedores, añade la variable de entorno QUARKUS_PROFILE=prod,basic.

Necesitas reiniciar Searchpe para que tus cambios tomen efecto. Una vez reinicado Searchpe tendrás HTTP Basic Access Authentication habilitado.

A partir de ahora todas tus peticiones HTTP deberán ser autenticadas y autorizadas por medio de la cabecera HTTP Authorization, por ejemplo:

fetch('http://localhost:8180/api/contribuyentes/{numeroDocumento}', {
method: "GET",
headers: {
"Content-type": "application/json",
"Authorization": "Basic bXlVc2VybmFtZTpteVBhc3N3b3Jk",
}
})
.then(response => console.log(response));
.catch(error => console.log(error));
tip

Authorization: Basic <credentials>: <credentials> contiene el usuario y contraseña separados por : y cifrado en Base 64. Por ejemplo, si el usuario es myUsername y la contraseña es myPassword entonces:

  1. Unir el usuario y contraseña separados por :. Tomando nuestro ejemplo myUsername:myPassword
  2. Cifrar myUsername:myPassword en Base64. Tomando nuestro ejemplo bXlVc2VybmFtZTpteVBhc3N3b3Jk
  3. Consumir Searchpe incluyendo el HTTP Header Authorization: Basic bXlVc2VybmFtZTpteVBhc3N3b3Jk

OIDC: Keycloak

info

Esta capa de seguridad está basada en Quarkus - OIDC

Searchpe puede ser integrado con Keycloak. Para activar authenticación y autorización OIDC configura las siguientes variable de entorno:

Variable de entornovalor
QUARKUS_PROFILEprod,oidc
QUARKUS_OIDC_AUTH_SERVER_URLURL del servidor, por ejemplo: http://localhost:8080/auth/realms/openubl
QUARKUS_OIDC_CLIENT_IDID del cliente Keycloak, por ejemplo searchpe
QUARKUS_OIDC_CREDENTIALS_SECRETSecret del cliente Keycloak, por ejemplo secret

A partir de ahora todas tus peticiones HTTP deberán ser autenticadas y autorizadas por un Token en la cabecera HTTP Authorization: Bearer token, por ejemplo:

fetch('http://localhost:8180/api/contribuyentes/{numeroDocumento}', {
method: "GET",
headers: {
"Content-type": "application/json",
"Authorization": "Bearer my_token",
}
})
.then(response => console.log(response));
.catch(error => console.log(error));