Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.
Info
titleEN CONSTRUCCIÓN...

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:

EntornoURL CAS

DESARROLLO

https://
entrada
sso.test.um.es/cas/oidc/accessToken
TESThttps://apitest.um.es/mncs/api-umu/cas/oidc/accessToken
PRODUCCIÓNhttps://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
languagejava
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
languagejava
// 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>() {});