| Info | ||
|---|---|---|
| ||
Circule por esta guía con precaución. Gracias. |
| Tabla de contenidos |
|---|
...
Para obtener un token OIDC con el que poder llamar a APIs OAuth sin necesidad de tener un usuario logeado, necesitamos unas credenciales que pasaremos al CAS para que nos devuelva el token.
...
El client secret es la contraseña, así que por supuesto no se debe subir a gitlab. Para su uso, solicitaremos también (puede ser en el mismo jira) que den de alta las credenciales en Vault y nos den acceso a las mismas. Al ser el CAS el que proporciona las credenciales, telemática será el grupo emisor, y nuestra api será la que consuma dichos secretos de Vault.
...
Habrá que solicitar el token a la URL que corresponda según el entorno. Podemos usar estas tres como referencia, pero tendremos que asegurarnos contra qué está autenticando la API a la que vayamos a atacar, pues si no obtendremos errores al hacer las peticiones:
| Entorno | URL CAS |
|---|---|
DESARROLLO | https:// |
| sso.test.um.es/cas/oidc/accessToken | |
| TEST | https://apitest.um.es/mncs/api-umu/cas/oidc/accessToken |
| PRODUCCIÓN | https://entrada.um.es/cas/oidc/accessToken |
Tendremos que tener la url correspondiente en nuestro application.properties, la correspondiente al entorno en el que estemos.
...
| Bloque de código | ||
|---|---|---|
| ||
webClient.post().headers(h -> h.setBearerAuth(jwt.getTokenValue())). ... |
O en el caso de que utilicemos RestTemplate, lo podemos añadir así:
| Bloque de código | ||
|---|---|---|
| ||
// Preparamos header jwt
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(jwt.getTokenValue());
HttpEntity<String> entity = new HttpEntity<>(headers);
// Llamada
ResponseEntity<LoQueSea> response = restTemplate.exchange(url, HttpMethod.GET, entity,
new ParameterizedTypeReference<LoQueSea>() {}); |