Skip to content

Latest commit

ย 

History

History
136 lines (98 loc) ยท 9.14 KB

File metadata and controls

136 lines (98 loc) ยท 9.14 KB

OAuth


OAuth๋ž€?

์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๋“ค์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์›น์‚ฌ์ดํŠธ ์ƒ์˜ ์ž์‹ ๋“ค์˜ ์ •๋ณด์— ๋Œ€ํ•ด ์›น์‚ฌ์ดํŠธ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต์ ์ธ ์ˆ˜๋‹จ์œผ๋กœ์„œ ์‚ฌ์šฉ๋˜๋Š” ์ ‘๊ทผ ์œ„์ž„์„ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ด๋‹ค.

  • ๊ฐœ์ธ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ๊ณณ์— ์ž…๋ ฅํ•˜๋ฉด์„œ ๋ณด์•ˆ์ด ๋ถˆ์•ˆํ•ด์ง€๊ณ , Application์ด ์•ˆ์ „ํ•˜๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ์œ„ํ•ด์„œ Twitter๋Š” 2007๋…„์— OAuth 1.0์„ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋กœ๊ทธ์ธ๊ณผ OAuth๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ์˜ ์ฐจ์ด์ 

  • ์ผ๋ฐ˜ ๋กœ๊ทธ์ธ์€ ํšŒ์›๊ฐ€์ž…์„ ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•œ ์ธ์ฆ(Authentication)์ด๋ผ๋ฉด OAuth๋ฅผ ํ†ตํ•œ ๋กœ๊ทธ์ธ์€ ํƒ€์‚ฌ ์„œ๋น„์Šค(๋„ค์ด๋ฒ„, ์นด์นด์˜ค, ๊ตฌ๊ธ€ ๋“ฑ)์˜ ๊ณ„์ • ์ •๋ณด์— ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค์˜ ์ ‘๊ทผ์„ ํ—ˆ๊ฐ€(Authorization)์„ ์ค˜์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ธ์ฆ(Authentication): ์œ ์ €๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ - Who you are
  • ์ธ๊ฐ€(Authorization): ์œ ์ €์— ๋Œ€ํ•œ ์ •๋ณด ๊ถŒํ•œ์„ ํ—ˆ๋ฝํ•˜๋Š” ๊ฒƒ - What you can do



OAuth 1.0๊ณผ 2.0 ์ฐจ์ด์ 

ํ•ญ๋ชฉ OAuth 1.0 OAuth 2.0
์—ญํ•  User
Consumer
Service Provider
Resource Owner
Client
Resource Server
Authorization Server
ํ† ํฐ Request Token
Access Token
Access Token
Refresh Token
open API ํ˜ธ์ถœ ๋ฐ ๋ณด์•ˆ ์„œ๋ช…
HMAC์„ ํ†ตํ•ด ์•”ํ˜ธํ™”
HTTPS ๊ธฐ๋ณธ(HMAC ์‚ฌ์šฉ x)
์„œ๋ช…:Resource Server๊ฐ€ ๋ณ„๋„๋กœ ์„œ๋ช…์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ
์œ ํšจ๊ธฐ๊ฐ„ Access Token ์œ ํšจ๊ธฐ๊ฐ„ ์—†์Œ Access Token ์œ ํšจ๊ธฐ๊ฐ„ ๋ถ€์—ฌ. Refresh Token
  • HMAC: ํ•ด์‹ฑ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€์˜ ์œ„๋ณ€์กฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋ฒ•

OAuth 1.0

OAuth1.0 ๋Œ€ํ‘œ ์šฉ์–ด

