---
title: 'Conector SGU'
---
Conector SGU (Sistema de Gestión de Usuarios)
===
* **Coordinador Tecnológico**: Rafael Palau
* **Consultores**:
* Ilse Grau
* Julio Mello
* Marco Aquino
* Marcos Benítez
* Lauro Segovia
## Contenido
[TOC]
## Introducción
Dada la necesidad de acceder a los recursos del sistema, hemos creado la siguiente guía, donde se describen conceptos, estructuras básicas y las definiciones de API's principales necesarias para la conección con dicho sistema para la gestión de usuarios.
## Objetivo
* Introducir al equipo técnico en los conceptos básicos de la arquitectura del sistema de gestión de usuarios.
* Definir los endpoint principales de la API del sistema de gestión de usuarios.
## Arquitectura
Los distintos módulos del esquema de la arquitectura están envueltos en 3 áreas (Departamentos) principales: Atención a Usuarios ([DAU](#DAU)), [SEGURIDAD](#SEGURIDAD), Seguridad Informática ([DSI](#DSI)).
* Esquema de la arquitectura

### DAU
---
Encargada de la gestión de usuarios, perfiles e instituciones.
* **Usuarios**
> Seguridad → General → Usuarios
Define los registros de usuarios enrolados que podrán acceder al sistema y cuyas acciones estarán restringidas por el perfil asociado al mismo.
* **Instituciones**
> Seguridad → General → Instituciones
Son las diferentes instituciones registradas y que pueden hacer uso del sistema (Ej. Ministerio de Hacienda).
* **Perfiles**
> Seguridad → General → Perfiles
Son conjunto de permisos que habilitan el acceso y la realización de operaciones sobre los artefactos definidos dentro del sistema (Ej. Administrador General de Presupuesto).
* **UPI (Usuarios Perfil Institución)**
Asignación efectiva de perfiles a un usuario relacionada a una institución dada.
> → [Asignación de Usuarios Perfil Institución](#UPI)
### SEGURIDAD
---
Encargada de la asignación de permisos para acceso a funcionalidades y/o artefactos del sistema.
* **Permisos**
> Seguridad → General → Permisos
Es un agrupador de acciones (privilegios) relacionados que permiten acceder a los recursos proporcionados por los artefactos del sistema.
Las acciones se componen de la relación entre los artefactos y los métodos.
### DSI
---
Encargada de la asignación de acciones y métodos sobre los artefactos relacionados.
* **Artefactos**
> Seguridad → General → Artefactos
Define las funcionalidades que componen el sistema, agrupados por módulos. Ej.: Siare, Presupuesto, Catálogo, Bienes, etc.
* **Métodos**
> Seguridad → General → Metodos
Define las operaciones permitidas que se pueden asociar a un artefacto seleccionado. Ej.: Listar, Consultar, Agregar, Eliminar, Impresión.
* **Acciones (Operaciones)**
> Seguridad → General → Metodo
Define los tipos de operaciones (de tipo REST) que se pueden ejecutar sobre el objeto seleccionado, relacionados al método (). Ej.: GET, POST, PUT, DELETE.
## UPI
> Seguridad → General → Usuarios
La asociación de perfiles a usuarios permite asignar permisos y/o restricciones de accesos a las diferentes funcionalidades y recursos del sistema.
---
## Definición de APIs de usuarios
Archivo para prueba de la API (con Postman): [Conector SGU](https://drive.google.com/file/d/1w-LSIex9OCVela3tCt8vGlKL5VUSfP5f/view?usp=sharing)
### usuarios
:::info
#### GET
:::spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/usuarios
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json=
parameters: [
{ name: "filtros",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosPagina",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 0
}
},
{
name: "filtrosCantidad",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 15
}
},
{
name: "filtrosOrdenarPor",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosDireccion",
in: "query",
required: false,
schema: {
type: "string"
}
}
],
```
Response
```json=
{
"respuesta": [
{
"descripcion": "GILDA LORENA ARIAS GIMENEZ",
"fechaModificacion": "2022-06-15 16:17:17",
"activo": true,
"borrado": false,
"id": 2,
"personas": {
"correlationId": "5d056da2-0302-427d-bf41-2f51c1c86671,c0f1a29a59ca09e8,c0f1a29a59ca09e8",
"descripcion": "P-DGP-MH",
"usuarioModificacion": "guillermo_pereira",
"fechaModificacion": "2022-03-28 13:46:11",
"activo": true,
"borrado": false,
"id": 1980,
"nombre": "GILDA LORENA ",
"apellido": "ARIAS GIMENEZ",
"documentoNumero": "2835155",
"mail": "GILDA_ARIAS@HACIENDA.GOV.PY"
},
"usuario": "PGILARI",
"password": "6f67fd63dd76fa88393c7c2b35416a5778f7ea1b9165bc20b7d09be65adb8af",
"mail": "correo@mail.com"
},
{
"descripcion": "HUGO VICENTE VAZQUEZ ARZAMENDIA ",
"fechaModificacion": "2022-05-09 13:10:06",
"activo": true,
"borrado": false,
"id": 4,
"personas": {
"descripcion": "P-DGP-MH",
"activo": true,
"borrado": false,
"id": 2370,
"nombre": "HUGO VICENTE VAZQUEZ ARZAMENDIA"
},
"usuario": "PHUGVAZ",
"password": "6baad6f126fa53233f5120dd32225d4a9eeaea26dce58789f0b3b6efcdb0dadb"
},
],
"resultado": true,
"totalRegistro": 493,
"mensajes": [],
"pagina": 0,
"cantidadPagina": 99
}
```
:::
:::success
#### POST
:::spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/usuarios
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Body
```json=
{
"usuario":"maquino",
"mail":"maquino@hacienda.gov.py",
"password":"12345",
"personas":{
"correlationId":"a6509494-0e30-483f-9a55-89092fd5a3fb,c86546988173bdfa,c86546988173bdfa",
"usuarioCreacion":"guillermo_pereira",
"fechaModificacion":"2022-03-29 22:10:51",
"activo":true,
"borrado":false,
"id":297,
"nombre":"MARCO",
"apellido":"AQUINO",
"documentoNumero":"3215782"
},
"activo":true
}
```
Response
```json=
{"respuesta":
{
"fechaModificacion":"2022-06-28 16:52:23",
"activo":true,
"borrado":false,
"id":681,
"personas":
{"correlationId":"a6509494-0e30-483f-9a55-89092fd5a3fb,c86546988173bdfa,c86546988173bdfa",
"usuarioCreacion":"guillermo_pereira",
"fechaModificacion":"2022-03-29 22:10:51",
"activo":true,
"borrado":false,
"id":297,
"nombre":"MARCO",
"apellido":"AQUINO",
"documentoNumero":"3215782"
},
"usuario":"mbenitez",
"mail":"maquino@hacienda.gov.py"
},
"resultado":true,
"totalRegistro":0,
"mensajes":[],
"pagina":0,
"cantidadPagina":0
}
```
:::
::: warning
#### PUT
::: spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/usuarios
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json
parameters: [
{
name: "username",
in: "query",
required: true,
schema: {
type: "string"
}
}
],
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/UsuariosDto"
}
}
},
required: true
},
```
Response
```json=
responses: {
200: {
description: "OK",
content: {
"*/*": {
schema: {
$ref: "#/components/schemas/UsuariosDto"
}
}
}
}
}
```
:::
---
### usuarios/perfil
::: info
#### GET
::: spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/usuarios/perfil
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json=
parameters: [
{
name: "username",
in: "query",
required: true,
schema: {
type: "string"
}
}
],
```
Response
```json=
responses: {
200: {
description: "OK",
content: {
"*/*": {
schema: {
$ref: "#/components/schemas/ResponseDtoUsuariosDto"
}
}
}
}
}
```
:::
La asignación de **Perfil** a un usuario se realiza a la par con la **Institución**. ([usuario-instituciones-perfiles](#usuario-instituciones-perfiles))
---
### perfiles
:::info
#### GET
:::spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/perfiles
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json=
parameters: [
{ name: "filtros",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosPagina",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 0
}
},
{
name: "filtrosCantidad",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 15
}
},
{
name: "filtrosOrdenarPor",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosDireccion",
in: "query",
required: false,
schema: {
type: "string"
}
}
],
```
Response
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoListPerfilesDto"
}
}
}
}
}
```
:::
:::success
#### POST
:::spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/perfiles
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/PerfilesDto"
}
}
},
required: true
},
```
Response
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoPerfilesDto"
}
}
}
}
}
```
:::
::: warning
#### PUT
::: spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/perfiles/{id}
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json
parameters: [
{
name: "id",
in: "query",
required: true,
schema: {
type: "integer"
}
}
],
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/PerfilesDto"
}
}
},
required: true
},
```
Response
```json=
responses:
{
200: {
description: "OK",
content: {
"*/*": {
schema: {
type: "object"
}
}
}
}
}
```
:::
---
### instituciones
::: info
#### GET
::: spoiler
URL: http://test-siare.hacienda.gov.py:8280/1.0.0/instituciones
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json=
parameters: [
{ name: "filtros",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosPagina",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 0
}
},
{
name: "filtrosCantidad",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 15
}
},
{
name: "filtrosOrdenarPor",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosDireccion",
in: "query",
required: false,
schema: {
type: "string"
}
}
],
```
Respuesta
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoListInstitucionesDto"
}
}
}
}
}
```
:::
:::success
POST
:::spoiler
URL: http://test-siare.hacienda.gov.py:8280/1.0.0/instituciones
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/InstitucionesDto"
}
}
},
required: true
},
```
Respuesta
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoInstitucionesDto"
}
}
}
}
}
```
:::
::: warning
#### PUT
::: spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/instituciones/{id}
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json
parameters: [
{
name: "id",
in: "query",
required: true,
schema: {
type: "integer"
}
}
],
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/InstitucionesDto"
}
}
},
required: true
},
```
Response
```json=
responses:
{
200: {
description: "OK",
content: {
"*/*": {
schema: {
type: "object"
}
}
}
}
}
```
:::
---
### usuario-instituciones-perfiles
:::info
GET
:::spoiler
URL: http://test-siare.hacienda.gov.py:8280/1.0.0/usuario-instituciones-perfiles
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json=
parameters: [
{ name: "filtros",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosPagina",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 0
}
},
{
name: "filtrosCantidad",
in: "query",
required: false,
schema: {
type: "integer",
format: "int32",
default: 15
}
},
{
name: "filtrosOrdenarPor",
in: "query",
required: false,
schema: {
type: "string"
}
},
{
name: "filtrosDireccion",
in: "query",
required: false,
schema: {
type: "string"
}
}
],
```
Respuesta
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoListUsuarioInstitucionesPerfilesDto"
}
}
}
}
}
```
:::
:::success
POST
:::spoiler
URL: http://test-siare.hacienda.gov.py:8280/1.0.0/usuario-instituciones-perfiles
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/UsuarioInstitucionesPerfilesDto"
}
}
},
required: true
},
```
Respuesta
```json=
responses: {
200: {
description: "OK",
content: {
application/json: {
schema: {
$ref: "#/components/schemas/ResponseDtoUsuarioInstitucionesPerfilesDto"
}
}
}
}
}
```
:::
::: warning
#### PUT
::: spoiler
URL:
http://test-siare.hacienda.gov.py:8280/1.0.0/usuario-instituciones-perfiles/{id}
Headers
```json
Content-Type: application/json
Authorization: Bearer (token)
Custom-Oauth-Token: Bearer (token)
Custom-Institucion-Perfil: b64(data)
```
Params
```json
parameters: [
{
name: "id",
in: "query",
required: true,
schema: {
type: "integer"
}
}
],
```
Body
```json=
requestBody: {
content: {
application/json: {
schema: {
$ref: "#/components/schemas/UsuarioInstitucionesPerfilesDto"
}
}
},
required: true
},
```
Response
```json=
responses: {
200: {
description: "OK",
content: {
"*/*": {
schema: {
$ref: "#/components/schemas/UsuarioInstitucionesPerfilesDto"
}
}
}
}
}
```
:::