πŸ”™λ’€λ‘œκ°€κΈ°

OAuth2와 λ³΄μ•ˆ 고렀사항

OAuth2λ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” λ‹€μŒκ³Ό 같은 λ³΄μ•ˆ 고렀사항듀이 μžˆλ‹€.

  1. 토큰 μ €μž₯: μ•‘μ„ΈμŠ€ 토큰과 λ¦¬ν”„λ ˆμ‹œ 토큰은 κ³΅κ²©μžκ°€ νƒˆμ·¨ν•˜λ©΄ μ‚¬μš©μžμ˜ 데이터λ₯Ό νƒˆμ·¨ν•˜κ±°λ‚˜ μ•…μš©ν•  수 μžˆμœΌλ―€λ‘œ μ•ˆμ „ν•˜κ²Œ 보관해야 ν•œλ‹€. 이λ₯Ό μœ„ν•΄ 토큰을 μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³ , μ‚¬μš© ν›„μ—λŠ” μ‚­μ œν•˜λŠ” λ°©μ•ˆμ΄ μžˆλ‹€.
  2. 토큰 전솑: 토큰은 HTTPS와 같은 μ•”ν˜Έν™”λœ 채널을 톡해 μ „μ†‘λ˜μ–΄μ•Ό ν•œλ‹€. HTTP와 같은 μ•”ν˜Έν™”λ˜μ§€ μ•Šμ€ 채널을 톡해 토큰을 μ „μ†‘ν•˜λ©΄, κ³΅κ²©μžκ°€ 쀑간에 토큰을 νƒˆμ·¨ν•  수 μžˆλ‹€.
  3. λ¦¬λ””λ ‰μ…˜ URI: OAuth2μ—μ„œλŠ” 인증이 μ„±κ³΅ν•œ 후에 ν΄λΌμ΄μ–ΈνŠΈλ‘œ λ¦¬λ””λ ‰μ…˜ν•˜λŠ” URIλ₯Ό μ§€μ •ν•˜λŠ”λ°, 이 Redirect URIλŠ” 사전에 λ“±λ‘λœ κ°’λ§Œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. λ§Œμ•½ 사전에 λ“±λ‘λ˜μ§€ μ•Šμ€ URI둜 λ¦¬λ””λ ‰μ…˜ν•˜λ©΄, κ³΅κ²©μžκ°€ 이λ₯Ό μ΄μš©ν•˜μ—¬ 토큰을 νƒˆμ·¨ν•  수 μžˆλ‹€.
  4. 토큰 생λͺ…μ£ΌκΈ° 관리: μ•‘μ„ΈμŠ€ 토큰은 짧은 생λͺ…μ£ΌκΈ°λ₯Ό κ°€μ§€κ³ , λ¦¬ν”„λ ˆμ‹œ 토큰은 κΈ΄ 생λͺ…μ£ΌκΈ°λ₯Ό 가지도둝 μ„€μ •ν•΄μ•Ό ν•œλ‹€. μ΄λ ‡κ²Œ ν•¨μœΌλ‘œμ¨, μ•‘μ„ΈμŠ€ 토큰이 νƒˆμ·¨λ‹Ήν•˜λ”λΌλ„ κ³΅κ²©μžκ°€ 이λ₯Ό μ΄μš©ν•  수 μžˆλŠ” μ‹œκ°„μ„ μ œν•œν•  수 μžˆλ‹€.

μ£Όμš” λ³΄μ•ˆ μœ„ν˜‘κ³Ό λŒ€μ‘ λ°©μ•ˆ

OAuth2μ—μ„œλŠ” λ‹€μŒκ³Ό 같은 μ£Όμš” λ³΄μ•ˆ μœ„ν˜‘λ“€μ΄ μžˆλ‹€.

  1. 토큰 νƒˆμ·¨: κ³΅κ²©μžκ°€ 토큰을 νƒˆμ·¨ν•˜λ©΄, μ‚¬μš©μžλ₯Ό κ°€μž₯ν•˜κ³  λ¦¬μ†ŒμŠ€ μ„œλ²„μ— μ ‘κ·Όν•  수 μžˆλ‹€. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 토큰은 μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³ , μ•”ν˜Έν™”λœ 채널을 톡해 전솑해야 ν•œλ‹€.
  2. ν”Όμ‹± 곡격: κ³΅κ²©μžκ°€ κ°€μ§œ 인증 νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ–΄ μ‚¬μš©μžμ˜ 아이디와 λΉ„λ°€λ²ˆν˜Έλ₯Ό νƒˆμ·¨ν•˜λŠ” 곡격이닀. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 인증 νŽ˜μ΄μ§€λŠ” HTTPSλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜κ³ , μ‚¬μš©μžλŠ” URL을 ν™•μΈν•˜μ—¬ μ§„μ§œ 인증 νŽ˜μ΄μ§€μΈμ§€ 확인해야 ν•œλ‹€.
  3. 크둜슀 μ‚¬μ΄νŠΈ μš”μ²­ μœ„μ‘°(CSRF) 곡격: κ³΅κ²©μžκ°€ μ‚¬μš©μžλ₯Ό λŒ€μ‹ ν•˜μ—¬ μš”μ²­μ„ λ³΄λ‚΄λŠ” 곡격이닀. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μš”μ²­μ— λŒ€ν•œ 확인(예: CSRF 토큰)을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.

이 외에도 λ‹€μ–‘ν•œ λ³΄μ•ˆ μœ„ν˜‘λ“€μ΄ μžˆμ§€λ§Œ, 이듀은 OAuth2에 ν•œμ •λœ 것이 μ•„λ‹ˆλΌ μ›Ή λ³΄μ•ˆ μ „λ°˜μ— κ΄€λ ¨λœ 것듀이닀. λ”°λΌμ„œ, OAuth2λ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” μ›Ή λ³΄μ•ˆ μ „λ°˜μ— λŒ€ν•œ 이해도 ν•„μš”ν•˜λ‹€.