Spring Security 6 ja JWT-todennus · Oppitunti

OAuth2-asiakkaan määritys

Määritä sovelluksesi toimimaan OAuth2-asiakkaana ja määritä eri palveluntarjoajien rekisteröintitiedot.

Oppitunti 1/412 vaihetta

OAuth2-asiakkaan määritys on ilmainen Spring Security 6 ja JWT-todennus-oppitunti CoddyKitissä. Tämä on oppitunti 1/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 Security 6 ja JWT-todennus-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Security 6 ja JWT-todennus-kurssilla on yhteensä 4 oppituntia.

Mikä OAuth2 Client on?

OAuth2:ssa OAuth2 Client on sovellus, joka haluaa käyttää resursseja käyttäjän puolesta Resource Server -palvelimelta. Ajatelkaa sitä sovelluksena, joka pyytää lupaa käyttää toista palvelua (kuten Googlea tai GitHubia) käyttäjän puolesta.

Kyseessä ei ole käyttäjä, vaan käyttäjän puolesta toimiva sovellus.

Miksi sovelluksemme pitää määrittää?

Jotta sovelluksesi voi käyttää ulkoisen palvelun API:a (esimerkiksi hakea käyttäjäprofiileja tai julkaista päivityksiä), palvelun täytyy tunnistaa se. Tätä tunnistamisprosessia kutsutaan nimellä client registration.

  • Sovelluksesi saa yksilöllisen identiteetin.
  • Palvelu tietää, kuka käyttöoikeutta pyytää.
  • Se mahdollistaa turvallisen viestinnän ja valtuutuksen.

Asiakasrekisteröinnin keskeiset tiedot

Kun rekisteröit sovelluksesi OAuth2:n Authorization Server -palvelimelle (käyttöoikeuksia myöntävälle palvelulle), annat ja saat yleensä seuraavat tiedot:

  • Client ID: Sovelluksesi julkinen tunniste.
  • Client Secret: Luottamuksellinen avain, jota käytetään sovelluksesi todentamiseen.
  • Redirect URI(s): Osoite, johon Authorization Server ohjaa käyttäjän takaisin valtuutuksen jälkeen.

Spring Security OAuth2 Client -asiakkaana

Spring Securityn avulla Spring Boot -sovelluksen määrittäminen OAuth2 Client -asiakkaaksi on erittäin helppoa. Se käsittelee suuren osan monimutkaisesta OAuth2-kulusta automaattisesti.

Teidän tarvitsee vain antaa yhdistettävän ulkoisen palvelun tarvittavat rekisteröintitiedot.

Asiakkaan määritystiedosto

Spring Securityn OAuth2-asiakkaan määritykset sijaitsevat pääasiassa application.yml- tai application.properties-tiedostossa.

Käytätte kahta pääetuliitettä:

  • spring.security.oauth2.client.registration: Määrittää sovelluksen rekisteröinnin tiettyä palveluntarjoajaa varten.
  • spring.security.oauth2.client.provider: Määrittää itse OAuth2-palveluntarjoajan tiedot, kuten sen valtuutuspäätepisteen.

Palveluntarjoajan määrittäminen

Määritätte ulkoisen OAuth2-palvelun päätepisteet kohdassa spring.security.oauth2.client.provider.[provider-name]. Esimerkiksi palveluntarjoajalle nimeltä github:

  • authorization-uri: Osoite, jossa käyttäjät valtuuttavat sovelluksesi.
  • token-uri: Osoite, jossa sovelluksesi vaihtaa koodit tunnisteiksi.
  • user-info-uri: Osoite, josta sovelluksesi hakee käyttäjän tiedot.

Usein Spring Boot voi määrittää nämä automaattisesti suosituille palveluntarjoajille, kun annat vain client-id- ja client-secret-arvot.

Asiakassovelluksen rekisteröinti

Määritätte sovelluksen yksilölliset rekisteröintitiedot tiettyä palveluntarjoajaa varten kohdassa spring.security.oauth2.client.registration.[registration-id]. registration-id toimii oman asiakasmäärityksesi yksilöllisenä nimenä.

  • provider: Viittaus määritettyyn palveluntarjoajaan, esimerkiksi github.
  • client-id: Sovelluksesi julkinen tunniste.
  • client-secret: Sovelluksesi salainen avain.
  • redirect-uri: Takaisinkutsun URL-osoite.
  • scope: Käyttöoikeudet, joita sovelluksesi pyytää, esimerkiksi read:user.
  • authorization-grant-type: Käytettävä OAuth2-kulku, esimerkiksi authorization_code.

