Tavaszi boltozat
Most jelentettem be az új Learn Spring Security tanfolyamot, beleértve a Spring Security 5 új OAuth2 veremére összpontosító teljes anyagot:
>> ELLENŐRIZZE A FOLYAMATOT1. Áttekintés
HashiCorp páncélszekrénye egy eszköz a titkok tárolására és védelmére. A Vault általában megoldja a titkosítás kezelésével kapcsolatos szoftverfejlesztési biztonsági problémát. Ha többet szeretne megtudni róla, nézze meg itt a cikkünket.
Tavaszi boltozat tavaszi absztrakciókat biztosít a HashiCorp Vault tárházához.
Ebben az oktatóanyagban bemutatunk egy példát arra, hogyan lehet a Vault titkait tárolni és visszakeresni.
2. Maven-függőségek
Először vessünk egy pillantást azokra a függőségekre, amelyekre szükségünk van a Spring Vault használatához:
org.springframework.vault spring-boltozat-mag 2.1.1.FELHASZNÁLÁS
A legfrissebb verziója rugós boltozat-mag megtalálható a Maven Central oldalon.
3. A Vault beállítása
Nézzük át most a Vault konfigurálásához szükséges lépéseket.
3.1. A. Létrehozása VaultTemplate
Titkaink megőrzéséhez azonnal be kell mutatnunk a VaultTemplate amire szükségünk van VaultEndpoint és TokenAuthentication példányok:
VaultTemplate vaultTemplate = new VaultTemplate (új VaultEndpoint (), új TokenAuthentication ("00000000-0000-0000-0000-000000000000"));
3.2. A. Létrehozása VaultEndpoint
Van néhány módszer a példányosításra VaultEndpoint. Vessünk egy pillantást néhányukra.
Az első az, hogy egyszerűen példányosítsuk egy alapértelmezett konstruktor segítségével, amely létrehoz egy alapértelmezett végpontot, amelyre mutat // localhost: 8200:
VaultEndpoint végpont = new VaultEndpoint ();
Egy másik módszer a VaultEndpoint a Vault hosztjának és portjának megadásával:
VaultEndpoint végpont = VaultEndpoint.create ("gazdagép", port);
És végül létrehozhatjuk a Vault URL-ből is:
VaultEndpoint végpont = VaultEndpoint.from (új URI ("vault uri"));
Itt néhány dolgot észre kell venni - a Vault a következő gyökér tokennel lesz konfigurálva 00000000-0000-0000-0000-000000000000 az alkalmazás futtatásához.
Példánkban a TokenAuthentication, de vannak más támogatott hitelesítési módszerek is.
4. A Vault bab konfigurálása a Spring segítségével
Tavasszal többféleképpen konfigurálhatjuk a Széfet. Az egyik a AbstractVaultConfiguration, a másik pedig a használatával EnvironmentVaultConfiguration amely kihasználja a Spring környezeti tulajdonságait.
Most átmegyünk mindkét úton.
4.1. Használata AbstractVaultConfiguration
Hozzunk létre egy osztályt, amely kiterjed AbstractVaultConfiguration, a Spring Vault konfigurálásához:
A @Configuration public class VaultConfig kiterjeszti az AbstractVaultConfiguration {@Override public ClientAuthentication clientAuthentication () {return new TokenAuthentication ("00000000-0000-0000-0000-00000000000000"); } @Orride public VaultEndpoint vaultEndpoint () {return VaultEndpoint.create ("host", 8020); }}
Ez a megközelítés hasonló ahhoz, amit az előző szakaszban láthattunk. Ami más, hogy a Spring Vault segítségével az absztrakt osztály kibővítésével konfiguráltuk a Vault babot AbstractVaultConfiguration.
A konfiguráláshoz csak meg kell adnunk a megvalósítást VaultEndpoint és ClientAuthentication.
4.2. Használata EnvironmentVaultConfiguration
A Spring Vault konfigurálható a EnviromentVaultConfiguration:
@Configuration @PropertySource (value = {"vault-config.properties"}) @Import (value = EnvironmentVaultConfiguration.class) public class VaultEnvironmentConfig {}
EnvironmentVaultConfiguration használja a tavaszit PropertySource a Vault bab konfigurálásához. Csak be kell nyújtanunk a tulajdonságok fájljába néhány elfogadható bejegyzést.
Az összes előre meghatározott tulajdonságról további információk találhatók a hivatalos dokumentációban.
A Széf konfigurálásához legalább néhány tulajdonságra van szükségünk:
vault.uri = // localhost: 8200 vault.token = 00000000-0000-0000-0000-00000000000000
5. Titkok biztosítása
Készítünk egy egyszerűt Hitelesítő adatok osztály, amely felhasználónévvel és jelszóval társul:
public class Hitelesítő adatok {private String felhasználónév; privát karakterlánc jelszó; // szabványos kivitelezők, szerelők, beállítók}
Most nézzük meg, hogyan tudjuk biztosítani a biztonságunkat Hitelesítő adatok objektum a VaultTemplate:
Hitelesítő adatok hitelesítő adatai = új hitelesítő adatok ("felhasználónév", "jelszó"); vaultTemplate.write ("titkos / myapp", hitelesítő adatok);
Ezekkel a sorokkal elkészülve a titkaink most már tárolódnak.
Ezután meglátjuk, hogyan lehet hozzájuk hozzáférni.
6. Titkok elérése
A biztonságos titkokhoz a olvas() módszer ben VaultTemplate, amely visszaadja a VaultResponseSupport válaszként:
VaultResponseSupport response = vaultTemplate .read ("titkos / myapp", Credentials.class); Karakterlánc felhasználónév = response.getData (). GetUsername (); Karakterlánc jelszó = response.getData (). GetPassword ();
Titkos értékeink már készen állnak.
7. Következtetés
Ebben a cikkben megismerhettük a Spring Vault alapjait egy példával, amely bemutatja, hogyan működik a Vault tipikus esetekben.
Szokás szerint az itt bemutatott forráskód megtalálható a GitHubon.
Biztonsági alsó