Todennus SASLilla
Määritä Spring Boot Kafka -asiakkaat todentamaan yhteys Kafka-brokereihin SASL:n (Simple Authentication and Security Layer) avulla.
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_passwordPikatarkistus
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_PLAINTEXTjaSASL_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ä!
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
- Todennus SASLilla
- Valtuutus ACL-luetteloilla
- Salaus SSL/TLS:llä
- Schema Registryn käytön auditointi ja suojaaminen