...
Dependiendo de la situación, se distinguen dos tipos de configuraciones:
- Global: Todos los endpoints de nuestra API requerirán el nivel LoA establecido en su configuración.
- Por endpoint: Configurar el nivel LoA de forma independiente para cada endpoint.
| Tabla de contenidos |
|---|
CONFIGURACIÓN
COMÚN
Añadir en el pom.xml la siguiente dependencia:
Bloque de código language xml <dependency> <groupId>es.um.atica.fundewebjs.fundewebjs-api</groupId> <artifactId>fundewebjs-security</artifactId> <version>${fdwjs.version}</version> </dependency>Info La librería se encuentra a partir de la versión fdwjs 1.0.7-SNAPSHOT.
...
En la clase con la configuración de seguridad (generalmente SecurityConfig.java), añadir el siguiente Bean para configurar el filtro para LoA, estableciendo el nivel mínimo que se desea establecer en toda nuestra API:
Bloque de código @Bean public UmuJwtLoaAuthenticationFilter loaFilterBean() { return new UmuJwtLoaAuthenticationFilter( UmuJwtLoaLevelEnum.MEDIUM ); }En la misma clase, en el método configure, añadir el filtro configurado en el paso anterior de la siguiente forma:
Bloque de código language java .addFilterAfter( loaFilterBean(), BearerTokenAuthenticationFilter.class )
Hay que añadirlo justo antes de .oauth2ResourceServer().jwt().
Por ejemplo:Bloque de código language java @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .mvcMatchers("/actuator/**").permitAll() .mvcMatchers("/api-docs").permitAll() .mvcMatchers(apiPath+"/public/**").permitAll() .mvcMatchers(apiPath+"/private/**").hasAnyAuthority(serverScopes) .anyRequest().authenticated().and() .addFilterAfter( loggingFilterBean(), BearerTokenAuthenticationFilter.class ) .addFilterAfter( loaFilterBean(), BearerTokenAuthenticationFilter.class ) .oauth2ResourceServer().jwt(); http.csrf().disable(); }
POR MÉTODO
Clase Configuration (SecurityConfig)
En la clase con la configuración de seguridad (generalmente SecurityConfig.java), añadir el siguiente Bean para configurar el filtro para LoA, estableciendo el nivel mínimo que se desea establecer en toda nuestra API:
1 .@EnableGlobalMethodSecurity( prePostEnabled = true )
...
| Advertencia |
|---|
Estas equivalencias son TEMPORALES y todavía pueden estar sujetas a modificaciones. |
| Combinación de Autenticación | LoA |
|---|---|
| LDAP (cuenta UM) | LOW |
| LDAP (cuenta UM) + MFA (OTP) | MEDIUM |
| CMN | LOW |
| CMN + MFA | MEDIUM |
| Cl@ve certificado | MEDIUM |
| Cl@ve PIN (lleva implícito el OTP) | MEDIUM |
| Cl@ve permanente | LOW |
| Cl@ve certificado + MFA | MEDIUM |
| Cl@ve PIN + MFA | MEDIUM |
| Cl@ve permanente + MFA | MEDIUM |
| *Cl@ve + DNIe | HIGH |
Artículos Relacionados
| Contenido por etiqueta | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...