Hamutaro - Hamtaro 4

Security

[Security] SSO(Single Sign-on)에 λŒ€ν•΄μ„œ

carsumin 2023. 12. 26. 10:07

SSO(Single Sign-On)λž€?

https://www.authgear.com/post/customer-sso

  • μ‚¬μš©μžκ°€ μ—¬λŸ¬ μ‹œμŠ€ν…œ λ˜λŠ” μ—¬λŸ¬ μ„œλΉ„μŠ€μ— λŒ€ν•΄ 단일 자격 증λͺ…μœΌλ‘œ λ‘œκ·ΈμΈν•  수 μžˆλŠ” 인증 λ©”μ»€λ‹ˆμ¦˜
  • μ‚¬μš©μžλŠ” ν•œ 번의 둜그인으둜 μ—¬λŸ¬ μ„œλΉ„μŠ€μ— μ ‘κ·Ό κ°€λŠ₯
  • λ‹€μ–‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 간에 둜그인 μ„Έμ…˜μ„ κ³΅μœ ν•  수 있음

 

SSOλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

  • νŽΈμ˜μ„± 및 생산성 ν–₯상 : ν•œ 번의 둜그인으둜 μ•‘μ„ΈμŠ€ ν•  수 μžˆκΈ°λ•Œλ¬Έμ— 둜그인 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°˜λ³΅ν•  ν•„μš”κ°€ μ—†μŒ
  • λΉ„λ°€λ²ˆν˜Έ 관리 μš©μ΄μ„± : ν•˜λ‚˜μ˜ κ°•λ ₯ν•œ λΉ„λ°€λ²ˆν˜Έλ§Œ κ΄€λ¦¬ν•˜λ©΄ 됨
  • λ³΄μ•ˆ κ°•ν™” : SSO μ„œλ²„λ₯Ό 톡해 μ€‘μ•™ν™”λœ 인증 및 μ ‘κ·Ό μ œμ–΄
  • λΉ„μš© 절감 : λΉ„λ°€λ²ˆν˜Έ μž¬μ„€μ • 및 관리와 같은 지원에 μ†Œμš”λ˜λŠ” μ‹œκ°„κ³Ό λΉ„μš©μ„ 쀄일 수 있음

 

SSO λ§€μ»€λ‹ˆμ¦˜

 

1. 인증 ( Authentication )

  • μ‚¬μš©μžκ°€ SSOλ₯Ό μ‚¬μš©ν•˜λŠ” μ–΄λ–€ μ„œλΉ„μŠ€μ— 처음 λ‘œκ·ΈμΈν•˜λ©΄, ν•΄λ‹Ή μ„œλΉ„μŠ€λŠ” μ‚¬μš©μžμ˜ 자격 증λͺ…을 검증
  • 검증이 μ„±κ³΅ν•˜λ©΄ 인증 토큰을 제곡

2. 토큰 λ°œκΈ‰ ( Token Issuance )

  • 인증된 ν›„ μ‚¬μš©μžμ—κ²Œ νŠΉμ •ν•œ ν˜•μ‹μ˜ 토큰을 λ°œκΈ‰
  • 주둜 μ‚¬μš©λ˜λŠ” 토큰 ν˜•μ‹μ—λŠ” JSON Web Token(JWT)κ°€ 있음
  • ν† ν°μ—λŠ” μ‚¬μš©μžμ˜ 식별 정보와 인증에 λŒ€ν•œ κΆŒν•œμ΄ 포함

3. 토큰 전솑 ( Token Transfer )

  • λ°œκΈ‰λœ 토큰은 μ‚¬μš©μžμ˜ ν΄λΌμ΄μ–ΈνŠΈμ— 전솑됨
  • 주둜 μ›Ή λΈŒλΌμš°μ €μ˜ μΏ ν‚€, HTTP헀더, URL λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 전솑

4. λ‹€λ₯Έ μ„œλΉ„μŠ€λ‘œ 토큰 제좜 ( Token Submission )

  • 인증을 μ²˜λ¦¬ν•˜λŠ” SSO μ„œλ²„μ— 토큰 μ œμΆœν•¨

5. 토큰 검증 ( Token Validation )

  • 받은 토큰을 κ²€μ¦ν•˜λŠ” μ„œλΉ„μŠ€λŠ” ν•΄λ‹Ή ν† ν°μ˜ μ„œλͺ…이 μ˜¬λ°”λ₯Έμ§€ 확인함
  • 검증이 λλ‚˜λ©΄ μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜κ³  κΆŒν•œμ„ 뢀여함