์šฉ์–ด ์„ค๋ช…
User Service Provider์— ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด์„œ, Consumer๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž(~๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๋‚˜)
Service Provider OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Open API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค(๋„ค์ด๋ฒ„, ์นด์นด์˜ค, ๊ตฌ๊ธ€)
Consumer OAuth ์ธ์ฆ์„ ์‚ฌ์šฉํ•ด Service Provider์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์›น ์„œ๋น„์Šค(๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ๋ฅผ ์“ฐ๋ ค๋Š” ์‚ฌ์ดํŠธ๋‚˜ ์•ฑ)
Request Token Consumer๊ฐ€ Service Provider์—๊ฒŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ธ์ฆ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’. ์ธ์ฆ์ด ์™„๋ฃŒ๋œ ํ›„์—๋Š” Access Token์œผ๋กœ ๊ตํ™˜ํ•œ๋‹ค.
Access Token ์ธ์ฆ ํ›„ Consumer๊ฐ€ Service Provider์˜ ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค๋ฅผ ํฌํ•จํ•œ ๊ฐ’

OAuth 1.0 ์ง„ํ–‰ ๊ณผ์ •

  1. Consumer๊ฐ€ Servcie Provider์—๊ฒŒ Request Token์„ ์š”์ฒญํ•œ๋‹ค.
  2. Service Provider๋Š” Request Token์„ ๋„˜๊ฒจ ์ค€๋‹ค.
  3. Consumer๋Š” User๋ฅผ redirect ์‹œ์ผœ์„œ Service Provider์—์„œ ์ธ์ฆ์„ํ•˜๊ฒŒ ํ•œ๋‹ค. (๋กœ๊ทธ์ธ์„ ํ•˜๋Š” ๊ณผ์ •)
  4. Consumer๋Š” Service Provider๋กœ ๋ถ€ํ„ฐ Access Token์„ ์š”์ฒญํ•œ๋‹ค.
  5. Service Provider๋Š” Access Token์„ ๋ฐœ๊ธ‰ํ•œ๋‹ค.
  6. Consumer๋Š” ์ด์ œ User์˜ ์ œ 3์ž ์‚ฌ์ดํŠธ์— ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์ธ์ฆ์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.



OAuth 2.0

  • OAuth์˜2๋Š” OAuth์˜1์˜ ์œ ์ €์˜ ์ธ์ฆํ”Œ๋กœ์šฐ, ์ „๋ฐ˜์ ์ธ ๋ชฉ์ ๋งŒ ๊ณต์œ ํ•˜๊ณ  OAuth์˜1.0์„ ์ƒˆ๋กœ ์ž‘์„ฑํ•œ๊ฒƒ์ด๋‹ค. OAuth์˜1.0๊ณผ OAuth์˜2.0์˜ ์ฐจ์ด๋Š” ์•ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ฑ์˜ ์ธ์ฆ๋ฐฉ์‹์„ ๊ฐ•ํ™”ํ•˜๊ณ  Consumer์— ๊ฐœ๋ฐœ ๊ฐ„์†Œํ™”๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ ๋˜์—ˆ๋‹ค.

  • ์ธ์ฆ ์ ˆ์ฐจ๊ฐ€ ๊ฐ„์†Œํ™” ๋จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ตฌํ˜„ํ•˜๊ธฐ ๋”์‰ฌ์›Œ์กŒ๊ณ , ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ์šฉ์–ด๋„ ๋ฐ”๋€Œ๋ฉด์„œ Authorizaiton server์™€ Resource์„œ๋ฒ„์˜ ๋ถ„๋ฆฌ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฐฉ์‹์„ ์ง€์›ํ•˜๊ฒŒ ๋๋‹ค.

OAuth 2.0 ๋Œ€ํ‘œ ์šฉ์–ด

