일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- vscode 수동업데이트
- 반갑지는않아
- 해볼게
- ubuntu_rg_cpu_100%
- 안할수가없네
- ReactRouter6 다운그레이드
- 정규식
- 리엑트라우터 구버전 살리기
- 리엑트
- 야근은결국승리
- kotlinc
- 선택했을까
- checkupdates
- ERR_CERT_AUTHORITY_INVALID
- VSCode
- 나의야근
- 편하게쓰자
- ReactRouter withRouter
- 자바스크립트
- 코틀린
- 신기술은
- 모던디자인테마
- 날이새도록
- HTML 자바스크립트 태그제거
- 시플플은영원하구나
- react
- ReactRouter 4
- 복붙하기좋은
- 공부할시간이
- 무과금살아남기
- Today
- Total
필사(筆寫)
Guest, User Previleges를 express-acl로 관리하기. 본문
ACL이 담당하는 것은 미들웨어의 접근권한
1. 미들웨어 접근 권한을 제어
Application < Router
2. 어플리케이션 내부 로직의 접근 및 관리 권한 제어
Board < Category < Document < { Functions }< Group < User < Access User
refer for acl, for XpressEngine.
Xe의 경우 global, session에 document번호를 기억해뒀다가 수정 및 관리 권한을 주게 만들었었다.
acl에서 role 한개를 정의 할 때는 보통
role = {
group : 'admin',
permissions : [
{
resource : 'users',
method : ['GET', 'POST', 'DELETE', 'PUT'],
action : 'allow'
}
]
}
이런식으로 요청에 대응한 라우팅 접근 권한을 관리하는 구조.
여기서 이점을 본따고, 페이스북 api에서 퍼미션에 대해서 행위 기준점을 최대한 본따보자.
아래와 같이 특정 리소스 군 자체에 권한을 쥐어줄땐 아래와 같이 준다.
permission = {
resource : 'publish_board_document',
action : 'allow'
}
비회원이 문서 1개의 권한을 승인 받았다면, 퍼미션을 설정한다고 하자.
permission = {
resource : 'manage_board_document',
resource_id : board_id1.document_id1,
action : 'allow'
}
그 기능의 특정 기능을 의미하는거라면,
user.roles 는 역할적 권한을 의미한다.
- 이 역할을 담당하는 그룹에 소속 해줘
user.permissions 는 그룹 권한을 넘어선 배정 권한이라고 볼 수 있겠다.
- 특정 게시판 관리권한에 잠깐 소속해줘.
req.permissions 는 접근한 사람의 인스턴트한 권한을 보관하는 역할이다. 세션이 죽으면 날아가는 휘발성을 갖게 되는데
날아가지 말아야하는 정보는 차라리 user.permissions에 만들어야 한다는 의미다.
authenticate 하여 권한을 획득한 user도 req.permissions를 사용할 때가 있다.
- 회원 로그인 했는데, 비회원때 작성한 비밀글을 읽을 경우가 대표적인 예
따라서, 현재 권한을 배정하는 일이 매우 일회적인 권한 획득이면 req.permissions에서 권한 검증이 있어야 한다.
또한 회원의 특별한 권한은 user.permissions에서 이루어져야 한다.
그룹권한은 user.roles 에서 검증이 되어야 한다.
'개인학습' 카테고리의 다른 글
요즘 개발 이해하기 (React, Angular 들어가기 전) (0) | 2017.12.13 |
---|---|
React 튜토리얼에 왜 틱택토가 있지? (0) | 2017.12.06 |
영문 작문 무료 검사기 (0) | 2017.12.04 |
3+ Best Posting & Writing Platforms. (0) | 2017.12.03 |
Node.js Passport + Express Route Handler (0) | 2017.11.29 |