11) 보안 문서의 권한 확인
SCI 서버 사용자 ID 기반의 보안 문서 권한 확인
API
Method | URL |
---|---|
POST | /api/internal/authCheck |
Request Header
Name | Required | Description |
---|---|---|
Authorization | required | 사용자 인증 수단, JWT값 Authorization: Bearer {JWT} 참고 : JWT값은 인증/인가 서비스를 통해 발급 받는다. |
Request Body
Name | Required | Type | Description |
---|---|---|---|
srcFilePath | required | string | 암호화 문서 경로 |
companyId | required | string | 권한 확인 시 회사ID (회사 별 키 데이터 조회 시 사용) |
userId | required | string | 권한 확인 시 대상 사용자ID |
Response
Name | Type | Description |
---|---|---|
code | int | 성공 여부 (0:성공) |
userId | string | 대상 사용자ID |
read | int | 읽기 권한 (1:권한 있음 / 0:권한 없음) |
edit | int | 쓰기 권한 (1:권한 있음 / 0:권한 없음) |
decrypt | int | 복호화 권한 (1:권한 있음 / 0:권한 없음) |
Examples
Request Body
- Body
{
"srcFilePath": "E:\\test\\orgin\\test.xlsx",
"companyId": "7FDKQsEK-QVGKyXA2-fx1LxIzy-SNIre0s9",
"userId" : "huiju.lee"
}
Response
- 성공
Status code : 200 OK
{
"code": 0,
"userId": "huiju.lee",
"read": 1,
"edit": 0,
"decrypt": 0
}
- 실패
Status code : 400 Bad Request
{
"code": 40101,
"message": "Invalid token",
"detail": "invalid_token"
}
보안 문서 권한 판단 규칙
사용자 ID와 보안 문서 헤더 정보를 기반으로 키볼트에 연동된 SCI 서버 권한을 리턴
[DAC] : 보안 문서 속성의 접근 대상자 정보 권한으로 판단
(1) 키볼트에서 사용자 아이디로 그룹 패스 정보 취득
(2) 헤더 정보에서 DAC 객체의 DAC_TYPE_ID 리스트 취합(DAC_TYPE이 0인 사용자 리스트, 1인 부서 리스트)
(3) 사용자 리스트에 매칭되는 ID가 있으면 DAC_READ, DAC_EDIT, DAC_DECRYPT 권한 리턴
(4) 1번에서 취득한 그룹 패스의 첫 번째 그룹 ID부터 매칭 되는 ID가 있으면 DAC_READ, DAC_EDIT, DAC_DECRYPT 권한 리턴
(5) 3~4번 과정에서 매칭되는 DAC_TYPE_ID가 없으면 DAC_READ, DAC_EDIT, DAC_DECRYPT 권한 없음 리턴
[MAC] : SCI 서버의 범주 온라인 권한으로 판단
(1) 키볼트에서 사용자 아이디로 분류 아이디 취득 (2) 헤더 정보에서 MAC 객체의 MAC_CATEGORY 취득 (3) 2번과 1번에서 취득한 정보(MAC_CATEGORY-사용자 분류아이디)로 키볼트에서 해당 범주의 온라인 권한(onlinegradeauth) 취득 (4) 3번에서 취득한 온라인 권한 문자열의 첫 3자리(읽기, 편집, 해제) 권한 리턴
[GRADE] : SCI 서버의 등급 온라인 권한으로 판단
(1) 키볼트에서 사용자 아이디로 분류 아이디 취득
(2) 헤더 정보에서 DAC 객체의 DAC_TYPE 리스트 취득
(3) DAC_TYPE가 2인 DAC_TYPE_ID와 DAC_GRADE_ACCESS_CLASS_ID 취득
(4) DAC_TYPE_ID(keyid)로 키볼트에서 onlinegradeauth 취득
(5) 1번에서 취득한 분류 아이디가 DAC_GRADE_ACCESS_CLASS_ID에 포함되어 있는지 확인
(6) 포함되어 있으면 온라인 권한 문자열의 첫 3자리(읽기, 편집, 해제) 권한 리턴