Designing permissions for a SaaS app
Medium
๐ [์ฑ์ฅ์ ์ํ ๋ฐ์ผ๋ฆฌ ์ํฐํด] '์ํฌ ํ๋ก์ธ์ค' 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
2021๋ 12์ 2์ผ ์ค์ 4:52