Bibi's DevLog ๐ค๐
[OAuth] ์ํ์ฝ๋ฉ - OAuth 2.0 ๋ณธ๋ฌธ
[210515]
์ํ์ฝ๋ฉ - OAuth 2.0
1. ์์ ์๊ฐ
์์ ์๊ฐ
์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ ์๋น์ค์ API์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ์ฌ์ฉ์๋ก๋ถํฐ ๊ถํ์ ์์ ๋ฐ์์ผ ํฉ๋๋ค. ์ด ๋ ์ฌ์ฉ์์ ํจ์ค์๋ ์์ด๋ ๊ถํ์ ์์ ๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ๊ณ ์๋ ๊ธฐ์ ์ด OAuth์ ๋๋ค. ์ค๋๋ ๋ง์ API๋ค์ด OAuth๋ฅผ ํตํด์ ์ํธ ์ฐ๋์ ์ง์ํ๊ณ ์์ต๋๋ค.
์์ ๋์
๊ตฌ๊ธ, ํ์ด์ค๋ถ๊ณผ ๊ฐ์ ์๋น์ค์ API์ ์ฌ์ฉ์ ๋์ ์ ์ ๊ทผํ๊ณ ์ถ์ ๋ถ๋ค์ ์ํ ์์ ์ ๋๋ค. ๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ์๋น์ค๋ก ๋ก๊ทธ์ธ ํ๊ธฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ๋ ํ์์ ์ผ๋ก ํ์ํ ๊ธฐ๋ฅ์ ๋๋ค.
OAuth๋?
Mine : ๋์ ์๋น์ค
User : ์ฌ์ฉ์ (๋์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค)
Their : ๊ทธ๋ค์ ์๋น์ค (๊ตฌ๊ธ, ํ์ด์ค๋ถ, ํธ์ํฐ ... )
์ฌ์ฉ์๊ฐ ๋์ ์๋น์ค๋ฅผ ํตํด ๊ทธ๋ค์ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๊ฒ ํ๋ ๊ธฐ์ .
(ex ์ฌ์ฉ์๊ฐ ๋ด ์๋น์ค๋ฅผ ํตํด ๊ตฌ๊ธ ์บ๋ฆฐ๋์ ์ผ์ ์ ๊ธฐ๋กํ ์ ์๊ฒ ํจ)
๊ทธ๋ฌ๋ ค๋ฉด ๊ทธ๋ค์ ์๋น์ค์ ์ฌ์ฉ์ ID, PW๋ฅผ ์์์ผ ํ๋ค. - ๋งค์ฐ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ.
ํ์ง๋ง ๊ทธ๋งํผ ์ํํ ๋ฐฉ๋ฒ์ด๋ค.
์ฌ์ฉ์, ๊ทธ๋ค์ ์๋น์ค - ์ด๋ป๊ฒ ๋์ ์๋น์ค๋ฅผ ๋ฏฟ๊ณ ๊ทธ๋ค์ ์๋น์ค์ ID,PW๋ฅผ ์ค ๊ฒ์ธ๊ฐ?
โ OAuth๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค๋ค.
Their ๊ทธ๋ค์ ์๋น์ค : ์ฌ์ฉ์์ ์์ฒญ์ ์ํด accessTocken์ ๋ฐ๊ธํ๋ค.
- ์ฌ์ฉ์์ ID, PW๋ฅผ ๋๊ฒจ์ฃผ์ง ์์๋ ๋๋ค.
- ๊ทธ๋ค์ ์๋น์ค์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋, ๋์ ์๋น์ค์ ํ์ํ ํ์์ ์ธ ๋ถ๋ถ๋ง ์ฌ์ฉํ๋๋ก ํ์ฉํ ์ ์๋ค.
Mine ๋์ ์๋น์ค : ๊ทธ๋ค์ ์๋น์ค๊ฐ ๋ฐ๊ธํ accessTocken์ ํ๋ํ ๋ค์, ๊ทธ accessTocken์ ํตํด ๊ทธ๋ค์ ์๋น์ค์ ์ ๊ทผํ ์ ์๋ค.
๊ทธ๋ค์ ์๋น์ค์ ์ ๊ทผํด CRUD๋ฅผ ํ ์ ์๋ค.
์ฌ์ฉ์์ ID,PW ๊ด๋ฆฌ ๋ถ๋ด์ด ์๋ค.
๋์ ์๋น์ค์ ๋ก๊ทธ์ธ ํ ๋์๋ ID, PW๋ฅผ ๋ณด๊ดํ์ง ์๊ณ ๊ทธ๋ค์ ์๋น์ค์ accessTocken์ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ ์ ์๋ค.
- Login with Google (๊ตฌ๊ธ ์์ด๋๋ก ๋ก๊ทธ์ธ) ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ ๊ตฌํ ๊ฐ๋ฅ.
2. ์ญํ (Role)
OAuth์ ๋ฑ์ฅํ๋ 3์์ ๋ํ ์ญํ ๊ณผ ์ฉ์ด๋ฅผ ์์๋ณด๋ ์๊ฐ์ ๋๋ค.
OAuth ์ ์ธ ์ฃผ์ฒด
Resource Owner
(= User)- ์ฐ๋ฆฌ์ ์ฌ์ฉ์
- ์์์ ์์ ์
Client
(= Mine)- ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋น์ค (ex. opentutorials.org)
Resource Server
๋ก๋ถํฐ ์์์ ์์ฒญํ๋ ์ ์ฅ์ด๊ธฐ ๋๋ฌธ์ Client๋ผ๊ณ ํ๋ค.
Resource Server
(= Their)- User๊ฐ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์๋น์ค
- User๋ Their์ ํ์๊ฐ์ ์ด ๋์ด ์๋ ์ํ (ex. Google, Facebook, Twitter)
- '์ฐ๋ฆฌ๊ฐ ์ ์ดํ๊ณ ์ถ์ ์์์ ๊ฐ์ง๊ณ ์๋ ์๋ฒ'๋ผ๋ ์๋ฏธ์์
Resource Server
๋ผ๊ณ ํ๋ค.- Resource ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ฒ๋ฅผ ๋งํจ
Authorization Server (=Their)
- Their์ ์๋ฒ ์ค ์ธ์ฆ๊ณผ ๊ด๋ จ ์ฒ๋ฆฌ๋ฅผ ์ ๋ดํ๋ ์๋ฒ๋ฅผ ๋งํจ.
์ด ๊ฐ์์์๋ ์ฌ์ด ์ค๋ช
์ ์ํด Authorization Server๊น์ง ํฉ์ณ์ Resource Server
๋ก ์ค๋ช
ํ๋ค.
3. ๋ฑ๋ก register
OAuth๋ฅผ ์ด์ฉํด์ Resource Server์ ์ ์ํ๊ธฐ ์ํด์๋ ์ฐ์ Resource Server์ ๋ฑ๋กํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค.
Resource Server
์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์๋, Resource Server
์ ์น์ธ์ ๋จผ์ ๋ฐ์ ๋์ด์ผ ํ๋ค. ์ด๋ฅผ '๋ฑ๋ก'์ด๋ผ๊ณ ํ๋ค.
(Resource Server
๋ง๋ค ๊ตฌ์ฒด์ ์ธ ๋ฐฉ์์ ๋ค๋ฅด๋ค)
๋ฑ๋ก์ 3์์
- Client ID
- ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณ์(id)
- Client Secret
- Client ID์ ๋ํ ๋น๋ฐ๋ฒํธ.
- ์ ๋๋ก ์ธ๋ถ์ ๋ ธ์ถ๋์ด์๋ ์ ๋๋ค!!
- Authorized redirect URIs (redirect URL)
Resource Server
๊ฐ ๊ถํ์ ๋ถ์ฌํ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๊ฐ Authorize Code๋ฅผ ์ ๋ฌํด ์ค๋ค.- ์ด Authorize Code๋ฅผ ์ ๋ฌ๋ฐ๋ URI๊ฐ Authorized redirect URIs์ด๋ค.
Client
๊ฐ Authorized redirect URIs ์ธ์ ์ฃผ์๋ก ์์ฒญํ๋ฉดResource Server
๋ ํด๋น ์์ฒญ์ ๋ฌด์ํ๋ค.- โ
Client
๋ Authorized redirect URIs๋ก ๋ฑ๋กํ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํํด ๋์ด์ผ ํ๋ค.
๋ฑ๋ก ์ ์ฐจ ํ์ ์ํ
Resource Server
(their)๋ Client์ Client ID, Client Secret, redirect URL์ ์๊ฒ ๋๋ค.Client
(Mine)์ Client ID, Client Secret ์ ๋ถ์ฌ๋ฐ๊ฒ ๋๋ค.
4. Resource Owner์ ์น์ธ
OAuth์ ์ฒซ๋ฒ์งธ ์ ์ฐจ๋ Resource Owner๊ฐ Resource Server์๊ฒ Client์ ์ ๊ทผ์ ์น์ธํ๋ค๋ ๊ฒ์ ์๋ ค์ค์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฑ๋ก ํ์ ์ํ
Resource Server
(their)๋ Client์ Client ID, Client Secret, redirect URL์ ์๊ฒ ๋๋ค.Client
(Mine)์ Client ID, Client Secret ์ ๋ถ์ฌ๋ฐ๊ฒ ๋๋ค.
๋ฑ๋ก ํ์๋ ์ธ์ฆ์ ๋ฐ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
์ฐ๋ฆฌ๋ Resource Server
๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค(A,B,C,D) ์ค ํ์ํ ๊ธฐ๋ฅ(B,C)๋ง์ ์น์ธ๋ฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
Resource Owner
(User)๊ฐ "Login with Google
"๊ณผ ๊ฐ์ ๋ฒํผ์ ๋๋ฅด๋ ๊ฒ์ ๊ณง, Resource Owner
๊ฐ ํด๋น ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋์ํจ์ ์๋ฏธํ๋ค.
"Login with Google
"๊ณผ ๊ฐ์ ๋ฒํผ์ ์๋์ ๊ฐ์ ์ฃผ์๋ก ์ฐ๊ฒฐ๋๋ค.
https://resource.server/?client_id=1&scope=B,C&redirect_url=https://client/callback
- Client ID
- scope
- ์ฌ์ฉํ๊ณ ์ ํ๋ ๊ธฐ๋ฅ๋ค
- Redirect URL
์ค์ ๋ฒํผ์ URL์ "URLDECODE.ORG"์ ๊ฐ์ ์ฌ์ดํธ์์ ํด๋ ํด ๋ด์ฉ์ ํ์ธํ ์ ์๋ค.
์น์ธ ์ ์ฐจ
Resource Owner
๊ฐResource Server
๋ก ์ ์ํ๋คResource Server
๋Resource Owner
๊ฐ ๋ก๊ทธ์ธ ์ํ์ธ์ง ํ์ธํ๋ค.- ๋ก๊ทธ์ธ์ด ๋์ด ์์ผ๋ฉด
- ๋ก๊ทธ์ธ์ด ๋์ด ์์ง ์์ผ๋ฉด ๋ก๊ทธ์ธ์ ์์ฒญํ๋ค.
์์ ๊ฐ์ ์ฃผ์๋ฅผ ํตํด
Resource Owner
๊ฐ ๋ก๊ทธ์ธํ๋คResource Server
๋ ์์ฒญ๋ฐ์ ์ฃผ์์ ํฌํจ๋ Client ID๊ฐ์ด ์๋์ง, Client ID์ ๋ฑ๋ก๋ Redirect URL๊ณผ ์ผ์นํ๋์ง ํ์ธํ๋ค.- ๋ง์ฝ ๋ค๋ฅด๋ฉด ํด๋น ์์ฒญ์ ๋ฌด์ํ๋ค (์์ ๋)
Resource Server
๊ฐ scope์ ํด๋นํ๋ ๊ถํ๋ค์Client
์๊ฒ ๋ถ์ฌํ ๊ฒ์ธ์ง ํ์ธํ๋ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค.- ์ด๋ ํ ์ ๋ณด๋ค์
Client
๊ฐ ์์ฒญํ๊ณ ์์ผ๋ฉฐ, ์ ๊ทผํ๋๋ก ํ์ฉํ ๊ฒ์ธ์ง๋ฅผ ๋ฌป๋ ์ฐฝ์ด ๋ฌ๋ค.
- ์ด๋ ํ ์ ๋ณด๋ค์
Resource Owner
๊ฐ ํ์ฉ ์,Resource Server
๋- ์ด๋ค
Resource Owner
(=User)๊ฐ - ์ด๋ค
Client
์๊ฒ - ์ด๋ค scope์ ๋ํ ์์ ์ ํ์ฉํ๋์ง
์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
- ์ด๋ค
5. Resource Server์ ์น์ธ
Resource Server๋ Client๊ฐ ๋ฑ๋ก๋ Client๊ฐ ๋ง๋์ง ํ์ธํ๊ธฐ ์ํด์ Resource Owner์ ํตํด์ Client์๊ฒ Authorization code๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ด ๊ฐ์ ๋ฐ์ Client๋ ์ด ๊ฐ๊ณผ Client secret์ ๊ฐ์ Resource Server๋ก ์ ์กํด์ Client์ ์ ์์ Resource Owner์๊ฒ ์ฆ๋ช ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ด ๊ณผ์ ์ ๋ค๋ฃน๋๋ค.
Resource Owner
๊ฐ ์น์ธํ๋ค๊ณ ํด์ Resource Server
๊ฐ ๋ฐ๋ก ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธํด ์ฃผ์ง๋ ์๋๋ค.
Authorization Code
๋ฅผ ๋ฐ๊ธํ๊ณResource Owner
์๊ฒAuthorization Code
๋ฅผ ์ ์กํ๋ค- HTTP header :
Location : https://client/callback?code=3
- ๋ฆฌ๋ค์ด๋ ์
. ์ฆ
Resource Server
๊ฐClient
์ ์น ๋ธ๋ผ์ฐ์ ์๊ฒhttps://client/callback?code=3
์ด๋ผ๋ ์ฃผ์๋ก ์ด๋ํ๋๋ก ๋ช ๋ นํ๋ ๊ฒ
- HTTP header :
์ด ๊ณผ์ ์์ Client
๋ ์๊ธฐ๋ ๋ชจ๋ฅด๊ฒ code=3
์ด๋ผ๋, Client
์ Authorization Code
๊ฐ์ ๊ฐ๊ฒ ๋๋ค.
์ด์ Client
๋ Resource Owner
๋ฅผ ํตํ์ง ์๊ณ , Resource Server
๋ก ์ง์ ์์ฒญํ๋ค - ์๋์ ๊ฐ์ ์ฃผ์๋ก
https://resource.server/token?grant_type_authorization_code&code=3&redirect_url=https://client/callback&client_id=1&client_secret=2
- grant_type_authorization_code :
Authorization Code
๋ฐฉ์์ ํตํด ์ ์ํ๊ฒ ๋ค.- 4๊ฐ์ง ๋ฐฉ์ ์ค ํ๋์ ๋ฐฉ์์ด๋ค.
- code :
Authorization Code
- Redirect URL
- Client ID
- Client Secret
์ฆ Authorization Code
์ Client Secret
๋ผ๋ ๋ ๊ฐ์ง ๋น๋ฐ ์ ๋ณด๋ฅผ ์ ์ถํ๋ฉฐ ์ ์ํ๋ ๊ฒ
Resource Server
๋
- ์์ฒญํ ์ ๋ณด๊ฐ
Authorization Code
์ ํด๋นํ๋ ์ ๋ณด์ ์ผ์นํ๋์ง ํ์ธ- Client ID, Client Secret, Redirect URL ์ด ๋ชจ๋ ์์ ํ ์ผ์นํ ๋๋ง ๊ทธ ๋ค์ ๋จ๊ณ(์ก์ธ์ค ํ ํฐ ๋ฐ๊ธ)๋ก ์งํํ๋ค.
6. Access Token
OAuth์ ํต์ฌ์ธ access token์ ๊ฐ์ ๋ฐ๊ธ ๋ฐ๋ ๊ณผ์ ์ ๋ค๋ฃน๋๋ค.
5.์์ Client
์ ๋ํ ๋ชจ๋ ํ์ธ์ด ๋๋๋ฉด ๋๋์ด Access Token์ ๋ฐ๊ธํด ์ค๋ค. (=OAuth์ ๋ชฉ์ )
์ด๋ Resource Server
์ ํ์ํ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ๊ถํ์ ์ฃผ๋ ๊ฒ์ด๋ค.
Client
์ ๋ํ ๋ชจ๋ ํ์ธ์ด ๋๋๋ฉด, Resource Server
๋ ์ด์ Authorization Code
๊ฐ์ ์ง์ด๋ค. (๊ฐ์ ์ธ์ฆ ์์
์ ๋ ํ์ง ์๋๋ก)
๊ทธ ๋ค์ Access Token์ ๋ฐ๊ธํด Client
์๊ฒ ์๋ตํด ์ค๋ค.
Client
๋ Access Token ์ ๋ณด๋ฅผ ์ ์ฅํด ๋๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ค.
Resource Server
๋ ํด๋น Access Token์ ๋ณด๊ณ
- ์ด๋ค
Resource Owner
(User)์ ๋ํ - ์ด๋ค ๊ธฐ๋ฅ์ ํ์ํ ์ ๋ณด(scope)๋ค์
์ฃผ๋ฉด ๋๋์ง ํ์ธํ ๋ค์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด ์ค๋ค.
7. API ํธ์ถ
API๊ฐ ๋ฌด์์ธ์ง, Access Token์ ์ด์ฉํด์ API๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง๋ฅผ ์ดํด๋ด ๋๋ค.
์ด์ Client
๋ Access Token์ ๊ฐ์ง๊ณ Resource Server
์ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ผ ํ๋ค.
์ด๋ป๊ฒ? Resource Server
๊ฐ Client
์ ๋ํด ์ ํด ์ค ๋ฐฉ์๋๋ก ์ด์ฉํด์ผ ํ๋ค.
์ด ๋ฐฉ์์ API(Application Programming Interface)๋ผ๊ณ ํ๋ค.
API
API๋ Client
๊ฐ Resource Server
๋ฅผ ํธ์ถํ ๋, ์ ์ ์ ์๋ ์กฐ์์ฅ์น์ด๋ค.
์๋ฅผ ๋ค์ด Google Calendar๋ฅผ ์ฐ๊ณ ์ถ๋ค๋ฉด 'Google Calendar API'๋ผ๊ณ ๊ตฌ๊ธ๋ง ํด ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ๋ฐ๋ผํ๋ค.
์ ์๋ API๋ค ์ค ์ํ๋ ๊ธฐ๋ฅ์ ๋งํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ํ์ง๋ง, ํด๋น API๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Access Token์ด ํ์ํ๋ค.
๊ฐ ์ธ์ด/ํ๋ ์์ํฌ๋ง๋ค Access Token์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ ์ฐพ์์ ํ์ตํ ์ ์๋ค.
OAuth Access Token ๊ฐ์ ์ง์ URL์ ๋ฃ์ด ์์ฒญํ ์๋ ์์ง๋ง, HTTP Header์ ๋ฃ์ด ์์ฒญํ๋ ๋ฐฉ์์ด ๋ ๊ถ์ฅ๋๋ ๋ฐฉ์์ด๋ค.
curl ์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ฉด ๋ ์ฝ๊ฒ ์ด์ฉํ ์ ์๋ค.
8. refresh token
Access token์ ์๋ช ์ด ์์ต๋๋ค. Access token์ ์๋ช ์ด ๋คํ์ ๋ ์๋ก์ด access token์ ๋ฐ๊ธ ๋ฐ๋ ๋ฐฉ๋ฒ์ด refresh token์ ๋๋ค. ์ด๊ฒ์ ๋ํด์ ์์๋ด ๋๋ค.
Access Token์ ์๋ช ์ด ์๋ค. ์งง๊ฒ๋ 1~2์๊ฐ, ๊ธธ๊ฒ๋ 60์ผ ๋ฑ
Access Token์ ์๋ช ์ด ๋๋๋ฉด Access Token์ ์ฌ๋ฐ๊ธ๋ฐ์์ผ ํ๋๋ฐ,
๊ทธ ๋๋ง๋ค ๋ชจ๋ ์ธ์ฆ ๊ณผ์ ์ ๋ค์ ๊ฑฐ์น๋ฉด ํ๋ ์ผ์ด๋ค (๊ทธ๋๋ ํ์๋ก ํ๊ฒ ํ๋ ์์คํ ๋ ์๋ค)
๋ ์ฝ๊ฒ Access Token์ ์ฌ๋ฐ๊ธ๋ฐ๋ ๊ฒ์ด refresh token์ด๋ค.
๊ฒ์ํค์๋ : OAuth 2.0 RFC
(RFC : ์ธํฐ๋ท ๊ด๋ จ ๊ธฐ์ ๋ค์ ํ์ค์)
๋ณดํต์ 6.์์ Access Token์ ๋ฐ๊ธํ ๋, Refresh Token์ ํจ๊ป ๋ฐ๊ธํด ์ค๋ค.
์ฐ๋ฆฌ๊ฐ ๊ฐ์ง Access Token์ ์๋ช ์ด ๋๋๋ฉด,
ํจ๊ป ๋ฐ๊ธ๋ฐ์ Refresh Token์ Authorization Server
์ ์ ์ถํจ์ผ๋ก์จ Access Token์ ์ฌ๋ฐ๊ธ๋ฐ๋๋ค.
(๊ฒฝ์ฐ์ ๋ฐ๋ผ Access Token๊ณผ Refresh Token์ ๋ ๋ค ์ฌ๋ฐ๊ธํด ์ฃผ๊ธฐ๋ ํ๋ค)
9. ์์ ์ ๋ง์น๋ฉฐ
์ฌ๊ธฐ๊น์ง ์ค์๋๋ผ ๊ณ ์ํ์ จ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์์ผ๋ก ๊ณต๋ถํ ๋งํ ์ฃผ์ ๋ฅผ ์๊ฐํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ถํํฉ๋๋ค!
์ธ์ฆ์ฒด๊ณ
Federated Identity
: ๋ค๋ฅธ ์๋น์ค์์ ์ฐํฉ์ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ๋ ์ธ์ฆ์ฒด๊ณ
(Login with Google ๊ณผ ๊ฐ์ ์๋น์ค๋ค)
API ์ฌ์ฉ์ ์ํ ์ง์๋ค
API๋ฅผ ์ ๋ค๋ฃจ๋ ๋ฐ ์ค์ํ ๋ฐฐ๊ฒฝ์ง์๋ค
Restful API
JSON
XML
'๐ฅ BE ๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ธํ ๋ฆฌ์ ์ด, ํฌ์คํธ๋งจ ํ๊ฒฝ๋ณ์ ์ค์ ๋ฒ (0) | 2021.06.10 |
---|---|
[JWT ๊ธฐ์ด] JWT, TOKEN ํ ํฐ ๋ฒ ์ด์ค ๋ก๊ทธ์ธ (0) | 2021.06.04 |
HTTP Response Body์ ์์ธ error message ์ง์ ํด ๋ณด๋ด๊ธฐ (0) | 2021.04.30 |
๋์์ฑ Concurrency (+ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ, ๋์์ฑvs๋ณ๋ ฌ์ฑ) (0) | 2021.03.20 |
REST API๊ฐ ๋ญ๊ฐ์? - ์ธํฐํ์ด์ค, API, REST API, HTTP method (0) | 2021.03.17 |