Appearance
Servicio autorización - Integración
Introducción
En este documento se explica cómo integrar el sistema de autorización de Nautilus.
Integración
Una vez configurados los roles de los usuarios/grupos en una aplicación, el servicio authorization se podrá utilizar a través del API de Nautilus
El servicio de autorización como todos los servicios de Nautilus es multitenant, por tanto necesita recibir un id de aplicación, a parte de la cuenta de usuario y funcionalidad que se quieren contrastar [accountId, applicationId, functionalityTag] y devuelve true o false dependiendo de si la cuenta indicada tiene acceso a esa funcionalidad en esa aplicación o no.
Ejemplos de código usando authorization
javascript
const checkUrl = `${config.AUTHORIZATION_URL}/check?accountId=${req.payload.sub}&productInstanceId=${req.headers.instanceid}&functionalityId=ALL`;
utils
.apiFetch(checkUrl, req.instanceToken, req.traceId)
.then(responseOK(res, utils.wrongInstanceError))
.then((data) => {
if (data.data.self.isAllowed) {
utils.logger.debug(
req.traceId,
`Instance ${req.headers.instanceid} allowed for user ${req.payload.sub}`
);
next();
} else {
next(new ResponseError(utils.wrongInstanceError));
}
})
.catch((error) => next(error));
const checkUrl = `${config.AUTHORIZATION_URL}/check?accountId=${req.payload.sub}&productInstanceId=${req.headers.instanceid}&functionalityId=ALL`;
utils
.apiFetch(checkUrl, req.instanceToken, req.traceId)
.then(responseOK(res, utils.wrongInstanceError))
.then((data) => {
if (data.data.self.isAllowed) {
utils.logger.debug(
req.traceId,
`Instance ${req.headers.instanceid} allowed for user ${req.payload.sub}`
);
next();
} else {
next(new ResponseError(utils.wrongInstanceError));
}
})
.catch((error) => next(error));