프로젝트를 만들면서도, 또 앞으로 만들 프로젝트들에도 여러가지 회원에 권한을 담당하는 파트들이 존재했는데
(ex) 관리자, 일반 유저, 결제한 회원등 )
앞으로 설계 할 경우 이런 모델에 대한 이해를 바탕으로 정리하면 좋을것이라 생각되어 정리해봤따.
MAC (Mandatory Access Control)
- 강제적 접근 통제
- 자원에 대한 모든 권한을 관리자로부터 부여 받는다.
- 관리자만 사용자, 객체에 대한 등급을 수정할수 있다.
- 관리자가 모든 사용자/객체에 대해 관리하므로 보안에 좋지만 관리하기 힘들다.
DAC (Discretionary Access Control)
- 임의적 접근 통제
- 데이터 소유자가 직접 접근권한을 부여하는 방식
- 실수로 많은 권한을 부여할수 있어 보안에 취약
RBAC (Role Based Access Control)
- 역할 기반 접근통제
- 각 사용자는 하나 이상의 역할을 가지며 역할에 따라 권한이 부여된다
- 권한에 따른 기능들이 딱딱 정해지기 때문에 관리하기 편하면서 보안에도 좋다.(MAC와 DAC의 단점을 보완)
- ex) USER,MANAGER 권한을 가진 경우 두가지 권한에 해당되는 기능들에 접근가능하다.
- ex) 집의 열쇠키와 비슷하다. 키마다 특정 문을 열수있고 또한 그 키는 딱 정해져있다.
ABAC ( Attribute Based Access Control)
- 속성 기반 접근 제어
- 사용자나 객체의 속성에 따라 권한을 부여한다.
- 다양한 조건과 규칙을 고려할수 있다.
- 복잡하고 비용이 많이 들지만, 보안이 좋고 유연하다.
- ex) AWS의 IM
- ex) 사용자가 특정 직업 이면서~~ 특정 업무에 해당된 경우 해당 권한을 부여한다.
'프로그래밍 지식 > 웹 개발' 카테고리의 다른 글
OAuth 2.0 이란 (0) | 2021.07.09 |
---|---|
HTTP 기본 지식 - HTTP Header (0) | 2021.01.25 |
HTTP 기본 지식 - HTTP Status Code (0) | 2021.01.24 |
HTTP 기본 지식 - HTTP Method (0) | 2021.01.23 |
HTTP 기본 지식 - HTTP의 특징 (0) | 2021.01.23 |