λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸŒμ›Ή 개발

인증(Authentication)κ³Ό 인가(Authorization)의 차이점

인증(Authentication)κ³Ό 인가(Authorization)λŠ” λ³΄μ•ˆ μ‹œμŠ€ν…œμ—μ„œ μ€‘μš”ν•œ 두 κ°œλ…μœΌλ‘œ, λ‘˜ λ‹€ λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ μš©μ–΄μ΄μ§€λ§Œ κ·Έ μ˜λ―Έμ™€ λͺ©μ μ΄ λ‹€λ¦…λ‹ˆλ‹€.

 

λ‘˜ λ‹€ Auth~둜 μ‹œμž‘μ„ ν•˜λ‹€ λ³΄λ‹ˆ λ„ˆλ¬΄ ν—·κ°ˆλ¦¬λŠ”λ°, ν•œμžλ‘œ 보면 μ’€ 이해가 κ°‘λ‹ˆλ‹€.

  • 인증 (인정할 인 θͺ, 증λͺ…ν•  증 θ­‰): μ–΄λ–€ μ‚¬λžŒμ΄λ‚˜ 사물이 μ§„μ§œμž„μ„ μΈμ •ν•˜κ³  증λͺ…ν•˜λŠ” 것.
  • 인가 (인정할 인 θͺ, ν—ˆλ½ν•  κ°€ 可): μ–΄λ–€ ν–‰μœ„λ‚˜ μš”μ²­μ— λŒ€ν•΄ μΈμ •ν•˜κ³  ν—ˆλ½ν•˜λŠ” 것.

 

λΆ€λ„λŸ½μ§€λ§Œ 인증과 μΈκ°€μ˜ 차이λ₯Ό λͺ…ν™•ν•˜κ²Œ μ •μ˜ν•  수 μ—†μ—ˆμ§€λ§Œ, OAuth 인증 ν”„λ‘œν† μ½œμ„ κ³΅λΆ€ν•˜λ‹€κ°€ λ„μ μ—¬λ΄…λ‹ˆλ‹€-!

 


πŸ”μΈμ¦ (Authentication)πŸ”“

 

μ •μ˜

인증은 μ‚¬μš©μžκ°€ λˆ„κ΅¬μΈμ§€λ₯Ό ν™•μΈν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. 즉, μ‚¬μš©μžμ˜ 신원을 ν™•μΈν•˜λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.

 

λͺ©μ 

μ‹œμŠ€ν…œμ€ μ‚¬μš©μžκ°€ μ£Όμž₯ν•˜λŠ” 신원이 μ‹€μ œλ‘œ κ·Έ μ‚¬μš©μžμ™€ μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

 

방법

일반적으둜 μ‚¬μš©μž 이름과 λΉ„λ°€λ²ˆν˜Έ, 생체 인식(지문, μ–Όκ΅΄ 인식 λ“±), 인증 μ•± λ˜λŠ” 토큰 등을 μ‚¬μš©ν•˜μ—¬ 신원을 ν™•μΈν•©λ‹ˆλ‹€.

 

μ˜ˆμ‹œ

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

 


πŸ‘©πŸ»‍πŸ’»μΈκ°€ (Authorization)βœ”οΈ

μ •μ˜

μΈκ°€λŠ” 인증된 μ‚¬μš©μžκ°€ νŠΉμ • λ¦¬μ†ŒμŠ€λ‚˜ κΈ°λŠ₯에 μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ λΆ€μ—¬λ°›μ•˜λŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.

 

λͺ©μ 

μ‹œμŠ€ν…œμ€ μ‚¬μš©μžκ°€ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•  κΆŒν•œμ΄ μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

 

방법

κΆŒν•œμ€ 일반적으둜 μ—­ν•  기반 μ ‘κ·Ό μ œμ–΄(RBAC) λ˜λŠ” κΆŒν•œ λͺ©λ‘(ACL)을 톡해 κ΄€λ¦¬λ©λ‹ˆλ‹€.

 

μ˜ˆμ‹œ

μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈμ„ μ™„λ£Œν•œ ν›„, νŠΉμ • νŽ˜μ΄μ§€λ‚˜ κΈ°λŠ₯(예: κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ)에 μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ΄ μžˆλŠ”μ§€ 확인.

OAuthλ₯Ό μ‚¬μš©ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‚¬μš©μž λŒ€μ‹  νŠΉμ • API에 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν—ˆμš©.

 

 

μ–„μ½” μœ νŠœλΈŒμ—μ„œλŠ” 인가λ₯Ό μ–΄μ„œμ™€μ΄μ œμ΄μ…˜~으둜 μ™Έμš°λ©΄ μ’‹λ‹€κ³  ν•˜μ…¨λŠ”λ° μ§„μ§œ 잘 μ™Έμ›Œμ§ πŸ‘πŸ»

 


OAuthμ—μ„œμ˜ 인증과 인가

OAuthλŠ” 주둜 인가λ₯Ό λ‹€λ£¨λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.

OAuthλ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜(ν΄λΌμ΄μ–ΈνŠΈ)은 아이디/λΉ„λ°€λ²ˆν˜Έλ₯Ό κ°–κ³  μžˆλŠ” μ§„μ§œ μ‚¬μš©μž λŒ€μ‹ 

λ¦¬μ†ŒμŠ€ μ„œλ²„(Google, Facebook)의 보호된 λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ μ–»μŠ΅λ‹ˆλ‹€. 

 

  1. μ‚¬μš©μž 인증: μ‚¬μš©μžλŠ” OAuth 제곡자(예: Google, Facebook)에 λ‘œκ·ΈμΈν•˜μ—¬ μžμ‹ μ„ 인증
  2. κΆŒν•œ λΆ€μ—¬ (인가): μ‚¬μš©μžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μžμ‹ μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λŠ” 것을 ν—ˆμš©
  3. μ•‘μ„ΈμŠ€ 토큰 λ°œκΈ‰: OAuth μ œκ³΅μžλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ•‘μ„ΈμŠ€ 토큰을 λ°œκΈ‰. 이 토큰은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‚¬μš©μž λŒ€μ‹  보호된 λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ μ œκ³΅ν•¨.

μš”μ•½

  • 인증 (Authentication): μ‚¬μš©μžκ°€ λˆ„κ΅¬μΈμ§€λ₯Ό ν™•μΈν•˜λŠ” κ³Όμ •
  • 인가 (Authorization): 인증된 μ‚¬μš©μžκ°€ νŠΉμ • λ¦¬μ†ŒμŠ€λ‚˜ κΈ°λŠ₯에 μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ ν™•μΈν•˜λŠ” κ³Όμ •