Share via


Toegangscontroles in de Microsoft Purview Informatiebeveiliging SDK

Het afdwingen van de rechten voor informatierechtenbeheer die in de complianceportal zijn gedefinieerd, is de verantwoordelijkheid van de ontwikkelaar van de toepassing. De SDK biedt een API en een set opsommingen om deze toegangscontroles te vereenvoudigen.

In de onderstaande voorbeelden en tabellen ziet u welke scenario's een toegangscontrole vereisen, de lijst met rechten waarop moet worden gecontroleerd en hoe u de controle uitvoert.

Lijst met rechten en resultaten

Raadpleeg Gebruiksrechten configureren voor Azure Information Protection voor een volledige lijst met gebruiksrechten en beschrijvingen. In dit artikel worden de verantwoordelijkheden van een toepassingsontwikkelaar gedefinieerd voor het afdwingen van rechten en ingeschakelde functies wanneer specifieke rechten wel of niet aanwezig zijn.

Belangrijk

Het is de verantwoordelijkheid van toepassingsontwikkelaars om rechten te controleren en af te dwingen . Als u geen controles uitvoert, kan dit leiden tot gegevensverlies.

Scenario's

Waar en hoe uw toepassing toegangscontroles uitvoert, is afhankelijk van het type toepassing dat u bouwt. Toepassingen die volledige bestandsuitvoer verwerken en geen gebruikersinterface hebben, maken het vaakst gebruik van de EXTRACT of OWNER rechten. Toepassingen met een gebruikersinterface vereisen de meeste gedetailleerde besturingselementen, waardoor de toegang tot gebruikersbesturingselementen en exportpaden in de toepassing wordt geblokkeerd. Zie de sectie voor het uitvoeren van toegangscontroles voor codevoorbeelden.

Toepassingen zonder een gebruikersinterface

Toepassingen zonder een gebruikersinterface zijn vaak service- of opdrachtregelinterfaces (CLI). Wanneer uw toepassing bestanden verwerkt die worden beveiligd door Purview Information Protection, moet deze ervoor zorgen dat een gebruiker zonder de juiste rechten de service of CLI niet kan gebruiken om het bestand te exporteren in een niet-beveiligde indeling.

Deze toepassingen moeten valideren dat de RECHTEN EIGENAAR of EXTRACT aanwezig zijn. Gebruikers met OWNER kunnen elke bewerking uitvoeren. Gebruikers met EXTRACT kunnen de beveiliging rechtstreeks verwijderen of opslaan in een nieuwe indeling, zelfs als die indeling geen ondersteuning biedt voor beveiliging.

Toepassingen met een gebruikersinterface

Bestands-SDK-toepassingen met een gebruikersinterface moeten besturingselementen implementeren die de toegang beperken tot bewerkingen die de gebruiker niet mag uitvoeren. Een voorbeeld van een dergelijke toepassing is de Azure Information Protection Viewer. De viewer ontsleutelt het bestand tijdelijk en geeft inhoud weer in het toepassingsvenster. Het voert gedetailleerde toegangscontroles uit voordat het document wordt weergegeven en schakelt elementen van de gebruikersinterface uit op basis van de resultaten van de toegangscontroles.

Een gedeeltelijke werkstroom voor het uitvoeren van toegangscontroles kan er als volgt uitzien:

  • Heeft de gebruiker het recht EIGENAAR ? Zo ja, schakel alle besturingselementen in en stop de verwerking van andere rechten.
  • Heeft de gebruiker het recht PRINT ? Zo ja, schakel het afdrukbeheer in. Als dat niet het is, schakelt u het afdrukbeheer uit.
  • Heeft de gebruiker het recht EXPORTEREN ? Zo ja, schakel exportbesturingselementen en UI-elementen in. Als dat niet het is, schakelt u deze elementen uit.
  • Heeft de gebruiker het recht EXTRACT ? Zo ja, schakel kopiëren en schermopnamen in. Als dat niet het is, schakelt u deze functies uit.
  • Heeft de gebruiker het recht BEWERKEN ? Zo ja, schakel bewerken en opslaan van het huidige item in. Zo niet, maak het item alleen-lezen.

