Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka) · Oppitunti

Todennus SASLilla

Määritä Spring Boot Kafka -asiakkaat todentamaan yhteys Kafka-brokereihin SASL:n (Simple Authentication and Security Layer) avulla.

Oppitunti 1/411 vaihetta

Todennus SASLilla on ilmainen Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-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 Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-kurssilla on yhteensä 4 oppituntia.

Mikä SASL on?

Tervetuloa suojaamaan Kafka-sovelluksiasi! Tänään tutustumme SASL:iin, joka on lyhenne sanoista Simple Authentication and Security Layer.

SASL on verkkoprotokollien autentikointiin ja tietoturvaan tarkoitettu kehys. Kafkassa sen avulla clientit (kuten Spring Boot -sovellukset) todistavat henkilöllisyytensä Kafka-välittäjille.

Miksi Kafka-todennusta käytetään?

Kuvitellaan pankki: ette haluaisi, että kuka tahansa pääsee käsiksi tileihinne. Vastaavasti tapahtumapohjaisessa järjestelmässä on hallittava, kuka voi lähettää viestejä Kafka-aiheisiinne tai vastaanottaa niitä.

  • Luvattoman käytön estäminen: Varmistetaan, että vain luotetut sovellukset voivat käyttää Kafka-klusterianne.
  • Tietojen eheys: Suojataan tietovirrat haitallisilta tai tahattomilta muutoksilta.
  • Vaatimustenmukaisuus: Täytetään arkaluontoisten tietojen käsittelyä koskevat turvallisuusvaatimukset.

Kafka SASL-mekanismit

SASL on itsessään kehys, joka käyttää todennukseen tiettyjä ”mekanismeja”. Kafkan yleisiä mekanismeja ovat esimerkiksi:

  • PLAIN: Lähettää käyttäjänimen ja salasanan selväkielisinä (mutta yleensä SSL:n kautta salattuina). Yksinkertainen, mutta vähemmän turvallinen.
  • SCRAM: (Salted Challenge Response Authentication Mechanism) Vankempi haaste–vastaus-mekanismi, joka ei lähetä salasanaa suoraan. Esimerkkejä: SCRAM-SHA-256, SCRAM-SHA-512.
  • GSSAPI (Kerberos): Yritystason todennus, jota käytetään usein suurissa yritysympäristöissä.

Välittäjän puolen määritys (käsitteellinen)

Ennen kuin asiakkaat voivat todentautua, Kafka-välittäjät on määritettävä hyväksymään SASL-yhteyksiä. Tämä sisältää yleensä seuraavat vaiheet:

  • SASL-kuuntelijan käyttöönotto tiedostossa server.properties.
  • Välittäjän JAAS (Java Authentication and Authorization Service) -tiedoston määrittäminen.
  • Kelvollisten käyttäjien ja heidän tunnistetietojensa määrittäminen.

Vaikka emme määritä välittäjää tässä, on tärkeää muistaa, että molemmat osapuolet on määritettävä!

Spring Boot -asiakkaan ominaisuudet

Spring Boot Kafka -asiakkaalle lisätään tietoturvaominaisuudet tiedostoon application.properties tai application.yml. Niiden avulla sovellukselle määritetään suojattu yhteystapa.

Tärkeimmät ominaisuudet ovat spring.kafka.properties.security.protocol ja spring.kafka.properties.sasl.mechanism.

SASL_PLAINTEXTin käyttäminen

SASL_PLAINTEXT on yksi yksinkertaisimmista tavoista ottaa SASL käyttöön. Se lähettää tunnistetiedot suoraan. Sitä käytetään usein yhdessä SSL:n (SASL_SSL) kanssa yhteyden salaamiseen, jolloin selväkieliset tunnistetiedot ovat siirron aikana suojattuja.

Se sopii nopeisiin määrityksiin tai testaamiseen, mutta tuotannossa kannattaa harkita vankempia mekanismeja, kuten SCRAM-mekanismia.

Se määritetään tiedostossa application.properties seuraavasti:

