קפיצת אביב

למעלה אבטחה

הרגע הכרזתי על הקורס החדש ללמוד Spring Spring Security, כולל החומר המלא שהתמקד בערמת OAuth2 החדשה ב- Spring Security 5:

>> בדוק את הקורס

1. סקירה כללית

הכספת של HashiCorp הוא כלי לאחסון ואבטחת סודות. הכספת, באופן כללי, פותרת את בעיית האבטחה בפיתוח תוכנה כיצד לנהל סודות. למידע נוסף על כך, עיין במאמר שלנו כאן.

קפיצת אביב מספק הפשטות באביב לכספת של HashiCorp.

במדריך זה נעבור על דוגמה כיצד לאחסן ולאחזר סודות מהכספת.

2. תלות Maven

ראשית, בואו נסתכל על התלות הדרושה לנו בכדי להתחיל לעבוד עם קפיצי אביב:

  org.springframework.vault spring-core-core 2.1.1.RELEASE 

הגרסה האחרונה של אביב-קמרון-ליבת ניתן למצוא ב Maven Central.

3. קביעת תצורה של הכספת

בואו נעבור את השלבים הדרושים להגדרת תצורת הכספת.

3.1. ליצור VaultTemplate

כדי להבטיח את סודותינו, נצטרך ליצור א VaultTemplate בשביל זה אנחנו צריכים VaultEndpoint ו אימות אסימון מקרים:

VaultTemplate vaultTemplate = VaultTemplate חדש (VaultEndpoint חדש (), TokenAuthentication חדש ("00000000-0000-0000-0000-000000000000"));

3.2. ליצור VaultEndpoint

יש כמה דרכים לאינסטינציה VaultEndpoint. בואו נסתכל על כמה מהם.

הראשון הוא פשוט ליצור אותו באמצעות קונסטרוקטור ברירת מחדל, שייצור נקודת קצה המוגדרת כברירת מחדל // localhost: 8200:

VaultEndpoint endpoint = VaultEndpoint חדש ();

דרך נוספת היא ליצור a VaultEndpoint על ידי ציון המארח והיציאה של הכספת:

נקודת סיום VaultEndpoint = VaultEndpoint.create ("מארח", יציאה);

ולבסוף, אנו יכולים גם ליצור אותו מכתובת האתר של הכספת:

VaultEndpoint endpoint = VaultEndpoint.from (URI חדש ("קמרון אורי"));

יש לשים לב לכמה דברים - הכספת תוגדר עם אסימון שורש של 00000000-0000-0000-0000-000000000000 להפעלת יישום זה.

בדוגמה שלנו השתמשנו ב- אימות אסימון, אך ישנן גם שיטות אימות אחרות הנתמכות.

4. קביעת תצורה של שעועית הכספת באמצעות אביב

עם אביב, אנו יכולים להגדיר את הכספת בכמה דרכים. האחת היא על ידי הרחבת ה- תקציר VaultConfiguration, והשני הוא באמצעות EnvironmentVaultConfiguration העושה שימוש במאפייני הסביבה של אביב.

כעת נעבור לשני הכיוונים.

4.1. באמצעות AbstractVaultConfiguration

בואו ניצור כיתה שמתארכת תקציר VaultConfiguration, להגדרת תצורת קפיצה באביב:

המחלקה הציבורית @Configuration VaultConfig מרחיב את AbstractVaultConfiguration {@Override clientAuthentication clientAuthentication () {החזר TokenAuthentication חדש ("00000000-0000-0000-0000-000000000000"); } @Override VaultEndpoint ציבורי vaultEndpoint () {החזר VaultEndpoint.create ("מארח", 8020); }}

גישה זו דומה למה שראינו בפרק הקודם. מה ששונה הוא שהשתמשנו בכספת אביב כדי להגדיר את שעועית הכספת על ידי הרחבת הכיתה המופשטת AbstractVaultConfiguration.

אנחנו רק צריכים לספק את היישום כדי להגדיר VaultEndpoint ו אימות לקוח.

4.2. באמצעות EnvironmentVaultConfiguration

אנו יכולים גם להגדיר את קפיצת הכספת באמצעות EnviromentVaultConfiguration:

@Configuration @PropertySource (value = {"vault-config.properties"}) @ Import (value = EnvironmentVaultConfiguration.class) בכיתה ציבורית VaultEnvironmentConfig {}

EnvironmentVaultConfiguration עושה שימוש בספרינגס PropertySource להגדרת תצורת שעועית הכספת. אנחנו רק צריכים לספק לקובץ המאפיינים כמה ערכים מקובלים.

מידע נוסף על כל המאפיינים שהוגדרו מראש ניתן למצוא בתיעוד הרשמי.

כדי להגדיר את הכספת, אנו זקוקים לפחות לכמה מאפיינים:

vault.uri = // localhost: 8200 vault.token = 00000000-0000-0000-0000-000000000000

5. אבטחת סודות

ניצור פשוט אישורים מחלקה הממפה לשם משתמש וסיסמה:

אישורי מחלקה ציבורית {שם משתמש מחרוזת פרטי; סיסמת מחרוזת פרטית; // בונים סטנדרטיים, גטרים, סטרים}

עכשיו, בואו נראה איך נוכל לאבטח את שלנו אישורים אובייקט באמצעות VaultTemplate:

אישורי אישורים = אישורים חדשים ("שם משתמש", "סיסמה"); vaultTemplate.write ("סוד / myapp", אישורים);

עם השלמת שורות אלה, סודותינו נשמרים כעת.

לאחר מכן נראה כיצד לגשת אליהם.

6. גישה לסודות

אנו יכולים לגשת לסודות המאובטחים באמצעות לקרוא() שיטה ב VaultTemplate, שמחזירה את VaultResponseSupport כתגובה:

VaultResponseSupport response = vaultTemplate .read ("סוד / myapp", Credentials.class); מחרוזת שם משתמש = respons.getData (). GetUsername (); סיסמת מחרוזת = response.getData (). GetPassword ();

הערכים הסודיים שלנו מוכנים כעת.

7. מסקנה

במאמר זה למדנו על היסודות של קפיצי אביב עם דוגמה המראה כיצד הכספת פועלת בתרחישים טיפוסיים.

כרגיל, את קוד המקור המוצג כאן ניתן למצוא ב- GitHub.

תחתית אבטחה

הרגע הכרזתי על הקורס החדש ללמוד Spring Spring Security, כולל החומר המלא שהתמקד בערמת OAuth2 החדשה ב- Spring Security 5:

>> בדוק את הקורס

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