Deze controles moeten worden uitgevoerd voor alle machtigingen in de rechtenlijst en resultatentabel , met uitzondering van het recht WEERGAVE . Het bestand is niet toegankelijk zonder dit recht.

Toegangscontroles uitvoeren

Patronen voor het uitvoeren van de toegangscontrole zijn vergelijkbaar met de File and Protection SDK voor C++, .NET en Java.

In deze codevoorbeelden wordt ervan uitgegaan dat u de stappen hebt doorlopen om de SDK te initialiseren en een engine en handler hebt geïnstantieerd.

Toegangscontroles uitvoeren in de File SDK met .NET

In dit codefragment wordt ervan uitgegaan dat een FileHandler is gemaakt en verwijst naar een geldig bestand.

// Validate that the file referred to by the FileHandler is protected.
if(handler.Protection != null)
{                
    // Validate that user has rights to remove protection from the file.                    
    if(handler.Protection.AccessCheck(Rights.Extract))
    {
        // If user has Extract right, remove protection and commit the change. Otherwise, throw exception. 
        handler.RemoveProtection();
        bool result = handler.CommitAsync(outputPath).GetAwaiter().GetResult();     
        return result;   
    }
    else
    {
        throw new Microsoft.InformationProtection.Exceptions.AccessDeniedException("User lacks EXPORT right.");
    }
}

Toegangscontroles uitvoeren in de Protection SDK met .NET

In dit codefragment wordt ervan uitgegaan dat er een ProtectionHandler is gemaakt voor gebruik.

// Validate that the file referred to by the FileHandler is protected.
if(protectionHandler != null)
{                
    // Validate that user has rights to remove protection from the file.                    
    if(protectionHandler.AccessCheck(Rights.Print))
    {
        // If the user has the print right, enable the control.
        // SetPrintControlEnabled() is an example and not a MIP SDK function.  
        SetPrintControlEnabled(true);
    }
    else
    {
        // If the user does not have the print right, disable the control.
        // SetPrintControlEnabled() is an example and not a MIP SDK function.  
        SetPrintControlEnabled(false);
    }
}

Toegangscontroles uitvoeren in de Bestands-SDK met C++

In dit codefragment wordt ervan uitgegaan dat een FileHandler is gemaakt en verwijst naar een geldig bestand.

// Validate that the file referred to by the FileHandler is protected.
if (fileHandler->GetProtection() != nullptr)
{
    if (fileHandler->GetProtection()->AccessCheck(mip::rights::Extract()))
    {
        auto commitPromise = std::make_shared<std::promise<bool>>();
        auto commitFuture = commitPromise->get_future();
        fileHandler->RemoveProtection();
        fileHandler->CommitAsync(outputFile, commitPromise);
        result = commitFuture.get();
    }
    else
    {
        throw std::runtime_error("User doesn't have EXTRACT right.");
    }
}

Toegangscontroles uitvoeren in de Protection SDK met C++

In dit codefragment wordt ervan uitgegaan dat er een ProtectionHandler is gemaakt voor gebruik.

// Validate that the file referred to by the FileHandler is protected.
if (protectionHandler != nullptr)
{
    if (protectionHandler->AccessCheck(mip::rights::Print()))
    {
        // If the user has the print right, enable the control.
        // SetPrintControlEnabled() is an example and not a MIP SDK function.  
        SetPrintControlEnabled(true);
    }
    else
    {
        // If the user does not have the print right, disable the control.
        // SetPrintControlEnabled() is an example and not a MIP SDK function.  
        SetPrintControlEnabled(false);
    }
}

Volgende stappen

Nu u een idee hebt van het correct uitvoeren van toegangscontroles en het afdwingen van de rechten die aan deze controles zijn gekoppeld, gaat u verder met concepten van bestandshandlers voor meer informatie over het verwijderen van beveiliging van bestanden.