๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

OAuth 2.0์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹ ์„ ํƒ ์‹œ ๊ณ ๋ คํ•  ์ 

mrmount 2024. 10. 18.

 

 

OAuth 2.0์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹ ์„ ํƒ ์‹œ ๊ณ ๋ คํ•  ์ 

 

1. ๋ณด์•ˆ ์š”๊ตฌ ์‚ฌํ•ญ

  • ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹ (Authorization Code Grant)์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
  • PKCE ์‚ฌ์šฉ ์„ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ์˜ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์ถ”์ฒœ ํ•ฉ๋‹ˆ๋‹ค.
  • Implicit Grant๋Š” ๋ณด์•ˆ ์ด์Šˆ๋กœ ์ธํ•ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, OAuth 2.1์—์„œ๋Š” ์‚ฌ์šฉ์ด ๊ธˆ์ง€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ํ˜•์— ๋”ฐ๋ฅธ ์„ ํƒ

  • ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : Authorization Code Grant ์‚ฌ์šฉ
  • ๋ชจ๋ฐ”์ผ ๋ฐ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : Authorization Code Grant + PKCE
  • API ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹  : Client Credentials Grant ํ™œ์šฉ

3. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX) ์ตœ์ ํ™”

  • OAuth๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜๋ณต ์ž…๋ ฅํ•˜์ง€ ์•Š๋„๋ก ํ•ด์ฃผ๋ฉฐ, ์†Œ์…œ ๋กœ๊ทธ์ธ ์„ ํ†ตํ•ด ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ ์‹œ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ๋งŒ ์š”์ฒญํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์‹ ๋ขฐ ๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 


 

OAuth 2.1์˜ ํ–ฅํ›„ ์ „๋ง๊ณผ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ํŒ

 

1. OAuth 2.1์˜ ๋„์ž… ์ฆ๊ฐ€

  • OAuth 2.1 ์€ ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๊ธฐ์—…๊ณผ ์„œ๋น„์Šค์—์„œ ๋น ๋ฅด๊ฒŒ ์ฑ„ํƒ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • PKCE๋ฅผ ํ™œ์šฉํ•œ ๋ชจ๋ฐ”์ผ ์•ฑ ๋ณด์•ˆ ๊ฐ•ํ™” ๊ฐ€ ํ•„์ˆ˜์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

2. Zero Trust ํ™˜๊ฒฝ๊ณผ OAuth ํ†ตํ•ฉ

  • Zero Trust ๋ณด์•ˆ ๋ชจ๋ธ ์ด ๋ถ€์ƒํ•˜๋ฉด์„œ OAuth์™€ ๊ฐ™์€ ์ •๊ตํ•œ ์ธ์ฆ/์ธ๊ฐ€ ์‹œ์Šคํ…œ ์˜ ํ•„์š”์„ฑ์ด ์ปค์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • OAuth๋Š” ๋‹จ์ผ ์ธ์ฆ(Single Sign-On) ๊ณผ ํ†ตํ•ฉํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, API ํ˜ธ์ถœ์˜ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

 


 

๊ฒฐ๋ก : ์˜ฌ๋ฐ”๋ฅธ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹ ์„ ํƒ๊ณผ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ํ†ตํ•œ ์„ฑ๊ณต์ ์ธ OAuth ๊ตฌํ˜„

OAuth 2.0์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹์€ ๊ฐ๊ฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์ตœ์ ํ™” ๋œ ์„ ํƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Authorization Code Grant ๋Š” ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์„ฑ์„ ๋ชจ๋‘ ์ œ๊ณตํ•˜๋ฉฐ, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” PKCE ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์—๋Š” Client Credentials Grant ๊ฐ€ ์ ํ•ฉํ•˜๋ฉฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ œ๊ณต ๋ฐฉ์‹์€ ๋” ์ด์ƒ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์‹  OAuth 2.1 ํ‘œ์ค€ ์„ ์ค€์ˆ˜ํ•˜๋ฉฐ, ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ชจ๋‘ ๊ณ ๋ คํ•œ ์„ค๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 


 

FAQ

Q1. ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ PKCE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
A1. PKCE๋Š” Access Token ํƒˆ์ทจ ๋ฐฉ์ง€ ๋ฅผ ์œ„ํ•ด ๊ณต๊ฐœ ํด๋ผ์ด์–ธํŠธ(๋ชจ๋ฐ”์ผ ์•ฑ)์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Q2. OAuth 2.1์—์„œ ๊ถŒ์žฅ๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
A2. Implicit Grant ์™€ Resource Owner Password Credentials Grant ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋กœ ์ธํ•ด ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Q3. ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์— ์ ํ•ฉํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
A3. Client Credentials Grant ๊ฐ€ ์„œ๋ฒ„ ๊ฐ„ API ํ†ต์‹ ์— ์ ํ•ฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

Q4. OAuth์™€ OpenID Connect๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”?
A4. OAuth๋Š” ์ธ๊ฐ€(Authorization) ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, OpenID Connect๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ(Authentication) ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

Q5. ์†Œ์…œ ๋กœ๊ทธ์ธ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
A5. Authorization Code Grant ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, PKCE์™€ ํ•จ๊ป˜ ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 


๋Œ“๊ธ€