El Nodo de Interoperabilidad entregado por Gobierno Digital posee un mecanismo de autenticación y autorización propio que permite que los órganos de la administración del Estado (OAE) no requieran establecer capas de seguridad adicionales. Sin embargo los OAEs son libres de colocar dichos mecanismos adicionales para proteger sus APIs.
Como el propósito del Nodo de Interoperabilidad es simplificar el uso de dichos servicios, el Nodo tiene la posibilidad de realizar él mismo la autenticación extra sin tener que desarrollar nada extra.
A continuación se detalla cómo y cuándo utilizar estas autenticaciones extras de seguridad.
La autenticación extra se puede utilizar solo cuando el servicio del organismo proveedor exige un token adicional el que entrega en un servicio al cual debe identificarse con un id y una llave secreta.
Si se encuentra en ese caso, podrá descargar un script de autenticación para que el Nodo lo utilice y la tarea del organismo consumidor sea más sencilla.
Si en cambio no se requiere un token extra, entonces no se requiere nada adicional y basta con la autenticación y autorización que ya proveen los Nodos.
La API del Notificador exige credenciales adicionales en cada petición. Dichas credenciales se obtienen en el proceso de enrolamiento de su organismo con Notificador.
Se debe descargar el script de autenticación de Notificador desde la siguiente ruta: https://portal.pisee.cl/pisee.gob.cl/recursos/auth.notificador.script
Y colocarla en la carpeta /conversiones de su Nodo consumidor.
En el archivo config.json del Nodo se debe crear la sección “custom” y dentro de ella agregar la sección específica del Notificador que indica el nombre NotificadorToken que se usará más adelante:
"identificacion": {
.
.
.
"custom": [
l {
"nombre": "NotificadorToken",
"script": "auth.notificador.script",
"servicio": "GetAccessToken",
"id": "aqui_va_el_cliente_id",
"secret": "aqui_va_el_client_secret"
}
]
Esta sección se agrega en: identificacion
Luego en la sección donde aparecen los servicios que se consumen, se debe indicar que se usará dicha autenticación específica colocando el nombre NotificadorToken que se creó en sección custom.
"consumidor": [
{
"nombre": "SendMessage",
"rutaLocal": "/notificador/sendMessage",
"autenticacion": "NotificadorToken"
},
{
"nombre": "GetAccessToken",
"rutaLocal": "/notificador/getAccessToken"
},
{
"nombre": "MessageStatus",
"rutaLocal": "/notificador/messageStatus/{message-data-id:.*}",
"autenticacion": "NotificadorToken"
},
{
"nombre": "CitizenPending",
"rutaLocal": "/notificador/citizenPending/{run:.*}",
"autenticacion": "NotificadorToken"
},
{
"nombre": "GetProcedure",
"rutaLocal": "/notificador/getProcedure",
"autenticacion": "NotificadorToken"
},
{
"nombre": "GetSignature",
"rutaLocal": "/notificador/getSignature",
"autenticacion": "NotificadorToken"
},
Como se puede apreciar casi todos los servicios del codificador deben utilizar la autenticación excepto GetAccessToken ya que este servicio es el que usará el Nodo para obtener los token específicos del Notificador de forma automática.
Con esos cambios se reinicia el Nodo y ya se pueden hacer consultas al Notificador.