Uso de curl para acceder a la API protegida

Obtenga información sobre cómo acceder a una API con la seguridad habilitada para Keycloak mediante la herramienta curl para obtener un token de acceso.
  1. Cree una instancia de Keycloak siguiendo los procedimientos indicados.
  2. Ejecute el microservicio pago.
  3. Asegúrese de haber registrado un usuario en Keycloak y de haber obtenido las credenciales de Realm.
  4. Para obtener el token de autenticación a través de curl, es necesario realizar una publicación en la API de Keycloak informando los parámetros: nombre de usuario, contraseña, client_id, client_secret.

a) Después de obtener los parámetros

1
curl -X POST http://localhost:8080/realms/devprime/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d username=$username -d password=$password -d grant_type=password -d client_id=$client -d client_secret=<secret> --insecure

b) Después de ejecutarlo, debería obtener el resultado como se muestra en el siguiente ejemplo.

1
{"access_token":"eyJhbGciOiJSUzI1NDdfOE1DdTVvSU5OR1pyN3BIeV9jIn0","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyn0.g3GJR-jdc0TpsL9E","token_type":"Bearer","not-before-policy":0,"session_state":"21d413e9-cffa-47227bec6","scope":"profile email"}

En este ejemplo, hemos reducido el tamaño del resultado Access Token para que sea más fácil de ver. Hay algunas herramientas que le permiten ver el JSON Web Token si desea inspeccionar el resultado de Keycloak.

c) Obtener el valor del token de acceso y montar la consulta para realizar un GET en la API protegida introduciendo el parámetro “Authorization: Bearer” en el encabezado.

1
2
curl -X GET https://localhost:5003/v1/payment -H "Authorization: Bearer eyJhbGciOiJSUzI1NDdfOE1DdTVvSU5OR1pyN3BIeV9jIn0" -H 'accept: */*'
grant_type=password -d client_id=$client -d client_secret=<secret> --insecure

d) Se puede repetir el mismo ejemplo para realizar un POST a la API protegida.

1
curl -X 'POST' 'https://localhost:5003/v1/payment' -H "Accept:application/json"  -H "Content-Type:application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NDdfOE1DdTVvSU5OR1pyN3BIeV9jIn0" -d '{\"customerName\": \"Ramon\", \"orderID\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\", \"value\": \"0\"}'
Última modificación October 17, 2023 (e38ae05b)