Configuración de Seguridad para Obtener Token de Acceso y Consumir de los Web Services
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):
Headers:
Content-Type: application/x-www-form-urlencoded
Body:
key | value |
---|---|
client_id | 1517b36b238a42c886b4367a1d132582 |
client_secret | feb8098762b64fb29038bf844fce894 |
granttype | password |
scope | FullControl |
username | xxxxx |
password | xxxxxx |
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.
PETICIÓN DE ACCESO
Una petición POST a (Recomendable hacerlo con aplicaciones como POSTMAN).
https://<SERVER>/<APPDIR>/oauth/access_token
Incluyendo en el body:
Body Content Type: application/x-www-form-urlencoded
client_id=1234561ad52a42919a221bc796d0d6b0&client_secret=1111114313d243dd987b3aadb250e63b&granttype=password&scope=FullControl&username=xxxxx&password=xxxxx
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
{
"access_token": "f2a9ec34-cf83-46f5-8862-f78ac03670d1!171380a787a9152688ab61a94d66e0eb778e95b549d48a34f5815a062eb24a3e0aa76226d99b16",
"scope": "FullControl",
"refresh_token": "",
"user_guid": "22d9a538-ebe4-4d35-9674-231e75852f32"
}
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, y el protocolo HTTPS. Por ello se provee una estructura genérica de la misma como ejemplo:
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://. Para mayores detalles remitirse a Configuración de Seguridad para Habilitar Acceso Autenticado a los Web Services.
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.
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, bajo el sistema RESTful, de forma segura por un usuario habilitado para ello desde el GeneXus Access Manager (GAM) .
RESPETE LOS ENCABEZADOS OBLIGATORIOS para que pueda consumir el WEB SERVICE respectivo.
(c) 2020 por SIFC.O, S.A.