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

3) 보안문서 암호화

일반 문서를 보안 문서로 암호화

API

MethodURL
POST/api/internal/encryption

Request Header

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

Request Body

NameRequiredTypeDescription
compnayIdrequiredstring대상 문서서를 사용하는 회사ID(회사 별 키 데이터 조회 시 사용)
encTyperequiredstring문서 타입
D : DAC 문서
M : MAC 문서
G : GRADE 문서
docListrequiredstringencType에 따라 적절한 권한 리스트 입력
D : SECURITYDOMAIN^111001100|USER01^111001100
M : 0000001
G : 0000001|RND1^110001111|dev04^010001111
※ G 및 D인 경우 아래의 "권한 문자열" 표를 참고하여 입력
srcFilePathrequiredstring원본 일반 문서 경로
dstFilePathrequiredstring암호화된 보안 문서 경로
algorithmoptionalstringAES / ARIA
기본값 : AES
extraInfooptionalstringJSON 형식의 추가 정보 입력(아래의 extraInfo 데이터 설명표 및 샘플 데이터 참고)
extraInfo 데이터 설명표
KeyRequiredTypeDescription
sourcerequiredjson
namerequiredstring호출 시스템 이름
fromrequiredstring호출 시스템 URL
userjson
idstring사용자 아이디
namestring사용자 이름
departstring사용자 전체 부서 (상위그룹/중위그룹/하위그룹)
dutystring사용자 직책 이름
docUidstring암호화 파일의 DOC_UID
parentUidstring부모 문서의 UID
branchUidstring현재 자신의 UID
  • 샘플 데이터
{
"source": {
"name": "EKMS",
"from": "https://devekms.softcamp.co.kr"
},
"user": {
"id": "ekmsTest@softcamp.co.kr",
"name": "ekmsTest",
"depart": "임직원/연구소/개발실/개발1팀",
"duty": "과장"
},
"docUid": "77*9Sw5WOOq1hO*_vQ7vv70D77*9Oei_",
"parentUid": "88*9Sw5WOOq1hO*_vQ7vv70D77*9Oei_",
"branchUid": "99*9Sw5WOOq1hO*_vQ7vv70D77*9Oei_"
}
권한 문자열 : 문서 타입이 D 또는 G일때 포함되는 9자리 문자열 설명
1열2열3열4열5열6열7열8열9열
키구분읽기 권한수정 권한복호화 권한외부전송권한프린트권한마킹유무자동파기권한변경
1 : 그룹
0 : 개인
1 : 권한있음
0 : 권한없음
1 : 권한있음
0 : 권한없음
1 : 권한있음
0 : 권한없음
1 : 권한있음
0 : 권한없음
1 : 권한있음
0 : 권한없음
1 : 마킹있음
0 : 마킹없음
4 : 유효기간
2 : 출력횟수
1 : 읽기횟수
0 : 영향없음
1 : 변경가능
0 : 변경못함
  • 예) 개인이고 읽기권한, 복호화 권한, 외부전송권한이 있고 나머지 권한은 없을 경우의 권한문자열 => "010110000"

Response

NameTypeDescription
codeint0 : 성공
0 이외의 값 : 에러
messagestring"OK" : 성공
이외의 값 에러 메시지

Examples

Request

  • Body
{
"compnayId": "7FDKQsEK-QVGKyXA2-fx1LxIzy-SNIre0s9",
"encType": "D",
"docList": "SECURITYDOMAIN^110001111",
"srcFilePath" : "/opt/shieldrm/data/test.xlsx",
"dstFilePath" : "/opt/shieldrm/dataout_test.xlsx",
"extraInfo": "{\"source\":{\"name\":\"EKMS\",\"from\":\"https://devekms.softcamp.co.kr\"}}"
}

Response

  • 성공
{
"code": 0,
"message" : "OK"
}
  • 실패
  • SCSL (암호화 모듈) 에러
{
"code": -61,
"message" : "EXCEPTION error"
}
  • Status code : 401 UNAUTHORIZED
{
"code": 40001,
"message": "Invalid token",
}
  • Status code : 500 INTERNAL_SERVER_ERROR
{
"code": 50001,
"message": "SCKE error code"
}

API 내부에서 호출하는 SKMS API 및 SCSL 함수정리

호출 순서API 및 함수명
1SCSL 암호화 함수 호출 : CloudAPIEncrypt()
2헤더키 조회 API 호출 : /api/docu/headerKey
3SCSL 헤더정보 조회 함수 호출 : dsGetFullHeaderEx()
4통합로그 전송 API 호출 : /log/container-linker