Microsoft Information Protection SDK – Hozzájárulás

Az mip::Consent enum osztály egy könnyen használható megközelítést implementál, amely lehetővé teszi az alkalmazásfejlesztők számára, hogy egyéni hozzájárulási élményt nyújtsanak az SDK által elért végpont alapján. Az értesítés tájékoztathatja a felhasználót az összegyűjtött adatokról, az adatok eltávolításának módjáról, illetve a jogszabályok vagy megfelelőségi szabályzatok által megkövetelt egyéb információkról. Miután a felhasználó megadta a hozzájárulást, az alkalmazás folytathatja a műveletet. Ezt a meghatalmazottat csak az Active Directory Rights Management Services (AD RMS) elérésekor hívja meg a rendszer. A felhőszolgáltatások elérésekor nem hívják meg. Ha az alkalmazás nem támogatja az AD RMS-t, implementálhat egy mindig visszaadott meghatalmazottat Consent.AcceptAlways.

Implementáció

A hozzájárulás az alaposztály kibővítésével és az mip::Consent enumerálási értékek egyikének mip::Consent visszaadásával GetUserConsent valósul meg.

A származtatott mip::Consent objektum át lesz adva a konstruktornak vagy mip::ProtectionProfile::Settings a mip::FileProfile::Settings konstruktornak.

Amikor egy felhasználó olyan műveletet hajt végre, amely hozzájárulást igényel, az SDK meghívja a GetUserConsent metódust, és paraméterként adja át a cél URL-címet. Ebben a módszerben valósítja meg a felhasználó számára a szükséges információk megjelenítését, így eldöntheti, hogy hozzájárul-e a szolgáltatás használatához.

  • AcceptAlways: Hozzájárulás és a döntés megjegyzése.
  • Elfogadás: Hozzájárulás egyszer.
  • Elutasítás: Ne járul hozzá.

Amikor az SDK ehhez a módszerhez felhasználói hozzájárulást kér, az ügyfélalkalmazásnak meg kell jelenítenie az URL-címet a felhasználónak. Az ügyfélalkalmazásoknak biztosítaniuk kell a felhasználói hozzájárulás beszerzésének valamilyen módját, és vissza kell adniuk a felhasználó döntésének megfelelő hozzájárulási számot.

Minta implementáció

class ConsentDelegateImpl final : public mip::ConsentDelegate {
public:
  ConsentDelegateImpl() = default;
  
  virtual mip::Consent GetUserConsent(const std::string& url) override;

};

Ha az SDK hozzájárulást igényel, az GetUserConsent SDK meghívja a metódust, és paraméterként adja át az URL-címet. Az alábbi mintában a felhasználó értesítést kap arról, hogy az SDK csatlakozik a megadott URL-címhez, és lehetőséget biztosít a felhasználónak a parancssorban. A felhasználó döntése alapján a felhasználó elfogadja vagy elutasítja a hozzájárulást, és azt átadja az SDK-nak. Ha a felhasználó elutasítja a hozzájárulást, az alkalmazás kivételt fog eredményezni, és nem történik hívás a védelmi szolgáltatás felé.

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;
  }  
}

Tesztelés vagy fejlesztés során, vagy ha csak a felhőalapú szolgáltatásokat használja, egy alapszintű ConsentDelegate implementálható.

Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
  return Consent::AcceptAlways;
}

Az éles kódban azonban előfordulhat, hogy a felhasználónak meg kell adnia egy hozzájárulási lehetőséget a regionális vagy üzleti követelményektől és előírásoktól függően.