🌿Spring

[Spring Security] #1 인증(Authentication) κ³Ό 인가(Authorization)의 차이

μ†Œμ˜ πŸ€ 2025. 5. 13. 18:52

μ„œλ‘ 

μ½”λ“œμž‡ μŠ€ν”„λ¦°νŠΈ νŠΈλž™λ„ μ–΄λŠλ§ 5κ°œμ›” 차에 μ ‘μ–΄λ“€μ—ˆμŠ΅λ‹ˆλ‹€.

μŠ€ν”„λ¦°νŠΈ λ―Έμ…˜μ΄λ‚˜ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 둜그인 둜직과 κ΄€λ ¨ν•΄ λ³΄μ•ˆμ„ 크게 μ‹ κ²½ μ“°μ§€ μ•Šμ•˜λŠ”λ°

μ΄λ²ˆμ— Spring Security에 λŒ€ν•΄ 배우기 μ‹œμž‘ν–ˆμ–΄μš”.

κ°•μ˜ λ‚΄μš©κ³Ό λ‚΄κ°€ 이전에 μ•Œκ³  있던 λ‚΄μš©, μƒˆλ‘œ μ‘°μ‚¬ν•œ λ‚΄μš©μ„ 합쳐 λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μœΌλ‘œ μ •λ¦¬ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.

 

μ΄μ „μ—λŠ” λˆ„κ°€ 볼거라 생각 μ•ˆ ν•˜κ³  개인적으둜 κ³΅λΆ€ν•˜λŠ” 거라 '-이닀'λΌλŠ” μ–΄λ―Έλ₯Ό 많이 μΌλŠ”λ°

μΆ”ν›„ 면접을 λŒ€λΉ„ν•΄ λˆ„κ΅¬μ—κ²Œ μ•Œλ €μ£Όλ“―μ΄ 글을 써보고 μ‹Άμ–΄ μ–΄νˆ¬κ°€ λ°”λ€Œμ—ˆμŠ΅λ‹ˆλ‹€.

 

λκΉŒμ§€ ν¬μŠ€νŒ…μ„ 잘 써 λˆ„κ΅°κ°€μ—κ²Œ μ‹€μ œλ‘œ 도움이 되면 μ’‹κ² λ„€μš”.

μ•„μžμ•„μž!

 


 

Spring Securityλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œ

이 두 κ°€μ§€ κ°œλ…μ€ ꡬ뢄할 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ”“ 인증(Authentication)

μΈμ¦μ΄λž€, λ‚΄κ°€ λˆ„κ΅¬μΈμ§€, μ‚¬μš©μžκ°€ μžμ‹ μ΄ λˆ„κ΅¬μΈμ§€λ₯Ό μ‹œμŠ€ν…œμ— 증λͺ…ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.

즉, ν΄λΌμ΄μ–ΈνŠΈμ˜ 신원을 ν™•μΈν•˜λŠ” μ ˆμ°¨μž…λ‹ˆλ‹€.

 

λŒ€ν‘œμ μΈ 예둜 둜그인 과정이 λ°”λ‘œ 인증에 ν•΄λ‹Ήν•©λ‹ˆλ‹€.

 

 

λ„€μ΄λ²„μ—μ„œ μœ μ € 정보가 ν•„μš”ν•œ λͺ‡λͺ‡ κΈ°λŠ₯을 μ“°κ³  μ‹Άλ‹€λ©΄(ex 메일 읽기, μ‡Όν•‘ν•˜κΈ°..)

λ„€μ΄λ²„μ—μ„œλŠ” λ‹Ήμ—°νžˆ ν˜„μž¬ μ ‘μ†ν•œ μ‚¬μš©μžκ°€ λˆ„κ΅¬μΈμ§€ μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ„€μ΄λ²„μ—μ„œ 메일을 μ½κ±°λ‚˜ 쇼핑을 ν•˜λ €λ©΄ λ„€μ΄λ²„λŠ” ν˜„μž¬ μ ‘μ†ν•œ μ‚¬μš©μžκ°€ λˆ„κ΅¬μΈμ§€ μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.

 

μ‚¬μš©μžκ°€ λ„€μ΄λ²„μ—κ²Œ μžμ‹ μ΄ λˆ„κ΅¬μΈμ§€ μ•Œλ €μ£ΌλŠ” 방법은 아이디와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λŠ” 것이죠.

이 아이디와 λΉ„λ°€λ²ˆν˜ΈλŠ” λ„€μ΄λ²„μ˜ μž…μž₯μ—μ„œλŠ” μ‚¬μš©μžλ₯Ό μ‹λ³„ν•˜κΈ° μœ„ν•œ 인증 μš”μ†Œκ°€ λ©λ‹ˆλ‹€.

 

κ°€μž…ν•œ 아이디와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λ©΄ λ„€μ΄λ²„λŠ” λ‚΄κ°€ λˆ„κ΅¬μΈμ§€ μ•Œκ²Œ 되고, λͺ‡λͺ‡ κΈ°λŠ₯듀을 μ“Έ 수 있게 ν•΄μ€λ‹ˆλ‹€.