6. μ ‘κ·Ό ν—ˆμš© ( Access Granted )

  • 토큰이 μ„±κ³΅μ μœΌλ‘œ κ²€μ¦λ˜λ©΄ ν•΄λ‹Ή μ„œλΉ„μŠ€λŠ” μ‚¬μš©μžμ— λŒ€ν•œ μ„Έμ…˜μ„ μƒμ„±ν•˜κ³ , ν•΄λ‹Ή μ„Έμ…˜μ„ 톡해 μ‚¬μš©μžμ—κ²Œ μ„œλΉ„μŠ€μ— μ ‘κ·Όν•  수 μžˆλŠ” κΆŒν•œμ„ λΆ€μ—¬
  • μ‚¬μš©μžλŠ” λ‹€λ₯Έ μ„œλΉ„μŠ€μ— λŒ€ν•΄μ„œλŠ” 좔가적인 둜그인 κ³Όμ • 없이도 이 μ„Έμ…˜μ„ 톡해 인증을 μœ μ§€ν•  수 있음

 

SSO(Single Sign-On) ν”„λ‘œν† μ½œ

 

 1. OAuth (Open Authorization) 

  • μ„œλ“œνŒŒν‹° μ• ν”Œλ¦¬μΌ€μ΄μ…˜(*μ‚¬μš©μžκ°€ 직접 μ†Œμœ ν•˜κ±°λ‚˜ κ°œλ°œν•˜μ§€ μ•Šμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜)이 λ‹€λ₯Έ μ„œλΉ„μŠ€μ˜ λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ κΆŒν•œ λΆ€μ—¬ λ‹΄λ‹Ή
  • 인증 μ„œλ²„μ—μ„œ κΆŒν•œμ„ λΆ€μ—¬λ°›μ•„ ν΄λΌμ΄μ–ΈνŠΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 접근을 ν—ˆμš©ν•˜λŠ” 토큰을 λ°œκΈ‰
  • 토큰을 μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ¦¬μ†ŒμŠ€ μ„œλ²„μ—μ„œ μ‚¬μš©μžμ˜ 데이터λ₯Ό κ°€μ Έμ˜΄

2. OpenID Connect

  • OAuth ν”„λ‘œν† μ½œμ— 신원 확인을 μΆ”κ°€ν•˜μ—¬ μ‚¬μš©μžμ˜ μ‹€μ œ 신원을 ν™•μΈν•˜λŠ” 데 μ‚¬μš©
  • OAuth의 ν™•μž₯, ID ν† ν°μ΄λΌλŠ” νŠΉλ³„ν•œ μ’…λ₯˜μ˜ 토큰을 μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ˜ μ‹€μ œ 신원을 확인

3. SAML (Security Assertion Markup Language)

  • μ„œλΉ„μŠ€ μ œκ³΅μžμ™€ 신원 제곡자 κ°„ XML 기반의 λ³΄μ•ˆ μ£Όμž₯을 κ΅ν™˜ν•˜μ—¬ μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜λŠ” 데 μ‚¬μš©
  • μ‚¬μš©μžκ°€ μ„œλΉ„μŠ€ μ œκ³΅μžμ— λ‘œκ·ΈμΈν•˜λ €κ³  ν•  λ•Œ 신원 μ œκ³΅μžλŠ” SAML μ£Όμž₯을 μƒμ„±ν•˜μ—¬ μ„œλΉ„μŠ€ μ œκ³΅μžμ—κ²Œ 전솑
  • μ„œλΉ„μŠ€ μ œκ³΅μžλŠ” μ£Όμž₯을 κ²€μ¦ν•˜κ³  μ‚¬μš©μžλ₯Ό 인증

4. JWT (JSON Web Token)

  • 토큰 ν˜•μ‹μœΌλ‘œ 정보λ₯Ό μ•ˆμ „ν•˜κ²Œ μ „λ‹¬ν•˜λŠ”λ° μ‚¬μš©
  • JSON 포맷을 μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ˜ ν΄λ ˆμž„ 정보λ₯Ό 토큰에 λ‹΄μ•„ 전솑
  • 토큰은 μ„œλͺ…λ˜μ–΄ μžˆμ–΄ μ •λ³΄μ˜ 무결성을 보μž₯ν•˜λ©° ν•„μš”μ— 따라 μ•”ν˜Έν™”

'Security' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

JWT (JSON Web Token)  (0) 2025.02.18
[Security] IAM(Identity and Access Management) 인증 μ„œλ²„  (0) 2025.01.19