Durante el proceso de desarrollo de un API, debemos crear un proceso seguro de autenticación, existen muchos tipos de mecanismos de autenticación, algunos como OAuth, OAuth2, REST Enabled SQL, usuario y contraseña de base de datos, entre otros. Estos procesos de autenticación se logran por medio de Oracle Rest Data Service (ORDS), para este laboratorio solucionaremos un error que se presenta al intentar autenticarse por medio de OAuth2.

Al solicitar el Access Token usando un url como el siguiente:

http://172.28.126.93:8081/ords/api/oauth/token

Se presenta alguno de los siguientes errores:

Este error sucede porque el método se debe consultar por medio de POST y no de GET
Este error sucede cuando al enviar los datos de autenticación vía POST no estamos usando https como protocolo web o las credenciales son incorrectas

Los procesos de autenticación por medio del ORDS por default se realizan utilizando https y no http, adicionalmente, weblogic por default no procesa solicitudes vía http sin previa autenticación en el dominio, esto es un método de seguridad para realizar los request al API siempre por https.

En mí caso, las credenciales CLIENT_ID y CLIENT_SECRET que estábamos enviado eran las correctas pero la conexión era vía http y no https, al mismo tiempo no queríamos enviar las credenciales de weblogic para no exponerlas en el ambiente de desarrollo.

En caso de no necesitar https y se requiera consumir el servicio vía http, esto se puede realizar deshabilitando la autenticación SSL default tanto en el ORDS como en el weblogic.

Se recomienda realizar este proceso únicamente en ambientes de testing o desarrollo donde no exista un certificado SSL o no este homologado a producción, sin embargo lo mejor sería tener un certificado SSL también en desarrollo y testing.

Esto no se debe hacer en los ambientes productivos, ya que a la hora de deshabilitar la autenticación vía https, estamos poniendo en riesgo nuestros datos.

Para deshabilitar la autenticación vía https en el ords debemos buscar el archivo de configuración default.xml del ORDS y añadirle la siguiente etiqueta:

<entry key="security.verifySSL">false</entry>

De manera que se vea así:

Luego del cambio se debe reiniciar el manage server donde se encuentre desplegado el ORDS, sin embargo primero quitaremos la autenticación default por https de weblogic.

Debemos ir a la ruta $DOMAIN_HOME/config y abrir el archivo config.xml, ahí buscaremos el final de la etiqueta security-configuration, una línea antes del cierre de la etiqueta colocaremos la siguiente etiqueta:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

De manera que se vea así:

Guardamos el archivo y ahora procederemos a reiniciar nuestro AdminServer y el manage server donde se encuentre desplegado el ORDS.

Luego de haber reiniciado los servicios, procederemos a probar la solicitud del Access Token nuevamente vía http:

De esta manera ya podemos probar nuestra API utilizando el protocolo http.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.