๐Ÿงฉ PostgreSQL์„ Auth0 ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ตฌ์„ฑ

6994 ๋‹จ์–ด datasciencesecuritydatabase

๐Ÿ““ Auth0์„ PostgreSQL์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.




Auth0์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์œ ์ง€ํ•˜๋ฉฐ ์•ˆ์ „ํ•œ ์ธ์ฆ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Auth0์—์„œ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋˜ํ•œ Auth0์€ OAuth 2.0์„ ๊ถŒํ•œ ์ˆ˜์—ฌ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ „์„ฑ์„ ์•ˆ์‹ฌํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Auth0์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ์ž ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•˜๋ฉด user migration์— ๋„์›€์ด ๋˜๊ณ  OAuth์™€ OpenID Connect์ธต์„ ๊ธฐ์กด ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.ASP๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.NET ๊ตฌ์„ฑ์› ์ž๊ฒฉ ์ œ๊ณต ํ”„๋กœ๊ทธ๋žจ,MongoDB,MySQL,PostgreSQL,Auth0 ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.์ด ๋ฌธ์„œ์—์„œ PostgreSQL์„Auth0์˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Limited Access: Some features are available depending on your Auth0 subscription. For more information, see Auth0 pricing plans.


์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ


Auth0 ๊ณ„์ •์ด ์•„์ง ์—†์Šต๋‹ˆ๊นŒ?Sign up for free right now!
log in์„ ์™„๋ฃŒํ•˜๋ฉด Database connections page(Auth0 ๋Œ€์‹œ๋ณด๋“œ > ์ธ์ฆ > ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.createdb Connection ๋‹จ์ถ”๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ข‹์€ ์ด๋ฆ„์„ ์ง€์€ ๋‹ค์ŒCreate ๋‹จ์ถ”๋ฅผ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํƒญ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Auth0์€ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.js ์Šคํฌ๋ฆฝํŠธ, ๋™์ž‘ ์Šคํฌ๋ฆฝํŠธ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ์Šคํฌ๋ฆฝํŠธ์—๋Š” JavaScript ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ƒˆ ์‚ฌ์šฉ์ž ์ถ”๊ฐ€, ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Create: Create ์Šคํฌ๋ฆฝํŠธ๋Š” email๊ณผ password์˜ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋ฅผ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ: ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์„ ํ•„์š”๋กœ ํ•˜๋ฉด ๋กœ๊ทธ์ธ ์Šคํฌ๋ฆฝํŠธ๋Š”PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ์ž์˜ ์‹ ๋ถ„์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์ฆ: ์Šคํฌ๋ฆฝํŠธ ์—…๋ฐ์ดํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ์ž์˜ ์ „์ž ์šฐํŽธ ์ฃผ์†Œ์˜ ๊ฒ€์ฆ ์ƒํƒœ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ์•”ํ˜ธ ๋ณ€๊ฒฝ: ์•”ํ˜ธ ๋ณ€๊ฒฝ ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์ฃผ์†Œ์˜ ์•”ํ˜ธ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๊ฒƒ์€ ๋‚˜์ค‘์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ์‚ฌ์šฉ์ž์˜ ์•”ํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฒƒ์ด๋‹ค. (์•”ํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ธฐ๋Šฅ)
  • Get User: Get User ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง€์ •๋œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—†์œผ๋ฉด undefined์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
  • Delete: ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ง€์ •๋œ ์‚ฌ์šฉ์ž ID๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹คํ–‰ํžˆ๋„ Auth0์€ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํฌ๋ฆฝํŠธ์— ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Auth0 ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ official documentation์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.๋จผ์ € Auth0์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •


    ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.๋„ˆ๋Š” ์ธํ„ฐ๋„ท์ด๋‚˜ Database as A Service ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.์ด ๊ฐ•์ขŒ์—์„œ ๋‚˜๋Š” ElephantSQL์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ ๋ช‡ ๋ถ„ ์•ˆ์— ์™„์ „ํžˆ ์„ค์ •๋˜๊ณ  ํด๋ผ์šฐ๋“œ๊ฐ€ ์œ„ํƒ ๊ด€๋ฆฌํ•˜๋Š” PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ด๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.๋Œ€์‹  SQL ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค๊ณ„ํ•˜์—ฌ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์—…์ฒด(์˜ˆ: AWS, Google Cloud ๋˜๋Š” Heroku)์— ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    https://www.elephantsql.com/์œผ๋กœ ๊ฐ€์„œ ์ž์‹ ์„ ์œ„ํ•œ ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ  ๊ณ„์ •์ด ์žˆ์œผ๋ฉด ๋กœ๊ทธ์ธํ•˜์„ธ์š”.๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€๋กœ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.CreateNew ์ธ์Šคํ„ด์Šค๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค๋ก€์— ์ ํ•ฉํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ํ‰๋ฉด๊ณผ ์˜์—ญ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.๋‚˜๋Š” ๋ฌด๋ฃŒ ๊ณ„ํš์„ ์ด์šฉํ•˜์—ฌ ์‹œ์—ฐ์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค.์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  [์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ]๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ElephantSQL documentation์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
    ์ด์ œ ์ƒˆ๋กœ ๋งŒ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋กœ ์ด๋™ํ•˜์—ฌ [์„ธ๋ถ€ ์ •๋ณด] ํŽ˜์ด์ง€์—์„œ URL์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.Auth0 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์ด๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.๋ˆ„๊ตฌ๋‚˜ ์ด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์•ˆ์ „์„ ์œ„ํ•ด์„œ ๋งŒ์•ฝ ๋„ค๊ฐ€ ๋น„๋ฐ€์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

    PS:Auth0์€ ๋ฐฉํ™”๋ฒฝ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ IP ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.๋„ˆ๋Š” ๋™์ž‘ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ทธ๊ฒƒ๋“ค์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

    Note: Using your own database leads to several security concerns. Allowing your database accessible over the internet without any firewalls or security measures may result in data leakage.


    ์‚ฌ์šฉ์ž ์ €์žฅ์„ ์œ„ํ•œ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ


    ๋ธŒ๋ผ์šฐ์ € ํƒญ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    CREATE TABLE users(
        id UUID DEFAULT uuid_generate_v4(),
        nickname VARCHAR(255),
        email VARCHAR(255) NOT NULL UNIQUE,
        password VARCHAR(255) NOT NULL,
        email_Verified BOOLEAN DEFAULT FALSE
    );
    

    ์œ„์˜ ๋ช…๋ น์€ Auth0์—์„œ ์˜จ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด users์ด๋ผ๋Š” ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž์˜ ์‹ ๋ถ„์„ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋ ค๋ฉด ์ ์–ด๋„ ์ƒ๊ธฐ 5์—ด์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    Read more...

    ์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