--- 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 ![](https://i.imgur.com/Wub4la7.jpg) ### 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" } } } } } ``` :::