Configuración de Seguridad para Habilitar Acceso Autenticado a los Web Services

CONFIGURACIÓN PREVIA NECESARIA

SOLO APLICA PARA CLIENTES QUE TENGA SIFCO WEB HOSPEDADO EN UN SERVIDOR PROPIO (CLIENTES On Premise)

Handlers: para poder tener acceso al API de GAM la cual permite gestionar el acceso a los servicios mediante un token de acceso, el archivo web.config debe contener en la sección de handlers el elemento:

<add name="GeneXus.Http.GXOAuthAccessToken" verb="*" path="GXOAuthAccessToken.aspx" type="GeneXus.Http.GXOAuthAccessToken,GxClasses" />

SOLO APLICA PARA CLIENTES QUE TENGA SIFCO WEB HOSPEDADO EN UN SERVIDOR PROPIO (CLIENTES On Premise)

Se debe verificar el tipo de acceso de seguridad a configurar en su servidor IIS, a nivel del protocolo HTTP, y validar que sea el mismo configurado en el archivo web.config, en la etiqueta XML security mode, la cual debe tener asignado el valor “Transport” en el caso de https:// y “None”, en el caso de http://. La cual esta presente en la estructura de configuración de WebHttpBinding y BasicHttpBinding.

<system.webServer> <bindings> <webHttpBinding> <binding name="CustomBinding" maxReceivedMessageSize="10485760"> <security mode="Transport"> <transport clientCredentialType="None" /> </security> <readerQuotas maxStringContentLength="10485760" /> </binding> </webHttpBinding> <basicHttpBinding> <binding name="CustomBinding" maxReceivedMessageSize="10485760"> <security mode="Transport"> <transport clientCredentialType="None" /> </security> <readerQuotas maxStringContentLength="10485760" /> </binding> </basicHttpBinding> </bindings> </system.serviceModel>

CREACIÓN Y ASIGNACIÓN DE ROLES Y PERMISOS A USUARIO PARA ACCESO A LOS WEB SERVICE

Para esto es recomendable crear un usuario en el GeneXus Access Manager (GAM) para permitir el acceso exclusivo a los Web Services, a través de dicho usuario, adicional es necesario que este tenga los Roles y Permisos necesarios para acceder a las transacciones que hemos decidido exponer para que sea consumidas vía Web Services por aplicaciones de terceros (Clientes, Proveedores, Contratistas, etc).

Para ello primero validamos que con una cuenta administradora en el GeneXus Access Manager (GAM),a través del GAM Web Backend (o GAM Web Backoffice) (Existen varias interfaz para ello pero se considera esta la mas practica), que el usuario existe o si debemos crear uno para el uso de los Web Services, tal como se indico en el párrafo anterior, se recomienda crear uno exclusivo para ello.

Luego se debe asignar o validar que el Rol al que se le asignaran los permiso de acceso sea el Rol principal (En caso de NO ser el principal aparecerá en la Columna Main la opción “Set Main”).

Luego se verifique, en la opción de edición de Roles del GAM Web Backend (o GAM Web Backoffice), que la aplicación en la cual se asignaran los Roles y Permisos sea nuestra instancia principal de la Aplicación SIFCO WEB.

SIFCO WEB a través de GAM, genera un conjunto de permisos automáticos de las diferentes transacciones habilitadas en nuestra Aplicación SIFCO WEB, solo debemos escoger cuales serán expuestas o consumidas a través de Web Services por este usuario y a través de cuales métodos. Los mismos están descritos bajo la siguiente nomenclatura, y donde el Prefijo depende de la Transacción (Business Component o componente de negocio), y el sufijo del método RESTful que se va a utilizar.

 

[Tansacciones]_Services_[Tipo de Permiso = {execute, insert, delete, update, FullControl}]

Luego se asignan los Tipos de Permisos de Acceso que tendrá este Rol a cada transacción.

Por ultimo se valida que este Rol, sea el Rol principal del usuario creado o asignado para el acceso a las transacciones vía sistema RESTful.

INFORMACIÓN ADICIONAL

Entre los tipos de permisos asociados a la transacciones y método a utilizar tenemos:

  • Execute
    Permite operaciones GET

  • Insert
    Permite operaciones POST

  • Delete
    Permite operaciones DELETE

  • Update
    Permite operaciones PUT

  • FullControl
    Permite realizar GET, POST, PUT y DELETE sobre el Web Service.

Adicionalmente los tipos de permisos de acceso a nivel de Rol de usuario son:

  • Allow:
    Un usuario que tiene un rol con un permiso de Tipo de acceso = Allow (Permitir) tendrá este permiso a menos que se le haya otorgado este permiso con Tipo de acceso = Deny (Denegar), o tenga otro rol donde se niegue el mismo permiso.

  • Deny:
    Un usuario que tiene un rol con un permiso de Tipo de acceso = Deny (Denegar) no tendrá este permiso independientemente de si el permiso está permitido a nivel de aplicación (por defecto) o si tiene otro rol donde el permiso está permitido. La única forma en que el usuario puede obtener este permiso es con Tipo de acceso = Allow (Permitir).

  • Restricted
    Si un permiso está restringido a la función de un usuario, él no tiene este permiso a menos que el usuario tenga este permiso con Tipo de acceso = Allow (Permitir) o tenga otra función donde se permita el mismo permiso.