Esimerkki: GitHub-asiakkaan määritys

Tarkastellaan konkreettista GitHub-esimerkkiä. Rekisteröisitte ensin sovelluksen GitHubin kehittäjäasetuksissa saadaksenne Client ID- ja Client Secret -arvot.

Määrittäkää sitten application.yml-tiedosto:

spring:
  security:
    oauth2:
      client:
        registration:
          github:
            client-id: your-github-client-id
            client-secret: your-github-client-secret
            redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
            scope: read:user,user:email
        provider:
          github:
            authorization-uri: https://github.com/login/oauth/authorize
            token-uri: https://github.com/login/oauth/access_token
            user-info-uri: https://api.github.com/user

Minimaalinen Spring Boot -sovellus

Varmistakaa OAuth2-asiakastoiminnallisuuden käyttöönottoa varten, että käytössänne on spring-boot-starter-oauth2-client-riippuvuus. Spring Boot tunnistaa määritykset automaattisesti ja määrittää tarvittavat suodattimet.

Tässä on Spring Boot -sovelluksen yksinkertainen aloituspiste:

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.security.Principal;

@SpringBootApplication
@RestController
public class Oauth2ClientApp {

    public static void main(String[] args) {
        SpringApplication.run(Oauth2ClientApp.class, args);
    }

    @GetMapping("/")
    public String welcome(Principal principal) {
        if (principal != null) {
            return "Hello, " + principal.getName() + "! You are logged in with OAuth2.";
        }
        return "Hello! Please log in with OAuth2.";
    }
}

Automaattinen OAuth2-kulku

Kun määritykset ovat kunnossa, Spring Security:

  • Ohjaa todentamattomat käyttäjät määritetyn Authorization Serverin kirjautumissivulle.
  • Käsittelee authorization code -koodin vaihdon, kun käyttäjä on myöntänyt käyttöoikeuden.
  • Hakee käyttäjän tiedot osoitteesta user-info-uri.
  • Täyttää SecurityContext-kontekstin todennetulla käyttäjällä.

Tämä yksinkertaistaa huomattavasti OAuth2-asiakaslogiikan toteuttamista.

Pikatarkistus: asiakkaan määritys

Olette määrittämässä Spring Boot -sovellusta ulkoisen palvelun OAuth2-asiakkaaksi. Mitä seuraavista ominaisuuksista käytetään ensisijaisesti sovelluksen tunnistamiseen ulkoisessa palvelussa, ja se pitäisi pitää luottamuksellisena?

Yhteenveto: OAuth2-asiakkaan määritys

Olette oppineet määrittämään Spring Boot -sovelluksen OAuth2 Client -asiakkaaksi. Käsittelimme seuraavat aiheet:

  • OAuth2 Client -asiakkaan rooli.
  • Tärkeät määritysasetukset, kuten client-id ja client-secret.
  • application.yml-tiedoston käyttäminen asiakkaan ja palveluntarjoajan rekisteröintiin.
  • Spring Securityn automaattinen OAuth2-vuon käsittely.

Seuraavaksi perehdymme tarkemmin tiettyjen sosiaalisen kirjautumisen palveluntarjoajien, kuten Googlen ja GitHubin, integrointiin!

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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”OAuth2-asiakkaan määritys” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Security 6 ja JWT-todennus-oppimispolun 3 oppituntia, myös oppitunnin “OAuth2-asiakkaan määritys”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Security 6 ja JWT-todennus-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”OAuth2-asiakkaan määritys”?

Määritä sovelluksesi toimimaan OAuth2-asiakkaana ja määritä eri palveluntarjoajien rekisteröintitiedot. Harjoittelet Spring Security 6 ja JWT-todennus-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Security 6 ja JWT-todennus-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Security 6 ja JWT-todennus-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”OAuth2-asiakkaan määritys”-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 Security 6 ja JWT-todennus-oppitunnilla?

Kyllä. Jokainen Spring Security 6 ja JWT-todennus-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. OAuth2-asiakkaan määritys
  2. Sosiaalisen kirjautumisen integrointi
  3. Mukautettu OAuth2-onnistumiskäsittelijä
  4. Todennetun OAuth2-käyttäjän tietojen hakeminen
← Takaisin: Spring Security 6 ja JWT-todennus