[Spring Security] #1 μΈμ¦(Authentication) κ³Ό μΈκ°(Authorization)μ μ°¨μ΄
μλ‘
μ½λμ μ€νλ¦°νΈ νΈλλ μ΄λλ§ 5κ°μ μ°¨μ μ μ΄λ€μμ΅λλ€.
μ€νλ¦°νΈ λ―Έμ μ΄λ νλ‘μ νΈμμλ λ‘κ·ΈμΈ λ‘μ§κ³Ό κ΄λ ¨ν΄ 보μμ ν¬κ² μ κ²½ μ°μ§ μμλλ°
μ΄λ²μ Spring Securityμ λν΄ λ°°μ°κΈ° μμνμ΄μ.
κ°μ λ΄μ©κ³Ό λ΄κ° μ΄μ μ μκ³ μλ λ΄μ©, μλ‘ μ‘°μ¬ν λ΄μ©μ ν©μ³ λΈλ‘κ·Έ ν¬μ€ν μΌλ‘ μ 리νλ κ²μ΄ λͺ©νμ λλ€.
μ΄μ μλ λκ° λ³Όκ±°λΌ μκ° μ νκ³ κ°μΈμ μΌλ‘ 곡λΆνλ κ±°λΌ '-μ΄λ€'λΌλ μ΄λ―Έλ₯Ό λ§μ΄ μΌλλ°
μΆν λ©΄μ μ λλΉν΄ λꡬμκ² μλ €μ£Όλ―μ΄ κΈμ μ¨λ³΄κ³ μΆμ΄ μ΄ν¬κ° λ°λμμ΅λλ€.
λκΉμ§ ν¬μ€ν μ μ μ¨ λκ΅°κ°μκ² μ€μ λ‘ λμμ΄ λλ©΄ μ’κ² λ€μ.
μμμμ!
Spring Securityλ₯Ό μ΄ν΄νκΈ° μν΄μ
μ΄ λ κ°μ§ κ°λ μ ꡬλΆν μ μμ΄μΌ ν©λλ€.
π μΈμ¦(Authentication)
μΈμ¦μ΄λ, λ΄κ° λꡬμΈμ§, μ¬μ©μκ° μμ μ΄ λꡬμΈμ§λ₯Ό μμ€ν μ μ¦λͺ νλ κ³Όμ μ λλ€.
μ¦, ν΄λΌμ΄μΈνΈμ μ μμ νμΈνλ μ μ°¨μ λλ€.
λνμ μΈ μλ‘ λ‘κ·ΈμΈ κ³Όμ μ΄ λ°λ‘ μΈμ¦μ ν΄λΉν©λλ€.
λ€μ΄λ²μμ μ μ μ λ³΄κ° νμν λͺλͺ κΈ°λ₯μ μ°κ³ μΆλ€λ©΄(ex λ©μΌ μ½κΈ°, μΌννκΈ°..)
λ€μ΄λ²μμλ λΉμ°ν νμ¬ μ μν μ¬μ©μκ° λꡬμΈμ§ μμμΌ ν©λλ€. μλ₯Ό λ€μ΄, λ€μ΄λ²μμ λ©μΌμ μ½κ±°λ μΌνμ νλ €λ©΄ λ€μ΄λ²λ νμ¬ μ μν μ¬μ©μκ° λꡬμΈμ§ μμμΌ ν©λλ€.
μ¬μ©μκ° λ€μ΄λ²μκ² μμ μ΄ λꡬμΈμ§ μλ €μ£Όλ λ°©λ²μ μμ΄λμ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ κ²μ΄μ£ .
μ΄ μμ΄λμ λΉλ°λ²νΈλ λ€μ΄λ²μ μ μ₯μμλ μ¬μ©μλ₯Ό μλ³νκΈ° μν μΈμ¦ μμκ° λ©λλ€.
κ°μ ν μμ΄λμ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ©΄ λ€μ΄λ²λ λ΄κ° λꡬμΈμ§ μκ² λκ³ , λͺλͺ κΈ°λ₯λ€μ μΈ μ μκ² ν΄μ€λλ€.
π μΈκ°(Authorization)
μΈμ¦μ ν΅ν΄ μ¬μ©μμ μ μμ΄ νμΈλλ©΄, μλ²λ κ·Έ μ¬μ©μμκ² μ΄λ€ 리μμ€μ μ κ·Όν μ μλμ§ νλ¨νκ² λ©λλ€.
κ·Έλ λ€λ©΄ μ°λ¦¬ μλΉμ€μ μ μ μΈ κ²μ μκ³ μμΌλ κ·Έμ λ§λ 리μμ€μ μ κ·Όνλλ‘ νλ½ν΄μ€λλ€.
μ¦, μΈκ°λ μ¬μ©μμ μ κ·Ό κΆνμ νμΈνκ³ νμν κΆνμ λΆμ¬νλ κ³Όμ μ λλ€.
λ‘κ·ΈμΈμ νλ€κ³ , μλΉμ€μ λͺ¨λ κΈ°λ₯μ μΈ μ μλ κ²μ μλλλ€.
μλ²κ° λμκ² μ κ·Όν΄λ λλ€κ³ νλ½ν κΈ°λ₯λ§ μΈ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λ§μ μλΉμ€λ€μ κ΄λ¦¬μ κ³μ κ³Ό μ¬μ©μ κ³μ μ΄ μμ΅λλ€.
μ΄ κ²½μ° μλ²μμλ λ μ μ λ₯Ό κ°κ° ADMIN ROLEκ³Ό USER ROLEλ‘ κ΅¬λΆν©λλ€.
μΈν°λ· μΌνλͺ°μμ κ΄λ¦¬μ(νλ§€μ)λ μν νλ§€ νμ΄μ§λ₯Ό μ¬λ¦¬κ±°λ νλ§€ μν λ°μ΄ν° λ±μ νμΈνκ³ ,
μΌλ° μ¬μ©μλ μνμ ꡬ맀νκ±°λ μ₯λ°κ΅¬λμ λ΄μ΅λλ€.
μΌλ° μ¬μ©μλ νλ§€ μνμ λ±λ‘ν μ μμ΅λλ€. μ΄λ κ° κ³μ μ λΆμ¬λ ROLEμ λ°λΌ μ κ·Ό κ°λ₯ν 리μμ€κ° λ¬λΌμ§κΈ° λλ¬Έμ λλ€.
μ΄μ²λΌ ROLEμ λ§μΆ° κ°μ ν μ μλ νλμ΄ λ€λ₯΄κ³ , μλ²μμλ μΈμ¦μ ν΅ν΄ μ μ μ μ μμ νμΈνκ³ , κ·Έμ λ§λ μΈκ°λ₯Ό λ΄λ¦½λλ€.
μμ½νμλ©΄, μΈμ¦μ μ¬μ©μμ μ μμ νμΈνκ³ μΈκ°λ μΈμ¦λ μ¬μ©μκ° μ΄λ€ μμ μ μνν μ μλμ§λ₯Ό κ²°μ νλ νλ‘μΈμ€μ λλ€.
μ΄ λ κ°μ§ μμλ ν¨κ» μ¬μ©λμ΄ μ 보 μμ€ν κ³Ό λ°μ΄ν°μ 보μμ μ μ§νλ©° μ κ·Ό μ μ΄λ₯Ό κ΄λ¦¬νλ λ° μ€μν μν μ ν©λλ€.
- μΈμ¦(Authentication): μ¬μ©μκ° λꡬμΈμ§ νμΈνλ κ³Όμ (ex. λ‘κ·ΈμΈ)
- μΈκ°(Authorization): νμΈλ μ¬μ©μμκ² μ΄λ€ κΆνμ΄ μλμ§ κ²°μ νλ κ³Όμ (ex. κ΄λ¦¬μ/μ¬μ©μ κΈ°λ₯ μ°¨μ΄)
μ°Έκ³ μλ£