VERIFICACIÓN DE SISTEMA RESTful ESTA HABILITADO

(SOLO APLICA PARA CLIENTES QUE TENGA SIFCO WEB HOSPEDADO EN UN SERVIDOR PROPIO (CLIENTES On Premise))

El Manejador GeneXus integrado a la Aplicación SIFCO WEB, tiene la capacidad de crear automáticamente servicios web RESTful a partir de transacciones que son componentes comerciales (Business Component), objetos y procedimientos del proveedor de datos de la Aplicación SIFCO. Permitiendo que los mismos sean expuestos como recursos con una dirección única (URI), logrando que el desarrollo y/o consumo de dicho servicio RESTful sea una tarea fácil.

Sin embargo en caso de que dicho sistema RESTful no este habilitado o presente problemas, se puede realizar los procedimientos descritos en el siguiente link, para verificar su operatividad o reinstalar dicho subcomponente (si fuera necesario) en en el Servidor donde tiene funcionando su Aplicación SIFCO WEB.


Búsqueda en esta Pagina

Artículos Relacionados

Artículos Actualizados Recientemente

Version Date Comment
Current Version (v. 36) Oct 06, 2019 03:19 Alfredo Lopez (Unlicensed)
v. 35 Oct 06, 2019 02:00 Alfredo Lopez (Unlicensed)
v. 34 Sept 02, 2019 21:39 Alfredo Lopez (Unlicensed)
v. 33 Sept 02, 2019 21:35 Alfredo Lopez (Unlicensed)
v. 32 Sept 02, 2019 21:29 Alfredo Lopez (Unlicensed)
v. 31 Sept 01, 2019 01:16 Alfredo Lopez (Unlicensed)
v. 30 Sept 01, 2019 01:12 Alfredo Lopez (Unlicensed)
v. 29 Sept 01, 2019 01:12 Alfredo Lopez (Unlicensed)
v. 28 Aug 31, 2019 19:21 Alfredo Lopez (Unlicensed)
v. 27 Aug 30, 2019 23:10 Alfredo Lopez (Unlicensed)
v. 26 Aug 30, 2019 23:05 Alfredo Lopez (Unlicensed)
v. 25 Aug 29, 2019 02:51 Alfredo Lopez (Unlicensed)
v. 24 Aug 29, 2019 02:49 Alfredo Lopez (Unlicensed)
v. 23 Aug 29, 2019 02:32 Alfredo Lopez (Unlicensed)
v. 22 Aug 29, 2019 02:17 Alfredo Lopez (Unlicensed)
v. 21 Aug 28, 2019 19:17 Alfredo Lopez (Unlicensed)
v. 20 Aug 28, 2019 17:07 Alfredo Lopez (Unlicensed)
v. 19 Aug 26, 2019 18:53 Alfredo Lopez (Unlicensed)
v. 18 Aug 26, 2019 18:45 Alfredo Lopez (Unlicensed)
v. 17 Aug 26, 2019 18:29 Alfredo Lopez (Unlicensed)
v. 16 Aug 26, 2019 18:22 Alfredo Lopez (Unlicensed)
v. 15 Aug 26, 2019 18:21 Alfredo Lopez (Unlicensed)
v. 14 Aug 26, 2019 02:58 Alfredo Lopez (Unlicensed)
v. 13 Aug 26, 2019 02:55 Alfredo Lopez (Unlicensed)
v. 12 Aug 26, 2019 02:53 Alfredo Lopez (Unlicensed)
v. 11 Aug 26, 2019 02:51 Alfredo Lopez (Unlicensed)
v. 10 Aug 26, 2019 01:08 Alfredo Lopez (Unlicensed)
v. 9 Aug 26, 2019 01:07 Alfredo Lopez (Unlicensed)
v. 8 Aug 26, 2019 01:05 Alfredo Lopez (Unlicensed)
v. 7 Aug 25, 2019 23:43 Alfredo Lopez (Unlicensed)
v. 6 Aug 25, 2019 23:38 Alfredo Lopez (Unlicensed)
v. 5 Aug 24, 2019 23:35 Alfredo Lopez (Unlicensed)
v. 4 Aug 24, 2019 23:30 Alfredo Lopez (Unlicensed)
v. 3 Aug 24, 2019 23:29 Alfredo Lopez (Unlicensed)
v. 2 Aug 24, 2019 23:28 Alfredo Lopez (Unlicensed)
v. 1 Aug 24, 2019 23:23 Alfredo Lopez (Unlicensed)







 

 

(c) 2020 por SIFC.O, S.A.