Buenas!!
Hacía bastante tiempo que no escribía nada, pero aquí tenéis una nueva entrada en el blog que creo que a más de uno les ahorrará un quebradero de cabeza y que además he aprendido hace relativamente poco.
¿A vosotros os pasa que habéis intentado probar en local las autorizaciones de CAP pero nunca os funciona del todo bien y tenéis que estar probando con la aplicación desplegada? Porque a mi me pasa y mucho, igual es por vagueza de tener que estar mockeando usuarios e implementando el approuter.
Hace poco me han enseñado a cómo hacer una prueba de token manualmente con el xsuaa y he aplicado esto a mis proyectos en local (pensé, si funciona aquí tiene que funcionar allí y voilá), aquí os dejo el detalle de cómo hacerlo 🥸
-
- Primero que todo debéis tener una instancia xsuaa en vuestro espacio, de aquí tenéis que montar la siguiente url en vuestro browser: {{XSUAAURL}}/oauth/authorize?response_type=code&client_id={{XSUAAClientID}} y ejecutarlo, esto os devolverá una url con un más o menos tal que así código tal que así localhost:8080/?code={{AuthorisationCode}}
- Ahora toca irse a postman y hacer una operación GET montando esta url {{XSUAAURL}}/oauth/token?grant_type=authorization_code&code={{AuthorisationCode}}
- En la pestaña authorization seleccionamos Basic Auth y en Username = xsuaa client_id y en password xsuaa client_secret
- Esto nos devolverá un access token válido del xsuaa que tenemos en BTP, si vamos a la página jwt.io y pegamos el valor de access_token podremos ver todos los roles y atributos que tiene nuestro usuario asignado.
- Usando postman para llamar a la url de nuestro servicio en local (localhost:4004/SERVICIO por ejemplo) y añadiendo en la pestaña Authorization el tipo bearer, pegamos el access_token y listo.
Reacuerda que para que funcione tienes que tener bindeado el xsuaa a tu servicio en local, puedes hacerlo ejecutando el comando cds bind –to {{xsuainstance}}:{{servicekey}}
Cualquier cosa no dudéis en preguntar!!🚀