๐Ÿ”‘ Authentication & Authorization

Min-Ho Leeยท2020๋…„ 7์›” 14์ผ
0

Security

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

Tuesday_July_14
.
.
.

๐Ÿ— Authentication(์ธ์ฆ)

์ธ์ฆ์ด ๋ญ˜๊นŒ?

์ธ์ฆ์€ ๋ง ๊ทธ๋Œ€๋กœ ์ธ์ฆํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ณดํ†ต์€ ์œ ์ €์˜ '์•„์ด๋””'์™€ '๋น„๋ฐ€๋ฒˆํ˜ธ'๋กœ ํ™•์ธ์„ ํ•ด์„œ ์ธ์ฆ์„ ํ•œ๋‹ค.

์‚ฌ์‹ค ์ธ์ฆ์€ ์•ž์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ด ๋์ด๋‹ค.
ํ•˜์ง€๋งŒ ์•„๋ž˜์—์„œ ๋‹ค๋ฃฐ '์ธ๊ฐ€'๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ธˆ๋” ์„ค๋ช…์„ ํ•˜๊ฒ ๋‹ค.

๐Ÿง ๋กœ๊ทธ์ธ ์ ˆ์ฐจ

๋จผ์ €, ์œ ์ €์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™” ํ•˜์—ฌ DB์— ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์— ํ•ด๋‹น ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ• ๋•Œ ์•„์ด๋””์™€, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ์„ ํ•  ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ์ž…๋ ฅ์„ ๋ฐ›์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 'ํšŒ์›๊ฐ€์ž… ํ•  ๋•Œ ํ–ˆ๋˜ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๊ฒŒ ์•”ํ˜ธํ™” ํ•œ๋‹ค.'
๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ DB์— ์žˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™๋‹ค๋ฉด ๋กœ๊ทธ์ธ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
(์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๋‚˜์ค‘์— Bcrypt ๋ผ๋Š” ๋ถ€๋ถ„์—์„œ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.)

๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด 'token'์„ ํ•ด๋‹น ์œ ์ €์—๊ฒŒ ์ค€๋‹ค.

token์„ ๊ฐ–๊ณ ์žˆ๋Š” ํ•ด๋‹น ์œ ์ €๋Š” ๋‚˜์ค‘์— ํšŒ์› ์ •๋ณด๊ฐ€(์ธ์ฆ) ํ•„์š”ํ•œ ์š”์ฒญ์„ ํ•ด์•ผํ•  ๋•Œ,
token ์ •๋ณด๋งŒ ์„œ๋ฒ„์— ์ „์†ก์„ ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ— Authorization(์ธ๊ฐ€)

์ธ๊ฐ€๋ž€, ํ•ด๋‹น ์œ ์ €๊ฐ€ ์–ด๋– ํ•œ ์š”์ฒญ(request)์„ ๋ณด๋ƒˆ์„ ๋•Œ, ํ•ด๋‹น ์š”์ฒญ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”
๊ถŒํ•œ์„ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ด๋‹ค.

'์ธ๊ฐ€'๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์•ž์„œ '๋กœ๊ทธ์ธ ์ ˆ์ฐจ'์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์ž ๊น ์‚ดํŽด๋ณด์•˜๋‹ค.

์•„๊นŒ '๋กœ๊ทธ์ธ ์ ˆ์ฐจ' ๋ถ€๋ถ„์—์„œ token์„ ํ†ตํ•ด ์ธ์ฆ์„ ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.
๊ทธ token์€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ง„๋‹ค๊ณ ๋„ ํ–ˆ๋‹ค.

์„œ๋ฒ„๋กœ ์ „์†ก๋œ ๊ทธ token์„ ๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋ฉด ์œ ์ €์˜ ์ •๋ณด(user id)๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
(์ด ๋ถ€๋ถ„๋„ ๋‚˜์ค‘์— JWT(Json Web Token)๋ถ€๋ถ„์—์„œ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.)

์–ป์€ user id๋กœ DB์— ํ•ด๋‹น ์œ ์ €๊ฐ€ ๊ถŒํ•œ(Permission)์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•œ๋‹ค.

๋งŒ์•ฝ ์œ ์ €๊ฐ€ ํ•ด๋‹น ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๊ณ ,
ํ•ด๋‹น ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด, Unauthorized Response(401)ํ˜น์€ ๋‹ค๋ฅธ ์—๋Ÿฌ ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ด๋ฉด ๋œ๋‹ค.

profile
๐Ÿ‡ Rabbit can take a rest, but ๐Ÿข turtle can't

0๊ฐœ์˜ ๋Œ“๊ธ€