2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Intégrer une solution d'authentification unique dans le projet Spring Boot
Bonjour à tous, je suis l'éditeur de Weizhuan Taoke System 3.0, et je suis aussi un programmeur qui ne porte pas de caleçon long en hiver, mais qui doit quand même être au frais par temps froid !
Dans les applications d'entreprise modernes, les solutions d'authentification unique (SSO) sont des technologies clés pour garantir que les utilisateurs peuvent se connecter et accéder de manière transparente à plusieurs applications. Cet article présentera en détail comment intégrer une solution d'authentification unique dans un projet Spring Boot pour améliorer l'expérience utilisateur et la sécurité du système.
Avant de pouvoir intégrer l’authentification unique, vous devez d’abord choisir une solution d’authentification unique adaptée. Les options courantes incluent des solutions basées sur OAuth2 (telles que Spring Security OAuth ou Spring Security + OAuth2 Client) et l'utilisation d'autorités d'authentification intégrées (telles que Keycloak). Ce qui suit utilise Spring Security + OAuth2 Client comme exemple pour illustrer.
Dans le projet Spring Boot, nous pouvons implémenter la fonction d'authentification unique en configurant Spring Security et OAuth2 Client. Voici un exemple de configuration simple :
package cn.juwatech.taokua.system.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.client.registration.ClientRegistration;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
import org.springframework.security.oauth2.core.AuthorizationGrantType;
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.defaultSuccessUrl("/dashboard")
.and()
.logout()
.logoutSuccessUrl("/")
.permitAll();
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(githubClientRegistration());
}
private ClientRegistration githubClientRegistration() {
return ClientRegistration.withRegistrationId("github")
.clientId("your-client-id")
.clientSecret("your-client-secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.scope("read:user")
.authorizationUri("https://github.com/login/oauth/authorize")
.tokenUri("https://github.com/login/oauth/access_token")
.userInfoUri("https://api.github.com/user")
.userNameAttributeName("id")
.clientName("GitHub")
.build();
}
}
Si vous choisissez d'utiliser une autorité de certification intégrée, telle que Keycloak, vous pouvez l'intégrer en suivant ces étapes :
Une fois configurés dans le projet, les utilisateurs peuvent se connecter à l'aide de leurs informations d'identification en accédant à n'importe quelle application. Le système dirigera automatiquement l'utilisateur vers l'autorité de certification pour s'authentifier et obtenir une autorisation, puis le redirigera vers l'application d'origine.
Cet article décrit comment intégrer une solution d'authentification unique dans un projet Spring Boot, fournit un exemple de configuration simple basé sur OAuth2 et mentionne la possibilité d'intégrer un centre de certification. Grâce à ces étapes, les développeurs peuvent facilement mettre en œuvre des fonctions d’authentification et d’autorisation des utilisateurs sécurisées et efficaces.
Produit par l'éditeur de Micro-earning Taoke System 3.0, il doit s'agir d'un produit de haute qualité. Veuillez indiquer la source lors de la réimpression !