다음을 통해 공유


다시 게시(C++)

개요

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

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

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

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

  • 대상 파일을 가리키는 mip::FileHandler를 만듭니다.
  • mip::FileHandlerGetProtection() 메서드에 의해 노출된 mip::ProtectionHandler를 저장합니다.
  • AccessCheck() 메서드를 호출하여 사용자에게 EDIT 권한이 있는지 확인합니다.
  • 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()를 사용하여 암호 해독된 임시 파일을 검색합니다.

다양한 사용자 권한에 대한 자세한 내용은 Azure Information Protection에 대한 사용자 권한을 참조하세요.

Important

액세스 확인 및 적용은 전적으로 애플리케이션 개발자에게 달려 있습니다. VIEW 권한이 있는 사용자는 보호되는 정보의 암호를 해독할 수 있습니다. 사용자에게 부여된 일련의 권한을 확인하고 복사, 편집 또는 스크린샷 촬영 방지 등의 정보 보호 제어를 통해 이러한 권한을 적용하는 것은 애플리케이션에 따라 다릅니다. 보호 제어를 적절하게 구현하지 않으면 중요한 정보가 노출될 수 있습니다.

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

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

다음 단계