3) 보안문서 암호화
일반 문서를 보안 문서로 암호화
API
Method | URL |
---|---|
POST | /api/internal/encryption |
Request Header
Name | Required | Description |
---|---|---|
Authorization | required | 사용자 인증 수단, JWT값 Authorization: Bearer {JWT} 참고 : JWT값은 인증/인가 서비스를 통해 발급 받는다. |
Request Body
Name | Required | Type | Description |
---|---|---|---|
compnayId | required | string | 대상 문서서를 사용하는 회사ID(회사 별 키 데이터 조회 시 사용) |
encType | required | string | 문서 타입 D : DAC 문서 M : MAC 문서 G : GRADE 문서 |
docList | required | string | encType에 따라 적절한 권한 리스트 입력 D : SECURITYDOMAIN^111001100|USER01^111001100 M : 0000001 G : 0000001|RND1^110001111|dev04^010001111 ※ G 및 D인 경우 아래의 "권한 문자열" 표를 참고하여 입력 |
srcFilePath | required | string | 원본 일반 문서 경로 |
dstFilePath | required | string | 암호화된 보안 문서 경로 |
algorithm | optional | string | AES / ARIA 기본값 : AES |
extraInfo | optional | string | JSON 형식의 추가 정보 입력(아래의 extraInfo 데이터 설명표 및 샘플 데이터 참고) |
extraInfo 데이터 설명표
Key Required Type Description source required json name required string 호출 시스템 이름 from required string 호출 시스템 URL user json id string 사용자 아이디 name string 사용자 이름 depart string 사용자 전체 부서 (상위그룹/중위그룹/하위그룹) duty string 사용자 직책 이름 docUid string 암호화 파일의 DOC_UID parentUid string 부모 문서의 UID branchUid string 현재 자신의 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
Name | Type | Description |
---|---|---|
code | int | 0 : 성공 0 이외의 값 : 에러 |
message | string | "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 및 함수명 |
---|---|
1 | SCSL 암호화 함수 호출 : CloudAPIEncrypt() |
2 | 헤더키 조회 API 호출 : /api/docu/headerKey |
3 | SCSL 헤더정보 조회 함수 호출 : dsGetFullHeaderEx() |
4 | 통합로그 전송 API 호출 : /log/container-linker |