Proljetni svod

Sigurnost Vrh

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ČAJ

1. 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

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ČAJ

$config[zx-auto] not found$config[zx-overlay] not found