メインコンテンツまでスキップ

11) 보안 문서의 권한 확인

SCI 서버 사용자 ID 기반의 보안 문서 권한 확인

API

MethodURL
POST/api/internal/authCheck

Request Header

NameRequiredDescription
Authorizationrequired사용자 인증 수단, JWT값
Authorization: Bearer {JWT}
참고 : JWT값은 인증/인가 서비스를 통해 발급 받는다.

Request Body

NameRequiredTypeDescription
srcFilePathrequiredstring암호화 문서 경로
companyIdrequiredstring권한 확인 시 회사ID (회사 별 키 데이터 조회 시 사용)
userIdrequiredstring권한 확인 시 대상 사용자ID

Response

NameTypeDescription
codeint성공 여부 (0:성공)
userIdstring대상 사용자ID
readint읽기 권한 (1:권한 있음 / 0:권한 없음)
editint쓰기 권한 (1:권한 있음 / 0:권한 없음)
decryptint복호화 권한 (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자리(읽기, 편집, 해제) 권한 리턴