๊ด€๋ฆฌ ๋ฉ”๋‰ด

Jin's Dev Story

[Spring Security] SNS ๋กœ๊ทธ์ธ ๋ณธ๋ฌธ

Web & Android/Spring Security

[Spring Security] SNS ๋กœ๊ทธ์ธ

woojin._. 2023. 10. 19. 10:12
๐Ÿ’ก SNS ๋กœ๊ทธ์ธ

์ธ์ฆ ์ˆœ์„œ

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋กœ๊ทธ์ธ์„ ์š”์ฒญ
  2. ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ฟผ๋ฆฌ๋“ค์„ ๋ถ™์ธ ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ URL์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋ƒ„
  3. ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น URL๋กœ ์ ‘๊ทผํ•˜์—ฌ ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ•œ ํ›„ ๊ถŒํ•œ ์ฆ์„œ๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋ƒ„
  4. ์„œ๋ฒ„๋Š” ํ•ด๋‹น ๊ถŒํ•œ ์ฆ์„œ๋ฅผ Facebook์˜ Authorization Server๋กœ ์š”์ฒญ
  5. ์„œ๋ฒ„๋Š” ๊ถŒํ•œ ์ฆ์„œ๋ฅผ ํ™•์ธ ํ›„, Access Token, Refresh Token, ์œ ์ €์˜ ์ •๋ณด๋ฅผ ๋Œ๋ ค์คŒ
  6. ๋ฐ›์€ ๊ณ ์œ  ID๋ฅผ Key๊ฐ’์œผ๋กœ ํ•ด์„œ DB์— ์œ ์ €๊ฐ€ ์žˆ๋‹ค๋ฉด ๋กœ๊ทธ์ธ, ์—†๋‹ค๋ฉด ํšŒ์›๊ฐ€์ž… ์ง„ํ–‰
  7. ๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์„ธ์…˜๊ณผ ์ฟ ํ‚ค , ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฐฉ์‹์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ์ฒ˜๋ฆฌ

์ฐธ๊ณ ์‚ฌํ•ญ

  • ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค ์„œ๋ฒ„์—์„œ OAuth๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์ „์— OAuth์— ๋“ฑ๋กํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”
  • ๊ฐœ๋ฐœ์ž ์‚ฌ์ดํŠธ์—์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋ก ํ›„ APP_ID์™€ CLIENT_ID ๋“ฑ์„ ๋ณด๋‚ด์•ผ OAuth ์—์„œ๋Š” ์–ด๋Š ์„œ๋น„์Šค์ธ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ์„ ์ธ์ฆ์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋Œ€๋ถ€๋ถ„์€ Resource Server(ํŽ˜์ด์Šค๋ถ ์ž์ฒด API)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
  • ๋”ฐ๋ผ์„œ Access Token, Refresh Token์€ ์‹ค์ œ๋กœ ์“ฐ์ด์ง€ ์•Š์Œ. ์šฐ๋ฆฌ์˜ ์„œ๋ฒ„์—์„œ Access token์„ ๊ฒ€์ฆํ•  ์ˆ˜๋„ ์—†์„ ๋ฟ๋”๋Ÿฌ ์ธ์ฆ์˜ ์ˆ˜๋‹จ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ์—” ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์Œ
  • ๋”ฐ๋ผ์„œ ๋ณดํ†ต Authorization Server๋กœ๋ถ€ํ„ฐ ์–ป๋Š” ๊ณ ์œ  ID๊ฐ’์„ ํ™œ์šฉํ•ด์„œ DB์— ํšŒ์›๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