서비스 처음에 단순히 관리자/유저만 있었다가
나중엔 팀이라는 개념이 생기고
더 나아가서 유료팀/무료팀이 생기고
나중엔 유료팀에서도 A기능 B기능 쓰는 팀, D기능 쓰는팀 등등 나뉘고
A팀에서 ABC 기능 쓸 수 있는 유저, BCD 기능 쓸 수 있는 유저 이런식으로 나뉘면서
권한 체크하는게 매우 복잡해지고 모든 서비스 메소드에서 팀, 유저 권한 다 갖고와서 비교하고 있는데
혹시 이런거 표준적인 방법이 있음?
서비스 처음에 단순히 관리자/유저만 있었다가
나중엔 팀이라는 개념이 생기고
더 나아가서 유료팀/무료팀이 생기고
나중엔 유료팀에서도 A기능 B기능 쓰는 팀, D기능 쓰는팀 등등 나뉘고
A팀에서 ABC 기능 쓸 수 있는 유저, BCD 기능 쓸 수 있는 유저 이런식으로 나뉘면서
권한 체크하는게 매우 복잡해지고 모든 서비스 메소드에서 팀, 유저 권한 다 갖고와서 비교하고 있는데
혹시 이런거 표준적인 방법이 있음?
enum 하나 만들어서
entity마다 다 권한 column을 만드나?
RBAC, zanzibar
이게마따 - dc App
나는 기능 유형 제한 없이 모든 권한을 단일 목록으로 관리하고, 그룹이 여러 권한들을 독립적으로 가질 수 있게 한 뒤 유저들을 그룹에 포함시켜서 권한을 줘 여기서 좀 더 복잡하게 하려면, 여러 그룹에 포함할 수 있게 하고 각 그룹의 권한을 논리합 하는데, 각 권한은 권한이 있다/디폴트다/권한이 없다 셋으로 구분돼 권한이 없는 것, 있는 것 각각 논리합해서 권한 없는게 있는 것보다 우선순위가 높은 것으로 해서 또 둘을 합쳐 그룹이 아니라 유저 특정 권한도 구현하고싶으면 위에서 한것과 똑같이 그룹 통합권한에 유저 개인권한을 합쳐 만약 한 단계 더 세밀하게 관리하고 싶으면 유저권한에 권한 오버라이드 기능 같은걸 넣어서, 어떤 유저가 그룹 상으로는 권한을 빼앗겼더라도 해당 유저에대한 권한이 있으면 - dc App
유저 권한을 우선시키는 식으로 오버라이드 할 수도 있어 - dc App
핵심은 권한을 카테고리나 종속성관리 하려고 하지 말고 최대한 단순화하고, 오직 그룹에만 권한이 종속되게 하고 유저를 그룹에 종속시켜서 유저와 권한이 연결성을 가지도록 하는거야 - dc App
여기서 뭐하십니까
지적허영의 강에서 헤엄치고 있습니다 - dc App
그룹, 권한으로 관리하면 되겠네
지금 설명한대로 보면 사용자 - 팀 - 권한 그룹 - 권한 이렇게 구성하면 되지 않을까