Spring Boot 4:n kattava opas · Oppitunti

OAuth2:n ja sosiaalisen kirjautumisen integrointi

Ulkoistakaa todennus luotetuille palveluntarjoajille, kuten Googlelle ja GitHubille, Spring Securityn OAuth2-asiakastuen avulla.

Oppitunti 4/413 vaihetta

OAuth2:n ja sosiaalisen kirjautumisen integrointi on ilmainen Spring Boot 4:n kattava opas-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Spring Boot 4:n kattava opas-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.

Mikä on OAuth2?

OAuth2 on protokolla, jonka avulla käyttäjät voivat myöntää sovelluksellesi rajoitetun pääsyn toisella palveluntarjoajalla olevaan identiteettiinsä jakamatta salasanaansa. Se mahdollistaa esimerkiksi Google- ja GitHub-kirjautumisen.

OAuth2:n roolit

Kolme osapuolta ovat keskeisiä: käyttäjä (resurssin omistaja), sovelluksesi (client) ja valtuutuspalvelin (palveluntarjoaja). Spring huolehtii niiden välisestä kättelystä.

Authorization Code -kulku

Yleisin kulku ohjaa käyttäjän palveluntarjoajan luo, joka palauttaa authorization code -koodin. Sovelluksesi vaihtaa koodin tokeneihin taustalla.

  • Uudelleenohjaus palveluntarjoajalle
  • Käyttäjä hyväksyy
  • Koodin vastaanottaminen ja vaihtaminen tokeniin

OAuth2 Client Starterin lisääminen

Spring Security sisältää OAuth2 client starterin, joka hoitaa koko kulun puolestasi. Lisää riippuvuus aloittaaksesi.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

Palveluntarjoajan rekisteröiminen

Määritä client ID ja secret properties-tiedostossa. Spring tuntee jo yleisten palveluntarjoajien, kuten Googlen, endpointit.

spring.security.oauth2.client.registration.google.client-id=YOUR_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_SECRET

Kirjautumisen käyttöönotto

Kutsu oauth2Login()-metodia suojausmäärityksessäsi, niin kirjautumissivu ja callback-käsittely kytkeytyvät automaattisesti käyttöön.

http.authorizeHttpRequests(a -> a.anyRequest().authenticated())
    .oauth2Login(Customizer.withDefaults());

Autentikoidun käyttäjän lukeminen

Kirjautumisen jälkeen injektoi OAuth2User, jotta voit käyttää palveluntarjoajan palauttamia profiilimääritteitä, kuten nimeä ja sähköpostiosoitetta.

@GetMapping("/me")
public String me(@AuthenticationPrincipal OAuth2User user) {
    return user.getAttribute("email");
}

Palveluntarjoajan roolien yhdistäminen

Palveluntarjoajat palauttavat omat määritteensä. Usein yhdistät ne sovelluksesi auktoriteeteiksi, jotta nykyiset käyttöoikeussäännöt toimivat edelleen.

OAuth2 ja OpenID Connect

OAuth2 käsittelee valtuutusta, kun taas OpenID Connect lisää identiteettikerroksen ID-tokenin avulla. Useimmat sosiaalisen median kirjautumiset käyttävät todentamiseen taustalla OIDC:tä.

Käyttäjien tallentaminen

Ensimmäisellä kirjautumiskerralla luot yleensä paikallisen käyttäjätietueen, jonka tunnisteena on palveluntarjoajan yksilöllinen ID. Näin ulkoinen identiteetti yhdistetään omaan tietomalliisi.

Tietoturvanäkökohdat

Vahvista aina redirect URI:t, pidä client secret -arvot poissa versionhallinnasta ja pyydä vain niitä scopeja, joita todella tarvitset.

Pikatarkistus

Testatkaa, kuinka hyvin ymmärrätte OAuth2-kirjautumisen.

Kertaus

Lisäsitte OAuth2-client-tuen, rekisteröitte palveluntarjoajan, otitte käyttöön oauth2Login()-metodin ja luette autentikoidun käyttäjän. Sosiaalinen kirjautuminen siirtää salasanojen käsittelyn luotettavien palveluntarjoajien vastuulle.

Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
21
Oppitunnit
84

Usein kysytyt kysymykset

Onko oppitunti ”OAuth2:n ja sosiaalisen kirjautumisen integrointi” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Boot 4:n kattava opas-oppimispolun 3 oppituntia, myös oppitunnin “OAuth2:n ja sosiaalisen kirjautumisen integrointi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”OAuth2:n ja sosiaalisen kirjautumisen integrointi”?

Ulkoistakaa todennus luotetuille palveluntarjoajille, kuten Googlelle ja GitHubille, Spring Securityn OAuth2-asiakastuen avulla. Harjoittelet Spring Boot 4:n kattava opas-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4:n kattava opas-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4:n kattava opas-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”OAuth2:n ja sosiaalisen kirjautumisen integrointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4:n kattava opas-oppitunnilla?

Kyllä. Jokainen Spring Boot 4:n kattava opas-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Spring Securityn perusteet
  2. Todennus ja valtuutus
  3. JWT-pohjainen tietoturva
  4. OAuth2:n ja sosiaalisen kirjautumisen integrointi
← Takaisin: Spring Boot 4:n kattava opas