재게시

이 개요는 MIP SDK의 다시 게시에 중점을 둡니다. 애플리케이션에서 사용자가 파일을 편집할 수 있도록 허용해야 하지만 소유자, 권한, 콘텐츠 키 등에 대한 원래 게시 라이선스 정보를 유지해야 하는 경우 다시 게시해야 합니다.

패턴은 다음과 같을 수 있습니다.

  • 사용자가 편집을 위해 보호되는 문서를 엽니다.
  • 사용자는 적절한 권한이 있는 경우에만 파일을 편집할 수 있어야 합니다.
  • 사용자가 문서를 편집한 후 저장합니다.

이 작업을 수행하기 위한 MIP SDK 의사 코드는 다음과 같습니다.

  • 대상 파일을 가리키는 mip::FileHandler를 만듭니다.
  • mip::ProtectionHandlermip::FileHandler 메서드에 의해 노출된 GetProtection()를 저장합니다.
  • 메서드를 호출하여 사용자에게 AccessCheck() 권한이 있는지 확인합니다.
  • mip::FileHandlerGetDecryptedTemporaryFileAsync() 또는 GetDecryptedTemporaryStreamAsync()를 사용하여 암호 해독된 임시 출력을 가져옵니다.
  • 임시 파일을 편집하거나 콘텐츠를 스트리밍하고 저장합니다.
  • 임시 파일을 가리키는 새 mip::FileHandler 인스턴스를 만들고 SetProtection() 메서드를 사용하여 저장된 mip::ProtectionHandler를 매개 변수로 제공합니다.
  • 변경 내용을 커밋합니다.

원본 파일의 mip::ProtectionHandler를 사용하여 편집된 문서에서 소유자, 콘텐츠 ID 및 콘텐츠 키가 유지 관리됩니다. 이러한 다시 게시 시나리오에서는 애플리케이션이 원래 mip::ProtectionHandler에 대한 참조를 유지해야 합니다.

구현

앞에서 설명한 것과 같이 mip::FileHandler 클래스는 레이블과 보호 정보를 모두 읽고, 쓰고, 제거하는 메서드를 표시합니다. 지원되는 작업의 전체 목록을 확인하려면 mip::FileHandler에 대한 참조 문서를 검토하십시오.

이 시나리오는 mip::FileHandler의 다음 메서드를 사용합니다.

  • GetProtection()
  • CommitAsync()
  • GetDecryptedTemporaryFileAsync()
  • SetProtection()

이 시나리오는 보호되는 스트림 및 버퍼의 암호화 및 암호 해독, 액세스 확인 수행, 게시 라이선스 받기, 보호되는 정보에서 속성 가져오기를 위한 기능을 표시하는 mip::ProtectionHandler도 사용합니다. AccessCheck() 메서드는 사용자에게 파일 편집 권한이 있는지 확인하는 데 사용됩니다.

이 재보호 시나리오를 성공적으로 완료하려면, '다음 단계' 아래의 빠른 시작 가이드를 검토하고 애플리케이션이 성공적으로 빌드되고 레이블을 나열할 수 있는지 확인합니다.

파일에서 보호 처리기 만들기 및 파일 암호 해독

mip::ProtectionHandler는 보호되는 스트림 및 버퍼를 암호화 및 해독하고, 액세스 확인을 수행하고, 게시 라이선스를 받고, 보호되는 정보에서 속성을 가져오는 기능을 제공합니다. mip::ProtectionHandler 개체는 ProtectionDescriptor 또는 직렬화된 게시 라이선스를 제공하여 구성됩니다. 이 사용 사례의 경우 이미 보호된 콘텐츠의 암호를 해독하거나 라이선스가 이미 생성된 콘텐츠를 보호할 때 게시 라이선스가 사용됩니다.

mip::FileHandlermip::FileHandler와 연결된 파일에서 mip::ProtectionHandler를 검색하는 명명된 GetProtection() 메서드를 공개합니다. mip::ProtectionHandler 개체가 검색되면 파일에 대한 사용자의 액세스 수준을 확인하는 데 동일한 개체를 사용할 수 있으며, 파일의 암호를 해독한 후 나중에 파일이 편집되면 암호화할 수 있습니다.

mip::ProtectionHandlerAccessCheck()는 사용자에게 파일에 대한 특정 권한이 있는지 확인하고 결과에 따라 부울 응답을 반환하는지 확인하는 데 사용됩니다. 예를 들어 사용자에게 편집 권한이 있는지 확인하려면 "EDIT" 값을 전달하는 메서드를 호출합니다. 결과가 true이면 사용자가 파일을 편집할 수 있도록 허용합니다. EDIT 권한이 확인되면 mip::FileHandlerGetDecryptedTemporaryFileAsync()를 사용하여 암호 해독된 임시 파일을 검색합니다.

자세한 내용은 민감도 레이블을 사용하여 암호화를 적용하여 콘텐츠에 대한 액세스 제한을 참조하세요.

중요

액세스 확인 및 적용은 전적으로 애플리케이션 개발자에게 달려 있습니다. VIEW 권한이 있는 사용자는 보호되는 정보의 암호를 해독할 수 있습니다. 사용자가 부여한 권한 집합의 유효성을 검사하고 복사, 편집 또는 스크린샷 촬영과 같은 정보 보호 컨트롤을 통해 해당 권한을 적용하는 것은 애플리케이션의 맡습니다. 보호 제어를 적절하게 구현하지 않으면 중요한 정보가 노출될 수 있습니다.

보호를 적용하여 편집된 파일 저장 및 게시

파일의 암호를 해독한 후 파일을 편집할 수 있습니다. 편집 작업이 완료되면 변경 내용을 커밋할 수 있습니다. 커밋된 IFileHandler 파일을 처리하기 위해 임시 파일을 사용하여 개체를 만듭니다. 그러면 원본 파일에서 검색된 IProtectionHandler 개체를 사용하여 임시 파일을 보호할 수 있습니다.

오프라인 재게시

게시 라이선스 캐시를 사용할 수 있는 경우 오프라인으로 다시 게시할 수 있습니다. 애플리케이션이 이전에 오프라인 게시를 통해 템플릿을 캐시하고 라이선스 데이터를 게시한 경우 다시 게시 워크플로에 Rights Management 서비스에 대한 활성 연결이 필요하지 않습니다.

이 기능은 다음과 같은 시나리오에서 유용합니다.

  • 애플리케이션은 간헐적으로 연결된 환경에서 작동해야 합니다.
  • 대규모 일괄 처리 작업은 문서별 서비스 호출 없이 다시 게시해야 합니다.
  • 서비스 호출을 방지하면 성능이 향상됩니다.

오프라인 게시를 사용하도록 설정하고 오프라인 다시 게시를 시도하기 전에 템플릿이 캐시되는지 확인합니다. 설정 세부 정보는 오프라인 게시 를 참조하세요.

다음 단계