728x90
ํ ํฐ(Token) ๊ธฐ๋ฐ ์ธ์ฆ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ ์ ์๋ฒ์์ ํด๋น ํด๋ผ์ด์ธํธ์๊ฒ ์ธ์ฆ์ ์๋ฏธ๋ก 'ํ ํฐ'์ ๋ถ์ฌ -> ์ธ์ฆ(Authentication)
- ํด๋ผ์ด์ธํธ๋ ๋ ๋ค์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋ ๋ฐ๊ธ๋ฐ์ ํ ํฐ์ ์์ฒญ ํค๋์ ์ฌ์ด ์ ์ก
- ์๋ฒ๋ ํค๋ ๋ด ํ ํฐ์ ์ด์ด ์์ ์ด ์ ๊ณตํ ํ ํฐ์ด ๋ง๋์ง ํ์ธํ์ฌ ์ธ์ฆ ๊ณผ์ ์ฒ๋ฆฌ -> ์ธ๊ฐ(Authorization)
๐ก์ฉ์ด ์ ๋ฆฌ
- ์ธ์ฆ(Authentication): ์์ ์ด ๋๊ตฌ์ธ์ง ์ฆ๋ช ํ๊ณ ๊ฒ์ฆํ๋ ๊ณผ์ (๋ก๊ทธ์ธ)
- ์ธ๊ฐ(Authorization): ์ธ์ฆ ์์ ์ดํ์ ์ธ์ฆ๋ ์ฌ์ฉ์์ ๋ํ ์์ ์ ๊ทผ ํ์ธ ๋ฐ ํ๊ฐ ์ ์ฐจ (๊ถํ ํ์ธ)
- ์ฅ์
- ํ ํฐ ์ ๋ณด๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ stateless(๋ฌด์ํ)ํ๋ฉฐ, ์๋ฒ ํ์ฅ์ ์ฉ์ด (์๋ฒ ๋ถ๋ด X)
- ํ ํฐ์ ํ ๋ฒ ๋ฐ๊ธ๋๋ฉด ์ ํจ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋ ๋๊น์ง ๊ณ์ ์ฌ์ฉ ๊ฐ๋ฅ
- ํ ํฐ์๋ ๊ธฐ๋ณธ ์ ๋ณด, ์ ๋ฌํ ์ ๋ณด, ํ ํฐ์ด ๊ฒ์ฆ๋์๋ค๋ ์๋ช ๋ฑ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์ฒด์ ์ผ๋ก ์ง๋๊ณ ์์
- header์ payload๋ฅผ ๊ฐ์ง๊ณ signature์ ์์ฑํ๋ฏ๋ก ๋ฐ์ดํฐ ์๋ณ์กฐ ๋ฐฉ์ง
- ๋จ์
- ์ฟ ํค/์ธ์ ๊ณผ ๋ค๋ฅด๊ฒ ํ ํฐ ์์ฒด์ ๋ฐ์ดํฐ ๊ธธ์ด๊ฐ ๊ธธ์ด, ์ธ์ฆ ์์ฒญ์ด ๋ง์์ง์๋ก ๋คํธ์ํฌ ๋ถํ ๋ฐ์
- Payload ์์ฒด๋ ์ํธํ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ์ ์ ์ค์ํ ์ ๋ณด๋ ๋ด์ ์ ์์
- ํ ํฐ์ ํ์ทจ ๋นํ ๊ฒฝ์ฐ ๋์ฒ๊ฐ ์ด๋ ค์
ํ ํฐ ์ธ์ฆ ๊ณผ์
- ์ฌ์ฉ์๊ฐ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ก ๋ก๊ทธ์ธ
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)์๊ฒ ํ ํฐ์ ๋ฐ๊ธ
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ ์ธก์์ ์ ๋ฌ๋ฐ์ ํ ํฐ์ ์ฟ ํค๋ ์คํ ๋ฆฌ์ง์ ์ ์ฅ
- ์๋ฒ์ ์์ฒญ ์๋ง๋ค ํด๋น ํ ํฐ์ HTTP ์์ฒญ ํค๋์ ํฌํจ์์ผ ์ ๋ฌ
- ์๋ฒ๋ ์ ๋ฌ๋ฐ์ ํ ํฐ์ ๊ฒ์ฆํ๊ณ , ์์ฒญ์ ์๋ต
JWT (JSON Web Token)
- ์ธ์ฆ์ ํ์ํ ์ ๋ณด๋ค์ ์ํธํ์ํจ JSON ํ ํฐ์ ์๋ฏธ
- JWT ํ ํฐ์ ์ (.)์ผ๋ก ๊ตฌ๋ถ๋ Header, Payload, Signature๋ก ๊ตฌ์ฑ
- Header(ํค๋): ๋ณดํต ํ ํฐ์ ํ์ ์ด๋ ์๋ช ์์ฑ์ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋์๋์ง ์ ์ฅ
- Payload(๋ด์ฉ): ์ฌ์ฉ์ ๊ถํ ์ ๋ณด์ ์ค์ ๋ก ์ฌ์ฉ๋ ์ ๋ณด(JWT๋ฅผ ํตํด ์ ์ ์๋ ๋ฐ์ดํฐ)๋ฅผ ์ ์ฅ
- Signature(์๋ช ): 'Header+Payload'์ ์๋ฒ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ์ผํ Key๊ฐ์ ํค๋์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํํ ๊ฐ (๋น๋์นญ ์ํธํ) -> Authorization(์ธ๊ฐ) ์์ ์ผ๋ก ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฆ ์ ์ฌ์ฉ
์๋ฒ(์ธ์ ) ๊ธฐ๋ฐ ์ธ์ฆ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ ์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)์ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ธ์ ์ ์ฅ์์ ์ ์ฅ ํ ์ธ์ ID ๋ฐ๊ธ -> ์ธ์ฆ(Authentication)
- ํด๋ผ์ด์ธํธ๋ ๋ ๋ค์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋ ๋ฐ๊ธ๋ฐ์ ์ธ์ ID์ ์์ฒญ ํค๋์ ํจ๊ป ์ ์ก
- ์๋ฒ๋ ํค๋ ๋ด ์ธ์ ID๋ฅผ ํตํด ์ธ์ ์ ์ฅ์์ ์ ๊ทผํ ํ ์ธ์ ID์ ํด๋นํ๋ ์ธ์ ์ ๋ณด๊ฐ ์กด์ฌํ๋์ง ํ์ธํ์ฌ ์ธ์ฆ ๊ณผ์ ์ฒ๋ฆฌ -> ์ธ๊ฐ(Authorization)
- ์ฅ์
- ๋ชจ๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ์์ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ฑ์ด ๋์
- ๋จ์
- ์๋ฒ ์ธก (์ธ์ ์ ์ฅ์)์์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ฏ๋ก ์์ฒญ์ด ๋ง์์ง๋ฉด ์๋ฒ ๋ถํ๊ฐ ์ฌํด์ง
- ๊ณต๊ฒฉ์๊ฐ ์ธ์ ID๋ฅผ ํ์ทจํ์ฌ ์ ์ ํด๋ผ์ด์ธํธ์ธ ์ฒ ์์ฅ ๊ฐ๋ฅ
- ์๋ฒ ํ์ฅ ์ ์ธ์ ๋ถ์ฐ ์์ ์ด ์ด๋ ค์
โป ์ฟ ๊ธฐ์ ์ธ์
์ ๋ํ ๋ด์ฉ์ ์๋ ํฌ์คํ
์ฐธ๊ณ ๋ฐ๋๋๋ค.
https://zu-techlog.tistory.com/67
728x90