Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CONFIGURACIÓN PREVIA NECESARIA

Note

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:

Code Block
language
html
xml
<add name="GeneXus.Http.GXOAuthAccessToken" verb="*" path="GXOAuthAccessToken.aspx" type="GeneXus.Http.GXOAuthAccessToken,GxClasses" />
Note

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.

Code Block
languagexml
<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 usuariosusuario, 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 menciono 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 Aplicación SIFCO WEB.

SIFCO web WEB a través de GAM, genera un conjunto de permisos automáticos de las diferentes transacciones habilitadas en nuestra aplicación 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 RESTful que se va a habilitarutilizar.

Code Block
languagehtml
[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 y consumo de los Web Services permisadosa 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.

Note

Las transacciones GeneXus, que permiten al usuario obtener (GET) y actualizar datos (POST, PUT, DELETE), se implementan utilizando los servicios RESTful (Business Component expuestos como RESTful) que exponen los métodos CRUD. Es por eso que habilitar o prohibir a un usuario ejecutar los diferentes métodos de un Business Component expuesto como servicio RESTful, implica habilitar o prohibir al usuario los servicios encapsulados por este Business Component. Dichos Business Component pueden ser Componentes del Negocio como son los Clientes, Créditos Personales, Créditos Grupales, Caja, etc.

  • 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.

Tip

WEB SERVICE DE AUTENTICACIÓN

  • ACCESS TOKEN

Para obtener el token de acceso es necesario realizar POST con los parámetros (Recomendable hacerlo con aplicaciones como POSTMAN), para ello se deben tener los paramentos listados a continuación (Se indican a modo de ejemplo):

key

value

client_id

1517b36b238a42c886b4367a1d132582

client_secret

feb8098762b64fb29038bf844fce894

granttype

password

scope

FullControl

username

admin

password

admin123

Donde los parámetros client_id y client_secret deben obtenerse de los parámetros de la aplicación en el GAM, esta información puede ser revisada en el menú Configuración - > Seguridad -> Configuración de la Aplicación.

Image Removed

PETICIÓN DE ACCESO

  • Una petición POST a (Recomendable hacerlo con aplicaciones como POSTMAN).

Expand
titleInstalación de POSTMAN

Para la Autenticacion y consumo de los Web Services indicados debemos tener instalado en tu equipo de trabajo alguna aplicación para probar acceso a la REST API de SIFCO WEB, para ello recomendamos uno de los mas usados como es POSTMAN y a continuación detallamos su instalación como extensión de Google Chrome, dado a que la misma es independiente del Sistema Operativo (SO) que estés utilizando, sin embargo es importante acotar que dicha aplicación también se puede instalar directamente en tu equipo, pero el instalador a utilizar dependerá del SO que estés ejecutando en ella.

INSTALACIÓN DE POSTMAN COMO EXTENSIÓN DE GOOGLE CHROME

Primero debe acceder a siguiente link

Image Removed

Luego debes darle clic al botón de

Status
colourBlue
titleAgregar a chrome

Image Removed

Luego en la ventana del pop-up que se muestra en la imagen debes dar clic en

Status
titleAgregar app

Y luego verificar que comience la descarga en la barra inferior, y una vez culminado (debe ser un proceso bastante rápido), verificar que la aplicación esta en tu listado de extensión y aplicaciones de Google Chrome.

Image Removed

Una vez instalado puedes iniciarlo y configurar los parámetros indicados en esta guía para la obtención del token y el consumo de los Web Services

Si necesitas información adicional de como utilizar POSTMAN, te adjunto dos paginas que pueden ser de mucha ayuda para ello.

Paginas e Apoyo Adicionales para la Instalación y utilización de POSTMAN

Code Block
HTTP://<SERVER>/<APPDIR>/oauth/access_token

Incluyendo en el body:

Code Block
languagehtml
client_id=1234561ad52a42919a221bc796d0d6b0&client_secret=1111114313d243dd987b3aadb250e63b&granttype=password&scope=FullControl&username=admin&password=admin123

  • Como respuesta se obtendrá un JSON con el token de acceso el cual deberá utilizarse en el encabezado de petición de consumo de los objetos expuestos

Code Block
languagejson
{ 
"access token" : "c9919e10e118"
"scope" : "FullControl"
}

CONSUMO DE WEB SERVICE

  • Estructura de la Petición:

Para la petición se debe tomar en cuenta el tipo de método (GET, POST, PUT, DELETE) a utilizar el el formato que en todo caso debe ser siempre JSON. Por ello se provee una estructura genérica de la misma como ejemplo:

Code Block
HTTP://<SERVER>/<APPDIR>/rest/WEB_SERVICE/PARM_1/PARM_2/PARM_N

  • Encabezados obligatorios:

Cuando se ha habilitado en la Aplicación SIFCO WEB, el acceso de un usuario vía REST API de forma segura, a través del GeneXus Access Manager (GAM) con la propiedad de Nivel de Seguridad Integrada activa en las opciones de Autorización o Autenticación, deben enviarse los encabezados necesarios al servicio para evitar que el servicio responda con un error HTTP 401. Para evitar eso se debe incluir en la cabecera del llamado HTTP, lo siguientes encabezados y poder consumir dicho Web Service de forma segura sin riegos a que dicha solicitud sea rechazada.

Code Block
languagehtml
Content-Type: application/json
Authorization: OAuth <Access Token>
GENEXUS-AGENT: SmartDevice Application

Mientras el token sea válido, el servicio responderá con el estado HTTP 200 OK y devolverá los datos solicitados. Si el token pasado en los encabezados ya no es válido, el servicio devolverá un error HTTP que debe quedar atrapado en el código de control del usuario.

Para profundizar sobre este punto puede remitirse a siguiente link, donde se detalla como es el llamado de Web Service, tipo Restfull, de forma segura por un usuario habilitado para ello desde el GeneXus Access Manager (GAM) .

Note

Respete los encabezados obligatorios para que pueda consumir el WEB SERVICE respectivo.

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 RESTfulsea 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.


Note

ADVERTENCIA:

Las transacciones GeneXus, que permiten al usuario obtener (GET) y actualizar datos (POST, PUT, DELETE), se implementan utilizando los servicios RESTful(Business Component expuestos como RESTful) que exponen los métodos CRUD. Es por eso que habilitar o prohibir a un usuario ejecutar los diferentes métodos de un Business Component expuesto como servicio RESTful, implica habilitar o prohibir al usuario los servicios encapsulados por este Business Component. Dichos Business Component pueden ser Componentes del Negocio como son los Clientes, Créditos Personales, Créditos Grupales, Caja, etc.

Warning

NO OLVIDE crear un usuario en el GAM para para permitir el acceso exclusivo a los web services. Y incluir en el archivo web.config debe contener en la sección de handlers el elemento indicado en la primera parte de esta pagina (SOLO APLICA PARA CLIENTES QUE TENGA SIFCO WEB HOSPEDADO EN UN SERVIDOR PROPIO (CLIENTES On Premise)).

Live Search
spaceKeyDOC
placeholderBúsqueda en esta Pagina
typepage

Artículos Relacionados

Filter by label (Content by label)
showLabelsfalse
max5
showSpacefalse
cqllabel in ( "informacion" , "tecnica" , "rest" , "api" , "access" , "token" ) and type = "page" and space = "DOC"

Artículos Actualizados Recientemente

Recent updates
typespage
max5
spacesDOC
hideHeadingtrue
themeconcisehideHeadingtrue
Change History