Na današnjem tržištu gdje industrije koriste razne softverske arhitekture i aplikacije, gotovo je gotovo nemoguće to osjetiti, vaši su podaci potpuno sigurni. Dakle, dok gradite aplikacije pomoću , sigurnosni problemi postaju značajniji, jer pojedinačne službe komuniciraju međusobno i s klijentom. Dakle, u ovom članku o sigurnosti mikrousluga, u sljedećem slijedu raspravljat ću o različitim načinima koje možete primijeniti za osiguranje svojih mikro usluga.
- Što su mikroservisi?
- Problemi s kojima se suočavaju mikroservisi
- Najbolji postupci za osiguravanje mikro usluga
Što su mikroservisi?
Mikroservisi, zvani arhitektura mikroservisa , je arhitektonski stil koji aplikaciju strukturira kao zbirku malih autonomnih usluga, po uzoru na poslovna domena. Dakle, možete razumjeti mikrousluge kao male pojedinačne usluge koje međusobno komuniciraju oko jedinstvene poslovne logike. Ako želite detaljnije znati više o mikrouslugama, onda to možete
kuhar vs lutka vs sol
Sada, često kada se tvrtke prebace s monolitne arhitekture na mikrousluge, vide mnoge prednosti poput skalabilnosti, fleksibilnosti i kratkih razvojnih ciklusa. Ali, istodobno, ova arhitektura uvodi i nekoliko složenih problema.
Dakle, sljedeći u ovom članku o sigurnosti mikro usluga, shvatimo probleme s kojima se suočava arhitektura mikro usluga.
Problemi s kojima se suočavaju mikroservisi
Problemi s kojima se suočavaju mikroservisi su sljedeći:
Problem 1:
Razmotrite scenarij u kojem se korisnik treba prijaviti da bi pristupio resursu. Sada, u arhitekturi mikroservisa, detalji za prijavu korisnika moraju se spremiti na takav način da se od korisnika ne traži provjera svaki put kad pokuša pristupiti resursu. To sada stvara problem jer podaci o korisniku možda nisu sigurni i također im se može pristupiti putem 3rdZabava.
Problem 2:
Kada klijent pošalje zahtjev, tada treba provjeriti detalje klijenta i provjeriti dozvole dane klijentu. Dakle, kada koristite mikroservise, može se dogoditi da za svaku uslugu morate potvrditi identitet i autorizirati klijenta. Da bi to učinili, programeri bi mogli koristiti isti kod za svaku uslugu. Ali, ne mislite li da oslanjanje na određeni kôd smanjuje fleksibilnost mikrousluga? Pa, definitivno ima. Dakle, ovo je jedan od glavnih problema s kojima se ova arhitektura često susreće.
Problem 3:
Sljedeći problem koji je vrlo istaknut je sigurnost svake pojedine mikro usluge. U ovoj arhitekturi, sve mikrousluge komuniciraju međusobno istovremeno uz 3rdstranačke prijave. Dakle, kada se klijent prijavi s 3rdstrana stranka, morate osigurati da klijent ne dobije pristup podacima mikroservisa, na način da ih on / ona može iskoristiti.
Dobro, gore spomenuti problemi nisu jedini problemi koji se mogu naći u arhitekturi mikroservisa. Rekao bih, mogli biste se suočiti s mnogim drugim problemima povezanim sa sigurnošću na temelju aplikacije i arhitekture koju imate. U tom smislu, krenimo dalje s ovim člankom o sigurnosti mikro usluga i znamo najbolji način za smanjenje izazova.
Najbolji postupci za sigurnost mikroservisa
Najbolje prakse za poboljšanje sigurnosti u mikroservisima su kako slijedi:
Obrana u dubinskom mehanizmu
Kako je poznato da mikroservisi usvajaju bilo koji mehanizam na granuliranoj razini, možete primijeniti mehanizam Obrane u dubini kako biste usluge učinili sigurnijima. Laički rečeno, mehanizam Obrana u dubini u osnovi je tehnika kojom možete primijeniti slojeve sigurnosnih protumjera za zaštitu osjetljivih usluga. Dakle, kao programer, morate samo identificirati usluge s najosjetljivijim informacijama, a zatim primijeniti brojne sigurnosne slojeve da ih zaštitite. Na taj način možete biti sigurni da bilo koji potencijalni napadač ne može u jednom trenutku provaliti sigurnost, već mora ići naprijed i pokušati razbiti obrambeni mehanizam svih slojeva.
Također, budući da u arhitekturi mikroservisa možete implementirati različite slojeve sigurnosti na različitim uslugama, napadač, koji je uspješan u iskorištavanju određene usluge, možda neće moći razbiti obrambeni mehanizam ostalih usluga.
Tokeni i API pristupnik
Kad otvorite aplikaciju, često se prikaže dijaloški okvir koji kaže: 'Prihvatite ugovor o licenci i dopuštenje za kolačiće'. Što znači ova poruka? Pa, nakon što ga prihvatite, pohranit će se vaše vjerodajnice i stvoriti sesija. Sada, sljedeći put kad odete na istu stranicu, stranica će se učitati iz predmemorije, a ne sa samih poslužitelja. Prije nego što je ovaj koncept došao na vidjelo, sesije su se centralno pohranjuvale na strani poslužitelja. Ali, ovo je bila jedna od najvećih prepreka u horizontalnom skaliranju, aplikacija.
Žetoni
Dakle, rješenje ovog problema je upotreba tokena za bilježenje vjerodajnica korisnika. Ovi se tokeni koriste za jednostavnu identifikaciju korisnika i pohranjuju se u obliku kolačića. Sada, svaki put kada klijent zatraži web stranicu, zahtjev se prosljeđuje poslužitelju, a zatim poslužitelj određuje ima li korisnik pristup traženom resursu ili ne.
Sada su glavni problem žetoni u kojima se pohranjuju podaci o korisniku. Dakle, podaci tokena moraju biti šifrirani kako bi se izbjeglo bilo kakvo iskorištavanje iz 3rdstranački resursi. Jason Web Format ili najpoznatiji kao JWT je otvoreni standard koji definira format tokena, pruža knjižnice za razne jezike i također šifrira te tokene.
API pristupnici
API pristupnici dodani su kao dodatni element za zaštitu usluga putem provjere autentičnosti tokena. The Gateway djeluje kao ulazna točka na sve zahtjeve klijenta i učinkovito skriva mikroservise od klijenta. Dakle, klijent nema izravan pristup mikrouslugama i na taj način niti jedan klijent ne može iskoristiti bilo koju od usluga.
Distribuirano praćenje i upravljanje sjednicama
Distribuirano praćenje
Dok koristite mikroservise, morate kontinuirano nadzirati sve te usluge. Ali, kad istovremeno morate nadzirati ogromnu količinu usluga, onda to postaje problem. Da biste izbjegli takve izazove, možete koristiti metodu poznatu kao Distribuirano praćenje. Distribuirano praćenje metoda je za utvrđivanje kvarova i utvrđivanje razloga za to. Ne samo to, već možete prepoznati i mjesto na kojem se događa neuspjeh. Dakle, vrlo je lako pronaći koja se mikroservis suočava sa sigurnosnim problemom.
raščlanjivanje xml datoteka u javi
Upravljanje sjednicama
Upravljanje sesijama važan je parametar koji morate uzeti u obzir prilikom osiguranja mikro usluga. Sada se kreira sesija kad god korisnik dođe u aplikaciju. Dakle, s podacima sesije možete se nositi na sljedeće načine:
- Podatke sesije jednog korisnika možete pohraniti na određeni poslužitelj. Ali, ovakav sustav u potpunosti ovisi o uravnoteženju opterećenja između usluga i zadovoljava samo horizontalno skaliranje.
- Kompletni podaci o sesiji mogu se pohraniti u jednoj instanci. Tada se podaci mogu sinkronizirati putem mreže. Jedini je problem što se u ovoj metodi mrežni resursi iscrpljuju.
- Možete se pobrinuti da se korisnički podaci mogu dobiti iz zajedničke pohrane sesije kako bi sve usluge mogle čitati iste podatke sesije. No, budući da se podaci preuzimaju iz zajedničke pohrane, morate osigurati da imate neki sigurnosni mehanizam za pristup podacima na siguran način.
Prva sesija i međusobni SSL
Ideja prve sesije je vrlo jednostavna. Korisnici se moraju prijaviti u aplikaciju jednom, a zatim mogu pristupiti svim uslugama u aplikaciji. Ali, svaki korisnik u početku mora komunicirati sa uslugom provjere autentičnosti. Pa, ovo definitivno može rezultirati velikim prometom između svih usluga, a programerima može biti nezgodno otkriti neuspjehe u takvom scenariju.
Dolazeći na uzajamni SSL, aplikacije se često suočavaju s prometom korisnika, 3rdstranke, a također i mikroservisi koji međusobno komuniciraju. No, budući da tim uslugama pristupa 3rdstranaka, uvijek postoji rizik od napada. Sada je rješenje za takve scenarije uzajamna SSL ili međusobna provjera autentičnosti između mikro usluga. Ovim će se podaci koji se prenose između usluga šifrirati. Jedini problem ove metode je taj što će, kad se poveća broj mikro usluga, budući da će svaka usluga imati svoj TLS certifikat, programerima biti vrlo teško ažurirati certifikate.
3rdpristup stranačkim aplikacijama
Svi mi pristupamo aplikacijama koje su 3rdstranačke prijave. 3rdparty aplikacije koriste API token koji je korisnik generirao u aplikaciji za pristup potrebnim resursima. Dakle, aplikacije treće strane mogu pristupiti podacima određenih korisnika, a ne vjerodajnice drugih korisnika. Pa, ovo se odnosilo na jednog korisnika. Ali što ako aplikacije trebaju pristupiti podacima više korisnika? Što mislite, kako se uvažava takav zahtjev?
Korištenje OAuth-a
Rješenje je korištenje OAuth-a. Kada koristite OAuth, aplikacija traži od korisnika da odobri 3rdstranačkih aplikacija, da koriste potrebne podatke i generiraju token za njih. Općenito, autorizacijski kod koristi se za traženje tokena kako bi se osiguralo da URL korisnika za povratni poziv nije ukraden.
Dakle, spominjući pristupni token, klijent komunicira s autorizacijskim poslužiteljem, a ovaj poslužitelj ovlašćuje klijenta da spriječi druge da krivotvore identitet klijenta. Dakle, kada koristite Microservices s OAuth, usluge djeluju kao klijent u OAuth arhitekturi radi pojednostavljenja sigurnosnih problema.
Pa, narode, ne bih rekao da su to jedini načini na koje možete osigurati svoje usluge. Mikroservise možete osigurati na mnogo načina na temelju arhitekture aplikacije. Dakle, ako ste netko tko želi izgraditi aplikaciju temeljenu na mikroservisima, imajte na umu da je sigurnost usluga jedan važan čimbenik na koji morate biti oprezni. U tom smislu dolazimo do kraja ovog članka o sigurnosti mikroservisa. Nadam se da vam je ovaj članak bio informativan.
Ako želite naučiti mikroservise i izraditi vlastite programe, pogledajte naše koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da dublje razumijete mikroservise i pomoći vam da postignete ovladavanje tom temom.
Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare ' Sigurnost mikroservisa ”I javit ću vam se.
kako stvoriti paket u javi -