Delen via


Microsoft Information Protection SDK - Toestemming

De mip::Consent enum-klasse implementeert een gebruiksvriendelijke benadering waarmee toepassingsontwikkelaars een aangepaste toestemmingservaring kunnen bieden op basis van het eindpunt dat wordt geopend door de SDK. De melding kan een gebruiker informeren over de gegevens die worden verzameld, hoe de gegevens worden verwijderd, of andere informatie die is vereist door wet- of nalevingsbeleid. Zodra de gebruiker toestemming verleent, kan de toepassing doorgaan. Deze gemachtigde wordt alleen aangeroepen wanneer u toegang probeert te krijgen tot Active Directory Rights Management Services (AD RMS). Het wordt niet aangeroepen bij het openen van cloudservices. Als uw toepassing AD RMS niet ondersteunt, kunt u een gemachtigde implementeren die altijd wordt geretourneerd Consent.AcceptAlways.

Implementatie

Toestemming wordt geïmplementeerd door de mip::Consent basisklasse uit te breiden en te implementeren GetUserConsent om een van de mip::Consent enum-waarden te retourneren.

Het object dat is afgeleid van mip::Consent , wordt doorgegeven aan de mip::FileProfile::Settings of mip::ProtectionProfile::Settings constructor.

Wanneer een gebruiker een bewerking uitvoert waarvoor toestemming is vereist, roept de SDK de GetUserConsent methode aan, waarbij de doel-URL als parameter wordt doorgegeven. Het is in deze methode waarbij een implementatie de benodigde informatie voor de gebruiker zou implementeren, zodat ze een beslissing kunnen nemen over het feit of ze toestemming geven voor het gebruik van de service.

  • AcceptAlways: Toestemming geven en de beslissing onthouden.
  • Accepteren: eenmaal toestemming.
  • Weigeren: Geef geen toestemming.

Wanneer de SDK toestemming van de gebruiker met deze methode aanvraagt, moet de clienttoepassing de URL aan de gebruiker presenteren. Clienttoepassingen moeten een aantal manieren bieden om gebruikerstoestemming te verkrijgen en de juiste toestemmingsum te retourneren die overeenkomt met de beslissing van de gebruiker.

Voorbeeld van implementatie

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

};

Wanneer de SDK toestemming vereist, wordt de GetUserConsent methode aangeroepen door de SDK en de URL die als parameter is doorgegeven. In het onderstaande voorbeeld krijgt de gebruiker een melding dat de SDK verbinding maakt met die opgegeven URL en de gebruiker een optie biedt op de opdrachtregel. Op basis van de keuze van de gebruiker accepteert of weigert de gebruiker toestemming en die wordt doorgegeven aan de SDK. Als de gebruiker toestemming weigert, genereert de toepassing een uitzondering en wordt er geen aanroep naar de beveiligingsservice gedaan.

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

Bij het testen of ontwikkelen, of wanneer u alleen de cloudservices gebruikt, kan een basis ConsentDelegate worden geïmplementeerd.

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

In productiecode kan de gebruiker echter een keuze moeten maken om toestemming te geven, afhankelijk van regionale of zakelijke vereisten en voorschriften.