πŸ‘Œ 인가(Authorization)

인증을 톡해 μ‚¬μš©μžμ˜ 신원이 ν™•μΈλ˜λ©΄, μ„œλ²„λŠ” κ·Έ μ‚¬μš©μžμ—κ²Œ μ–΄λ–€ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλŠ”μ§€ νŒλ‹¨ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

κ·Έλ ‡λ‹€λ©΄ 우리 μ„œλΉ„μŠ€μ˜ μœ μ €μΈ 것을 μ•Œκ³  μžˆμœΌλ‹ˆ 그에 λ§žλŠ” λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λ„λ‘ ν—ˆλ½ν•΄μ€λ‹ˆλ‹€.

즉, μΈκ°€λž€ μ‚¬μš©μžμ˜ μ ‘κ·Ό κΆŒν•œμ„ ν™•μΈν•˜κ³  ν•„μš”ν•œ κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.

 

λ‘œκ·ΈμΈμ„ ν–ˆλ‹€κ³ , μ„œλΉ„μŠ€μ˜ λͺ¨λ“  κΈ°λŠ₯을 μ“Έ 수 μžˆλŠ” 것은 μ•„λ‹™λ‹ˆλ‹€.

μ„œλ²„κ°€ λ‚˜μ—κ²Œ 접근해도 λœλ‹€κ³  ν—ˆλ½ν•œ κΈ°λŠ₯만 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

예λ₯Ό λ“€μ–΄, λ§Žμ€ μ„œλΉ„μŠ€λ“€μ€ κ΄€λ¦¬μž 계정과 μ‚¬μš©μž 계정이 μžˆμŠ΅λ‹ˆλ‹€.

이 경우 μ„œλ²„μ—μ„œλŠ” 두 μœ μ €λ₯Ό 각각 ADMIN ROLEκ³Ό USER ROLE둜 κ΅¬λΆ„ν•©λ‹ˆλ‹€.

 

인터넷 μ‡Όν•‘λͺ°μ—μ„œ κ΄€λ¦¬μž(판맀자)λŠ” μƒν’ˆ 판맀 νŽ˜μ΄μ§€λ₯Ό μ˜¬λ¦¬κ±°λ‚˜ 판맀 μƒνƒœ 데이터 등을 ν™•μΈν•˜κ³ ,

일반 μ‚¬μš©μžλŠ” μƒν’ˆμ„ κ΅¬λ§€ν•˜κ±°λ‚˜ μž₯λ°”κ΅¬λ‹ˆμ— λ‹΄μŠ΅λ‹ˆλ‹€.

일반 μ‚¬μš©μžλŠ” 판맀 μƒν’ˆμ„ 등둝할 수 μ—†μŠ΅λ‹ˆλ‹€. μ΄λŠ” 각 계정에 λΆ€μ—¬λœ ROLE에 따라 μ ‘κ·Ό κ°€λŠ₯ν•œ λ¦¬μ†ŒμŠ€κ°€ 달라지기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

 

이처럼 ROLE에 맞좰 각자 ν•  수 μžˆλŠ” 행동이 λ‹€λ₯΄κ³ , μ„œλ²„μ—μ„œλŠ” 인증을 톡해 μœ μ €μ˜ 신원을 ν™•μΈν•˜κ³ , 그에 λ§žλŠ” 인가λ₯Ό λ‚΄λ¦½λ‹ˆλ‹€.

 


 

μš”μ•½ν•˜μžλ©΄, 인증은 μ‚¬μš©μžμ˜ 신원을 ν™•μΈν•˜κ³  μΈκ°€λŠ” 인증된 μ‚¬μš©μžκ°€ μ–΄λ–€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλŠ”μ§€λ₯Ό κ²°μ •ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€.

이 두 κ°€μ§€ μš”μ†ŒλŠ” ν•¨κ»˜ μ‚¬μš©λ˜μ–΄ 정보 μ‹œμŠ€ν…œκ³Ό λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„ μœ μ§€ν•˜λ©° μ ‘κ·Ό μ œμ–΄λ₯Ό κ΄€λ¦¬ν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

 

 

  • 인증(Authentication): μ‚¬μš©μžκ°€ λˆ„κ΅¬μΈμ§€ ν™•μΈν•˜λŠ” κ³Όμ • (ex. 둜그인)
  • 인가(Authorization): ν™•μΈλœ μ‚¬μš©μžμ—κ²Œ μ–΄λ–€ κΆŒν•œμ΄ μžˆλŠ”μ§€ κ²°μ •ν•˜λŠ” κ³Όμ • (ex. κ΄€λ¦¬μž/μ‚¬μš©μž κΈ°λŠ₯ 차이)

 

참고자료

https://velog.io/@qjqdn1568/%EC%9D%B8%EC%A6%9D%EA%B3%BC-%EC%9D%B8%EA%B0%80%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%9E%90%EC%84%B8%ED%9E%88-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

λ°˜μ‘ν˜•