Microsoft Information Protection SDK - 동의
열거형 클래스는 mip::Consent
애플리케이션 개발자가 SDK에서 액세스하는 엔드포인트를 기반으로 사용자 지정 동의 환경을 제공할 수 있도록 하는 사용하기 쉬운 접근 방식을 구현합니다. 이 알림은 수집될 데이터, 데이터를 제거하는 방법 또는 법률 또는 규정 준수 정책에 필요한 기타 정보를 사용자에게 알릴 수 있습니다. 사용자가 동의를 부여하면 애플리케이션을 계속할 수 있습니다. 이 대리자는 AD RMS(Active Directory Rights Management Services)에 액세스하려고 할 때만 호출됩니다. 클라우드 서비스에 액세스할 때 호출되지 않습니다. 애플리케이션에서 AD RMS를 지원하지 않는 경우 항상 반환 Consent.AcceptAlways
되는 대리자를 구현할 수 있습니다.
구현
동의는 기본 클래스를 mip::Consent
확장하고 열거형 값 중 mip::Consent
하나를 반환하도록 구현하여 GetUserConsent
구현됩니다.
파생된 mip::Consent
개체가 또는 mip::ProtectionProfile::Settings
생성자에 전달 mip::FileProfile::Settings
됩니다.
사용자가 동의를 제공해야 하는 작업을 수행하는 경우 SDK는 메서드를 GetUserConsent
호출하여 대상 URL을 매개 변수로 전달합니다. 이 메서드에서는 사용자에게 필요한 정보를 표시하는 것을 구현하여 서비스 사용에 동의하는지 여부를 결정할 수 있습니다.
동의 옵션
- AcceptAlways: 동의하고 결정을 기억하십시오.
- 동의: 한 번 동의합니다.
- 거부: 동의하지 마십시오.
SDK가 이 메서드에 대한 사용자 동의를 요청하면 클라이언트 애플리케이션은 사용자에게 URL을 제공해야 합니다. 클라이언트 애플리케이션은 사용자 동의를 얻는 몇 가지 방법을 제공하고 사용자의 결정에 해당하는 적절한 동의 열거형을 반환해야 합니다.
샘플 구현
consent_delegate_impl.h
class ConsentDelegateImpl final : public mip::ConsentDelegate {
public:
ConsentDelegateImpl() = default;
virtual mip::Consent GetUserConsent(const std::string& url) override;
};
consent_delegate_impl.cpp
SDK에 동의 GetUserConsent
가 필요한 경우 메서드는 SDK에 의해 호출되고 URL은 매개 변수로 전달됩니다. 아래 샘플에서 사용자는 SDK가 제공된 URL에 연결하고 명령줄에 대한 옵션을 사용자에게 제공한다는 알림을 받습니다. 사용자의 선택에 따라 사용자는 동의를 수락하거나 거부하며, 이는 SDK에 전달됩니다. 사용자가 동의를 거부하면 애플리케이션이 예외를 throw하고 보호 서비스에 대한 호출이 발생하지 않습니다.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
//Print the consent URL, ask user to choose
std::cout << "SDK will connect to: " << url << std::endl;
std::cout << "1) Accept Always" << std::endl;
std::cout << "2) Accept" << std::endl;
std::cout << "3) Reject" << std::endl;
std::cout << "Select an option: ";
char input;
std::cin >> input;
switch (input)
{
case '1':
return Consent::AcceptAlways;
break;
case '2':
return Consent::Accept;
break;
case '3':
return Consent::Reject;
break;
default:
return Consent::Reject;
}
}
테스트 또는 개발 중이거나 클라우드 기반 서비스만 사용하는 경우 기본 ConsentDelegate
을 구현할 수 있습니다.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
return Consent::AcceptAlways;
}
그러나 프로덕션 코드에서 사용자는 지역 또는 비즈니스 요구 사항 및 규정에 따라 동의할 수 있는 선택 사항을 제시해야 할 수 있습니다.