Proljetni svod
Upravo sam najavio novi tečaj Learn Spring Security, uključujući puni materijal usredotočen na novi OAuth2 stog u Spring Security 5:
>> PROVJERITE TEČAJ1. Pregled
Svod HashiCorpa je alat za čuvanje i čuvanje tajni. Trezor općenito rješava sigurnosni problem razvoja softvera kako upravljati tajnama. Da biste saznali više o tome, pogledajte naš članak ovdje.
Proljetni svod pruža proljetne apstrakcije trezora HashiCorp.
U ovom uputstvu pregledat ćemo primjer kako pohraniti i dohvatiti tajne iz trezora.
2. Ovisnosti Mavena
Za početak, pogledajmo ovisnosti koje su nam potrebne za početak rada s Spring Vaultom:
org.springframework.svod opruga-svod-jezgra 2.1.1.OBUSTAŽENJE
Najnovija verzija opruga-svod-jezgra možete pronaći na Maven Central.
3. Konfiguriranje trezora
Prođimo sada korake potrebne za konfiguriranje trezora.
3.1. Stvaranje a Predložak trezora
Da bismo osigurali svoje tajne, morat ćemo napraviti instancu a Predložak trezora za koju trebamo VaultEndpoint i TokenAuthentication primjerci:
VaultTemplate vaultTemplate = novi VaultTemplate (novi VaultEndpoint (), nova TokenAuthentication ("00000000-0000-0000-0000-000000000000"));
3.2. Stvaranje a VaultEndpoint
Postoji nekoliko načina instanciranja VaultEndpoint. Pogledajmo neke od njih.
Prvo je jednostavno instanciranje pomoću zadanog konstruktora, koji će stvoriti zadanu krajnju točku koja pokazuje na // localhost: 8200:
Krajnja točka VaultEndpoint = nova VaultEndpoint ();
Drugi način je stvaranje a VaultEndpoint navođenjem hosta i porta Vault-a:
Krajnja točka VaultEndpoint = VaultEndpoint.create ("host", port);
I na kraju, možemo ga stvoriti i iz URL-a trezora:
Krajnja točka VaultEndpoint = VaultEndpoint.from (novi URI ("uri trezora"));
Ovdje treba primijetiti nekoliko stvari - Trezor će biti konfiguriran s korijenskim tokenom 00000000-0000-0000-0000-000000000000 za pokretanje ove aplikacije.
U našem smo primjeru koristili TokenAuthentication, ali podržane su i druge metode provjere autentičnosti.
4. Konfiguriranje zrna trezora pomoću opruge
S Springom trezor možemo konfigurirati na nekoliko načina. Jedan je produženjem AbstractVaultConfiguration, a drugi je pomoću EnvironmentVaultConfiguration koja koristi svojstva okoliša Spring.
Sada ćemo prijeći u oba smjera.
4.1. Koristeći AbstractVaultConfiguration
Stvorimo klasu koja se proteže AbstractVaultConfiguration, za konfiguriranje Spring Vault:
@Configuration javna klasa VaultConfig proširuje AbstractVaultConfiguration {@Override public ClientAuthentication clientAuthentication () {return new TokenAuthentication ("00000000-0000-0000-0000-000000000000"); } @Override public VaultEndpoint vaultEndpoint () {return VaultEndpoint.create ("host", 8020); }}
Ovaj je pristup sličan onome što smo vidjeli u prethodnom odjeljku. Ono što je drugačije je to što smo koristili Spring Vault za konfiguriranje Vault graha proširujući apstraktnu klasu AbstractVaultConfiguration.
Samo moramo osigurati implementaciju za konfiguriranje VaultEndpoint i ClientAuthentication.
4.2. Koristeći EnvironmentVaultConfiguration
Spring Vault također možemo konfigurirati pomoću EnviromentVaultConfiguration:
@Configuration @PropertySource (value = {"vault-config.properties"}) @Import (value = EnvironmentVaultConfiguration.class) javna klasa VaultEnvironmentConfig {}
EnvironmentVaultConfiguration koristi Spring's PropertySource za konfiguriranje graha trezora. Moramo samo dostaviti datoteku svojstava s nekim prihvatljivim unosima.
Više informacija o svim unaprijed definiranim svojstvima može se naći u službenoj dokumentaciji.
Da bismo konfigurirali Trezor, trebamo barem nekoliko svojstava:
vault.uri = // localhost: 8200 vault.token = 00000000-0000-0000-0000-000000000000
5. Osiguravanje tajni
Stvorit ćemo jednostavan Vjerodajnice klasa koja se preslikava na korisničko ime i lozinku:
vjerodajnice javne klase {privatno korisničko ime niza; privatna lozinka za niz; // standardni konstruktori, getteri, postavljači}
Sada, da vidimo kako možemo osigurati svoje Vjerodajnice objekt pomoću Obrazac trezora:
Vjerodajnice za vjerodajnice = nove vjerodajnice ("korisničko ime", "lozinka"); vaultTemplate.write ("secret / myapp", vjerodajnice);
Nakon dovršetka ovih redaka, naše su tajne sada pohranjene.
Dalje ćemo vidjeti kako im pristupiti.
6. Pristup tajnama
Sigurnim tajnama možemo pristupiti pomoću čitati() metoda u Predložak trezora, koji vraća VaultResponseSupport kao odgovor:
VaultResponseSupport response = vaultTemplate .read ("secret / myapp", Credentials.class); Niz korisničko ime = response.getData (). GetUsername (); Lozinka niza = response.getData (). GetPassword ();
Naše tajne vrijednosti su sada spremne.
7. Zaključak
U ovom smo članku naučili o osnovama Spring Vault-a s primjerom koji pokazuje kako Trezor radi u tipičnim scenarijima.
Kao i obično, ovdje predstavljeni izvorni kod nalazi se na GitHubu.
Dno sigurnosti