๐Ÿ—’ [์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฐ์ผ๋ฆฌ ์•„ํ‹ฐํด] '์›Œํฌ ํ”„๋กœ์„ธ์Šค' SaaS๋ฅผ ์œ„ํ•œ ๊ถŒํ•œ์ฒด๊ณ„ ๋””์ž์ธํ•˜๊ธฐ (feat.RBAC) SaaS ์„œ๋น„์Šค์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์œ ์ €๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๋•ํŠธ ๋””์ž์ด๋„ˆ๋Š” ๋‹ค์–‘ํ•œ ์œ ์ €๊ฐ€ ํšจ์œจ์ ์ด๊ณ  ์—ฐ๊ด€์„ฑ ์žˆ๊ฒŒ ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ ์‹œ์Šคํ…œ์„ ๋””์ž์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1. ๊ตฌ์กฐ์žก๊ธฐ: ์œ ์ €์™€ ์—ญํ•  ๊ด€๋ฆฌ ๊ถŒํ•œ๊ด€๋ฆฌ์—์„œ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๋ชจ๋ธ์€ Role-Based Access Control ์ž…๋‹ˆ๋‹ค. '์œ ์ €'๋ฅผ '์—ญํ• '๋‹จ์œ„๋กœ ๋ฌถ๊ณ , '์—ญํ• '์˜ ๊ถŒํ•œ์„ ๋งค๋‹ˆ์ง•ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์œ ์ €๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ๋ชจ๋‘ ๋‚˜์—ด(a.k.a Access-Control List)ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, RBAC๋ชจ๋ธ์€ ์–ด๋“œ๋ฏผ์˜ ์‹œ๊ฐ„์„ ๋งค์šฐ ์„ธ์ด๋ธŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ œํ’ˆ์ด ์ ์ฐจ ๋ณต์žกํ•ด์ง€๊ณ  ํ•˜๋‚˜์˜ ๊ณ ๊ฐ์‚ฌ(ํšŒ์‚ฌ ํ˜น์€ ๊ทธ๋ฃน)๋‚ด์˜ ์œ ์ €๊ฐ€ ๋งŽ์•„์ง€๊ฒŒ ๋˜๋ฉด์„œ, ๊ฐ๊ฐ์˜ ์œ ์ €์—๊ฒŒ '์—ญํ• '์„ ์ง์ ‘ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆด ๋ฟ ์•„๋‹ˆ๋ผ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์šด ์ผ์ด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ '์œ ์ € ๊ทธ๋ฃน'์ด๋ผ๋Š” ๊ฐœ๋…์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ RBAC ๋ชจ๋ธ์—์„œ ๋” ๋‚˜์•„๊ฐ€, ์œ ์ €๋ฅผ '์œ ์ € ๊ทธ๋ฃน'์œผ๋กœ ์นดํ…Œ๊ณ ๋ผ์ด์ฆˆํ•˜๊ณ  '์œ ์ € ๊ทธ๋ฃน'์— '์—ญํ• '์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. 2. ์„ธ๋ถ„ํ™”ํ•˜๊ธฐ: ๊ถŒํ•œ ๊ตฌ์กฐํ™”ํ•˜๊ธฐ RBAC๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ '์œ ์ €'์™€ '์—ญํ• '์˜ ๊ถŒํ•œ ๊ตฌ์กฐ๋ฅผ ์žก์•˜๋‹ค๋ฉด, ๊ทธ ๋‹ค์Œ์œผ๋กœ ์–ด๋–ค ๊ถŒํ•œ์„ ์–ด๋””๊นŒ์ง€ ์„ธ๋ถ„ํ™”ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์€ ๋ณดํŽธ์ ์œผ๋กœ 3 ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1) ํŽ˜์ด์ง€ ๊ถŒํ•œ: ํŽ˜์ด์ง€๋‚˜ ๊ธฐ๋Šฅ์— ์ ‘๊ทผํ•˜๋Š” ๊ถŒํ•œ 2) ์ž‘์—… ๊ถŒํ•œ: ํŽ˜์ด์ง€/๊ธฐ๋Šฅ ํ•˜์œ„์˜ ํŠน์ • ์•ก์…˜์— ์ ‘๊ทผํ•˜๋Š” ๊ถŒํ•œ 3) ๋ฐ์ดํ„ฐ ๊ถŒํ•œ: ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ถŒํ•œ *๋ฐ์ดํ„ฐ ๊ถŒํ•œ์€ ์ž‘์—… ๊ถŒํ•œ๊ณผ ๋ณ„๊ฐœ๋กœ, ๋…๋ฆฝ์ ์ž„. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๊ถŒํ•œ๊ณผ ์ž‘์—… ๊ถŒํ•œ์€ Yes/No์ด๋ฉฐ, ๋ฐ์ดํ„ฐ ๊ถŒํ•œ์˜ ์˜ต์…˜์€ Add, Edit, Delete, Hide(๊ถŒํ•œ์—†์Œ) ์ž…๋‹ˆ๋‹ค. 3. ์‚ฌ์šฉํŽธ์˜์„ฑ๊ณผ ์„ธ๋ถ„ํ™”์˜ ๋ฐธ๋Ÿฐ์Šค ์žก๊ธฐ SaaS ์†”๋ฃจ์…˜์ด ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์„ธ๋ถ„ํ™”๋˜๋ฉด, ๊ถŒํ•œ๊ด€๋ฆฌ์˜ ์‚ฌ์šฉํŽธ์˜์„ฑ๋„ ํ•˜๋‚˜์˜ ๊ณผ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ์„ ๊ธ์ •์  ๊ฒฝํ—˜์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ คํ•  ์‚ฌํ•ญ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. 1) ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ๊ถŒํ•œ: ๋ช‡๋ช‡ ๊ถŒํ•œ์€ ๋ฐฑ์—”๋“œ์—์„œ ์ •์˜๋˜์–ด์•ผ ํ•˜๋ฉฐ ์œ ์ €๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2) ๊ธฐ๋ณธ ์—ญํ• ๊ณผ ๊ธฐ๋ณธ ๊ถŒํ•œ: ๊ธฐ๋ณธ ์—ญํ• ๊ณผ ๊ถŒํ•œ์„ ํ”„๋ฆฌ์…‹์œผ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ์œ ์ €์˜ ์‹œ๊ฐ„์„ ๋งŽ์ด ์„ธ์ด๋ธŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ถฉ๋ถ„ํžˆ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ฃผ์š” ์‚ฌ๊ณ ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3) ๊ฐ„๊ฒฐํ•œ ์˜ต์…˜: ์œ ์ € ์ผ€์ด์Šค๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๊ถŒํ•œ ์˜ต์…˜๋“ค์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด์„œ Add, Edit, Delete ๊ถŒํ•œ์€ Edit์œผ๋กœ ๋ฌถ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฐฑ์—”๋“œ์—์„œ๋Š” ๋ชจ๋“  ์˜ต์…˜์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š”๊ฒŒ ํ™•์žฅ์„ฑ ์ธก๋ฉด์—์„œ ์ข‹์Šต๋‹ˆ๋‹ค.) ๋งˆ์น˜๋ฉฐ. SaaS๋ฅผ ์œ„ํ•œ ๊ถŒํ•œ์„ ๋””์ž์ธํ•˜๋Š” ๊ฒƒ์ด ์‰ฌ์šด ์ผ์€ ์•„๋‹ˆ์ง€๋งŒ ์†”๋ฃจ์…˜์˜ ์‚ฌ์šฉ์‚ฌ๋ก€๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ , ์†”๋ฃจ์…˜ ๊ด€๋ฆฌ์™€ ํ™•์žฅ์„ฑ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ์€ ๊ผญ ํ•„์š”ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด ์•„ํ‹ฐํด์ด ์œ ์ €, ๊ทธ๋ฃน, ์—ญํ• , ๋‹ค์–‘ํ•œ ๋ ˆ๋ฒจ์˜ ๊ถŒํ•œ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ถŒํ•œ์ด ์‚ฌ์šฉ์ž์™€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•œ ํ›„์—๋Š” ๋” ํšจ๊ณผ์ ์ด๊ณ  ์šฐ์•„ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ถŒํ•œ์„ ๋””์ž์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- ๐Ÿ”Š B2B ๋””์ž์ด๋„ˆ๋“ค์˜ ๋ชจ์ž„ ์†Œ๊ฐœ B2B ํ”„๋กœ๋•ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” B2B ๋””์ž์ด๋„ˆ๋“ค์€ B2C ๋””์ž์ด๋„ˆ๋ณด๋‹ค ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๋ฐ ๋น„ํ•ด ์ž๋ฃŒ, ์ง€์‹, ํ”ผ๋“œ๋ฐฑ์„ ์ฐพ๋Š”๋ฐ๋„ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ B2B ํ”„๋กœ๋•ํŠธ ๋””์ž์ด๋„ˆ๋“ค์ด ํ•œ์ž๋ฆฌ์—์„œ ์–ด๋ ค์šด ์ , ๋ฐฐ์šด ์ ์„ ๊ณต์œ ํ•˜๊ณ  ์„œ๋กœ ๋„์›€์ด ๋˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์šด์˜์ค‘์ž…๋‹ˆ๋‹ค. ๐Ÿ”— B2B ๋””์ž์ด๋„ˆ๋“ค์˜ ๋ชจ์ž„ ๋…ธ์…˜ ๋งํฌ: https://www.b2b-designers.space

Designing permissions for a SaaS app

Medium

Designing permissions for a SaaS app

2021๋…„ 12์›” 2์ผ ์˜ค์ „ 4:52

๋Œ“๊ธ€ 0