Teknologian jakaminen

Integroi kertakirjautumisratkaisu Spring Boot -projektiin

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Integroi kertakirjautumisratkaisu Spring Boot -projektiin

Hei kaikki, olen Weizhuan Taoke System 3.0:n editori, ja olen myös ohjelmoija, joka ei käytä pitkiä housuja talvella, mutta joka on silti viileä kylmällä säällä!

Nykyaikaisissa yrityssovelluksissa Single Sign-On (SSO) -ratkaisut ovat avainteknologioita, joilla varmistetaan, että käyttäjät voivat kirjautua sisään ja käyttää useita sovelluksia saumattomasti. Tässä artikkelissa esitellään yksityiskohtaisesti, kuinka kertakirjautumisratkaisu integroidaan Spring Boot -projektiin käyttökokemuksen ja järjestelmän turvallisuuden parantamiseksi.

1. Valitse kertakirjautumisratkaisu

Ennen kuin voit integroida kertakirjautumisen, sinun on ensin valittava sopiva kertakirjautumisratkaisu. Yleisiä vaihtoehtoja ovat OAuth2-pohjaiset ratkaisut (kuten Spring Security OAuth tai Spring Security + OAuth2 Client) ja integroitujen todennusviranomaisten käyttö (kuten Keycloak). Seuraavassa on esimerkkinä Spring Security + OAuth2 Client.

2. Määritä OAuth2-asiakas

Spring Boot -projektissa voimme toteuttaa kertakirjautumistoiminnon määrittämällä Spring Securityn ja OAuth2 Clientin. Tässä on yksinkertainen konfigurointiesimerkki:

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();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

3. Integroitu todennuspalvelin

Jos päätät käyttää integroitua varmentajaa, kuten Keycloakia, voit integroida sen seuraavasti:

  • Määritä Keycloak Server ja luo Realm ja Client;
  • Määritä Keycloak Adapter Spring Boot -projektissa;
  • Määritä Spring Security käyttämään Keycloakia todennuspalveluntarjoajana.

4. Ota käyttöön kertakirjautuminen

Kun käyttäjät on määritetty projektissa, he voivat kirjautua sisään valtuustiedoillaan käyttämällä mitä tahansa sovellusta. Järjestelmä ohjaa käyttäjän automaattisesti varmenteen myöntäjälle todentamaan ja hankkimaan valtuutuksen ja ohjaa sitten takaisin alkuperäiseen sovellukseen.

tiivistettynä

Tässä artikkelissa kuvataan kertakirjautumisratkaisun integrointi Spring Boot -projektiin, tarjotaan yksinkertainen esimerkkimäärittely, joka perustuu OAuth2:een, ja mainitaan mahdollisuus integroida varmennekeskus. Näiden vaiheiden avulla kehittäjät voivat helposti toteuttaa turvallisia ja tehokkaita käyttäjien todennus- ja valtuutustoimintoja.

Micro-earning Taoke System 3.0:n toimittajan tuottaman tuotteen on oltava korkealaatuinen. Ilmoita lähde uusintapainossa!