์šฉ์–ด ์„ค๋ช…
Resource Server OAuth2.0 ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ž์›์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋ฒ„(๊ตฌ๊ธ€,์นด์นด์˜ค, ๋„ค์ด๋ฒ„ ๋“ฑ๋“ฑ)
Authorization Server Client๊ฐ€ Resource Server์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ธ์ฆํ•˜๊ณ  ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” ์„œ๋ฒ„(๊ตฌ๊ธ€, ์นด์นด์˜ค, ๋„ค์ด๋ฒ„ ๋“ฑ)
Resource Owner Resource Server์˜ ๊ณ„์ •์„ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž
Client Resource Server์˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋Š” ์‚ฌ์ดํŠธ
Access Token Resource Server์— ์ž์›์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ
Refresh Token Authorization Server์— Access Token์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ
Resource Server : ์นด์นด์˜ค ์„œ๋ฒ„, ์ž์›์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋ฒ„
Authorization Server : ์นด์นด์˜ค ์„œ๋ฒ„, ๊ถŒํ•œ์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋ฒ„
Resource Owner : ์‚ฌ์šฉ์ž(๋‚˜)
Client : ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์ด ๋งŒ๋“  ์‚ฌ์ดํŠธ

OAuth 2.0 ์ธ์ฆ ๋ฐฉ์‹์˜ ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
Authorization Code Grant - Client๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋Œ€์‹  ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ
- resource ์ ‘๊ทผ์„ ์œ„ํ•ด, Authorization Server์—์„œ ๋ฐ›์€ ๊ถŒํ•œ ์ฝ”๋“œ๋กœ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐ›๋Š” ๋ฐฉ์‹
- ๋‹ค๋ฅธ ์ธ์ฆ ์ ˆ์ฐจ์— ๋น„ํ•ด ๋ณด์•ˆ์„ฑ์ด ๋†’๊ธฐ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
Implicit Grant - Authorization Code Grant์™€ ๋‹ค๋ฅด๊ฒŒ ๊ถŒํ•œ ์ฝ”๋“œ ๊ตํ•œ ๋‹จ๊ณ„๊ฐ€ ์žˆ๋‹ค.
- Access Token์„ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ ๋ฐ›์•„ ์ด๋ฅผ ์ธ์ฆ์— ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹
Resource Owner Password Credentials Grant - Client๊ฐ€ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ† ํฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹
- Resource Owner์—์„œ id, pwd๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ Resource Server์— ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” client์—์„œ ๊ฐ€๋Šฅ
Client Credentials Grant - Client๊ฐ€ ์ปจํ…์ŠคํŠธ ์™ธ๋ถ€์—์„œ Access Token์„ ์–ป์–ด ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

Authorization Code Grant

๊ถŒํ•œ ๋ถ€์—ฌ ์Šน์ธ์„ ์œ„ํ•ด ์ž์ฒด ์ƒ์„ฑํ•œ authorization code๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๊ณ  ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํŠน์ • ์ž์›์— ์ ‘๊ทผ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ณดํ†ต ํƒ€์‚ฌ์˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณดํ˜ธ๋œ ์ž์›์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ์— ์‚ฌ์šฉ๋œ๋‹ค. refresh token์˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์ด๋‹ค.

Author

1. client์—์„œ Authorization server๋กœ ๊ถŒํ•œ ๋ถ€์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
2. ๋กœ๊ทธ์ธ ํŒ์—…์ฐฝ์ด ์ „๋‹ฌ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋กœ๊ทธ์ธ์„ ํ•œ๋‹ค.
3. ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ๋งž๋‹ค๋ฉด ๊ถŒํ•œ ๋ถ€์—ฌ ์Šน์ธ ์ฝ”๋“œ๋ฅผ client์— ์ „๋‹ฌํ•œ๋‹ค.
4. client๋Š” authorization code๋ฅผ ํ†ตํ•ด access token ๋ฐœ๊ธ‰์„ ์š”์ฒญํ•œ๋‹ค.
5. authorization server๋Š” ์ž๊ธฐ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” client id, client secret, authorization code๋ฅผ ์ „๋‹ฌ๋ฐ›์€ ์ •๋ณด์™€ ๋น„๊ตํ•˜์—ฌ ๋™์ผํ•  ๋•Œ access token์„ ์ „๋‹ฌํ•œ๋‹ค.
6. client๋Š” resoruce server์—๊ฒŒ ์ธ์ฆ์„ ์œ„ํ•œ access token์„ ์ „๋‹ฌํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ์ž์›์„ ์š”์ฒญํ•œ๋‹ค.
7. resource server๋Š” access token์ด ์œ ํšจํ•˜๋ฉด ํ•ด๋‹น ์ž์›์„ ์ œ๊ณตํ•œ๋‹ค.
  • redirect_uri :์ธ์ฆ ์Šน์ธ ์ดํ›„ redirect๋  url
  • response_type :์‚ฌ์šฉ์„ ์›ํ•˜๋Š” grant type ์„ค์ •
    • code :authorization code
    • token :implicit