spring.kafka.producer.properties.sasl.mechanism=PLAIN
spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
spring.kafka.producer.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="password";

SASL_PLAINTEXT-tuottajan esimerkki

Tämä Spring Boot -tuottaja lähettää yksinkertaisen viestin käyttäen asetusta SASL_PLAINTEXT. Muistakaa, että JAAS-määritys olisi tiedostossa application.properties, ei suoraan koodissa.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;

@SpringBootApplication
public class SaslProducerApplication implements CommandLineRunner {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

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

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Sending message...");
        kafkaTemplate.send("my-sasl-topic", "Hello from SASL!");
        System.out.println("Message sent with SASL_PLAINTEXT.");
    }
}

SASL:n ja SSL:n yhdistäminen

Tuotantoympäristöissä SASL-todennus kannattaa lähes aina yhdistää SSL/TLS-salaukseen. Tätä yhdistelmää kutsutaan nimellä SASL_SSL.

  • Todennus (SASL): Varmistaa asiakkaan henkilöllisyyden.
  • Salaus (SSL/TLS): Salaa kaikki asiakkaan ja välittäjän välillä siirrettävät tiedot ja suojaa niitä salakuuntelulta.

Näin saadaan sekä henkilöllisyyden varmennus että suojattu viestintä, mikä muodostaa vankan tietoturvaratkaisun.

SASL_SSL:n määrittäminen

Kun käytätte asetusta SASL_SSL, SASL-asetusten lisäksi on määritettävä SSL-ominaisuudet. Näihin kuuluvat tiedot truststore-säilöstä (välittäjän varmenteen luottamista varten) ja mahdollisesti keystore-säilöstä (jos asiakkaan on myös todennettava itsensä varmenteella).

Esimerkki asetuksesta application.properties käyttäessä SASL_SSL-asetusta (PLAIN-mekanismilla):

spring.kafka.consumer.properties.security.protocol=SASL_SSL
spring.kafka.consumer.properties.sasl.mechanism=PLAIN
spring.kafka.consumer.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="password";
spring.kafka.consumer.properties.ssl.truststore.location=file:/path/to/client.truststore.jks
spring.kafka.consumer.properties.ssl.truststore.password=truststore_password

Pikatarkistus

Mitä seuraavista SASL-mekanismeista pidetään yleensä turvallisimpana tuotantoympäristöissä, erityisesti SSL:n kanssa yhdistettynä?

Kertaus ja seuraavat vaiheet

Hienoa työtä! Tässä oppitunnissa opitte seuraavat asiat:

  • Mitä SASL on ja miksi se on tärkeä Kafkan tietoturvan kannalta.
  • Eri SASL-mekanismit, kuten PLAIN ja SCRAM.
  • Spring Boot Kafka -asiakkaiden määrittäminen asetuksille SASL_PLAINTEXT ja SASL_SSL.

Muistakaa, että Kafka-sovellusten suojaaminen perustuu useisiin tietoturvakerroksiin. Seuraavaksi tutustumme siihen, miten ACL-valtuutuksella hallitaan, mitä todennetut käyttäjät voivat käytännössä tehdä!

Aloita maksutta

Opi Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka) 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 ”Todennus SASLilla” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-oppimispolun 3 oppituntia, myös oppitunnin “Todennus SASLilla”. 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 edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Todennus SASLilla”?

Määritä Spring Boot Kafka -asiakkaat todentamaan yhteys Kafka-brokereihin SASL:n (Simple Authentication and Security Layer) avulla. Harjoittelet Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-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 edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Todennus SASLilla”-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 edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-oppitunnilla?

Kyllä. Jokainen Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)-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. Todennus SASLilla
  2. Valtuutus ACL-luetteloilla
  3. Salaus SSL/TLS:llä
  4. Schema Registryn käytön auditointi ja suojaaminen
← Takaisin: Spring Boot 4:n edistyneet aiheet: tapahtumavetoinen arkkitehtuuri (Kafka)