Implicit Code Grant

์ž๊ฒฉ์ฆ๋ช…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ ํž˜๋“  ํด๋ผ์ด์–ธํŠธ(javascript๋“ฑ)์—๊ฒŒ ์ตœ์ ํ™”๋œ ๋ฐฉ์‹์ด๋‹ค. ์•”์‹œ์  ์Šน์ธ ๋ฐฉ์‹์—์„œ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์Šน์ธ ์ฝ”๋“œ ์—†์ด ๋ฐ”๋กœ access token์ด ๋ฐœ๊ธ‰๋œ๋‹ค. Access token์ด ๋ฐ”๋กœ ์ „๋‹ฌ๋˜๋ฏ€๋กœ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ์„ค์ •ํ•˜์—ฌ ๋ˆ„์ถœ์˜ ์œ„ํ—˜์„ ์ค„์ผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. Refresh token์˜ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์ด๋ฉฐ, ๊ถŒํ•œ ์„œ๋ฒ„๋Š” client secret์„ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ธ์ฆํ•˜์ง€ ์•Š๋Š”๋‹ค.

1. Client๊ฐ€ ์ธ์ฆ์„œ๋ฒ„์—๊ฒŒ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ๋ฐ ๊ถŒํ•œ ๋™์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค.
2. ๋กœ๊ทธ์ธ ํŒ์—…์ฐฝ์ด ์ „๋‹ฌ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋กœ๊ทธ์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.
3. ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ๋งž๋‹ค๋ฉด Redirect URL๋กœ Authorization Code๊ฐ€ ์•„๋‹ˆ๋ผ Access token์„ ์ „๋‹ฌํ•œ๋‹ค.
4. ํš๋“ํ•œ Access token์œผ๋กœ Resource Server์— API ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

Resource Owner Password Credentials Grant

๊ฐ„๋‹จํ•˜๊ฒŒ username, pwd์™€ access token์„ ๋ฐ›๋Š” ๋ฐฉ์‹์ด๋‹ค. refresh token ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ค‘์š”ํ•œ ์ ์€ ์„œ๋ฒ„, ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์‹œ์Šคํ…œ์— ์†ํ•ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

1. Resource Owner๋Š” ์ธ์ฆ์ •๋ณด๋ฅผ client์—๊ฒŒ ์ง์ ‘ ์ „๋‹ฌํ•œ๋‹ค.
2. Client๋Š” ์•ž์„œ ๋ฐ›์€ ์ธ์ฆ ์ •๋ณด๋ฅผ Authorization Server๋กœ ์ „์†กํ•˜์—ฌ Access token์„ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค.
3. ํš๋“ํ•œ Access token์œผ๋กœ Resource Server์— API ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. 

์ด๋ฐฉ์‹์€ Resource Owner์˜ id, pwd๊ฐ€ client์—๊ฒŒ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜๋ฏ€๋กœ client์™€ service provider๊ฐ€ ๊ฐ™์€ ๋„๋ฉ”์ธ, ์†”๋ฅ˜์…˜ ๋‚ด์— ์กด์žฌํ•˜์—ฌ ์„œ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.

Client Credentials Grant

Oauth 2.0์˜ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์ž๊ฒฉ์ฆ๋ช…๋งŒ์œผ๋กœ access token์„ ํš๋“ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์€ ์ž์‹ ์ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค ํ˜น์€ ๊ถŒํ•œ ์„œ๋ฒ„์— ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ๊ถŒํ•œ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ๋ฐฉ์‹์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๊ณ , refresh token์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.