Bestands-SDK voor het verwerken van e-mailberichten
MIP SDK biedt ondersteuning voor ontsleuteling en versleuteling voor e-mailberichten. Zowel .msg bestanden, gegenereerd door Outlook of Exchange, als RPMSG-bestanden worden ondersteund door de SDK, hoewel ze iets anders zijn.
Veelvoorkomende gebruiksvoorbeelden voor dit scenario zijn:
- E-mail en bijlagen ontsleutelen voor DLP-inspectie (Preventie van gegevensverlies).
- Beveiligde berichten rechtstreeks vanuit Line-Of-Business-toepassingen publiceren
- Berichten tijdens overdracht ontsleutelen, wijzigen en opnieuw beveiligen.
- Labels toepassen op e-mailberichten van DLP- of mailgatewayservices.
Ondersteuningsverklaring voor MSG-bestanden
MIP SDK ondersteunt de beveiligingstoepassing en het verwijderen van MSG-bestanden. Gezien de verschillende coderingstypen en variabelen in de indeling in de loop van de jaren, is het niet mogelijk om te garanderen dat MIP SDK de beveiliging van alle MSG-bestanden kan verwijderen. In de volgende sectie wordt de ondersteuning voor MSG-bestanden uit verschillende bronnen beschreven.
- Het verwijderen van beveiliging tegen MSG-bestanden die zijn beveiligd met MIP SDK, wordt volledig ondersteund.
- Het verwijderen van beveiliging tegen MSG-bestanden die zijn gemaakt door momenteel ondersteunde versies van de Outlook-client, wordt volledig ondersteund.
- Het verwijderen van beveiliging van MSG-bestanden die zijn gemaakt door out-of-support-versies van de Outlook-client, wordt op basis van best effort ondersteund.
- Het opnieuw beveiligen van MSG-bestanden is niet beschikbaar met beveiligde labels. Gebruikers moeten de beveiliging opheffen en het beveiligde label expliciet verwijderen voordat ze het bestand opnieuw beveiligen met een ander label.
Labelen van MSG-bestanden
MIP SDK ondersteunt het lezen en schrijven van labels op MSG-bestanden. Onderliggende bijlagen nemen het label niet over, maar nemen de beveiligingsinstellingen over. Bekijk label- en beveiligingsbewerkingen in de Bestands-SDK voor .msg bestanden voor meer informatie.
Label- en beveiligingsbewerkingen in de Bestands-SDK voor .msg bestanden
Bestands-SDK ondersteunt label- en beveiligingsbewerkingen voor .msg-bestanden op dezelfde manier als elk ander bestandstype, behalve dat de SDK de toepassing nodig heeft om msG-functievlag in te schakelen.
Zoals eerder besproken, is het instantiëren van FileEngine
een instellingenobject vereist. FileEngineSettings
FileEngineSettings
kan worden gebruikt om parameters voor aangepaste instellingen door te geven om te voldoen aan specifieke toepassingsbehoeften. Als u wilt dat de MIP SDK MSG-bestanden verwerkt, wordt de CustomSettings
eigenschap van het FileEngineSettings
object gebruikt om de vlag in te stellen voor enable_msg_file_type
het inschakelen van verwerking van .msg bestanden.
Als u een FileEngineSettings
object hebt gemaakt met de naam engineSettings, stelt u deze eigenschap in .NET als volgt in:
engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));
De pseudocode van de .msg bestandsbeveiligingsbewerkingen kan er als volgt uitzien:
- Stel
enable_msg_file_type
de vlag inmip::FileEngineSettings
en voeg hetmip::FileEngine
toe aanmip::FileProfile
. - Gebruik de
FileEngine
lijst met labels voor de gebruiker op te halen. - Maak
mip::FileHandler
die verwijst naar het bestand dat moet worden gelabeld. - Selecteer een label en gebruik de
mip::FileHandler
methode omSetLabel
het label toe te passen.
Raadpleeg quickstart: Lijstlabels voor informatie over het weergeven van labels.
Standaardgedrag voor het verwerken van bijlagen wijzigen
De File SDK probeert standaard alle bijlagen te verwerken die deel uitmaken van een MSG-bestand of een message.rpmsg-bestand bij het gebruik van de inspectie-API's. Alleen het item op hoofdniveau en het eerste niveau van bijlagen worden standaard ontsleuteld.
Als u dit gedrag wilt wijzigen, kunt u de aangepaste instelling container_decryption_option
gebruiken. In C++ wordt dit weergegeven via een enum, mip::ContainerDecryptionOption
.
Optienaam | Beschrijving |
---|---|
All |
Ontsleutelt het MSG-bestand en de bijlagen. Als de bijlage een MSG is, ontsleutelt deze de MSG en de bijbehorende bijlagen recursief. Het zal maximaal tien niveaus herhalen voordat het mip::BadInputError("Max depth reached on nested msg attachments") genereert. |
Default |
Hetzelfde als Msg . |
Msg |
Ontsleutelt de MSG en bijlagen op het eerste niveau. Ontsleutelt bijgevoegde MSG-bestanden niet recursief. |
Top |
Ontsleutel alleen het MSG-bestand en ontsleutel bijlagen niet. |
In het volgende voorbeeld ziet u hoe u een toepassing in .NET instelt om alleen het MSG-hoofdbestand te ontsleutelen.
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("container_decryption_option", "Top"));
En in C++:
vector<pair<string, string>> customSettings;
customSettings.emplace_back(mip::GetCustomSettingContainerDecryptionOption(),
mip::ContainerDecryptionOptionString(mip::ContainerDecryptionOption::Top));
engineSettings.SetCustomSettings(customSettings);
Bestands-SDK-bewerkingen voor RPMSG-bestanden
MIP SDK maakt een inspectiefunctie beschikbaar waarmee het ingesloten message.rpmsg-bestand kan worden ontsleuteld en een set bytestreams als uitvoer kan worden weergegeven. Het is aan de SDK-consument om het bestand message.rpmsg te extraheren en door te geven aan de inspectie-API. Er bestaan variaties van deze bestandsnaam voor Purview Message Encryption-scenario's en de API accepteert ook message_v2-, v3- of v4-bestanden.
Belangrijk
De inspectie-API biedt geen uitvoer die resulteert in een bruikbaar bestand, noch kunt u het invoerbestand opnieuw beveiligen. Het voert stromen van bytes uit die uw toepassing vervolgens verder kan verwerken. Het opnieuw maken van MSG-bestanden van message.rpmsg-bestanden wordt niet ondersteund door de MIP SDK.
Meestal verwerken E-mailgateway- en DLP-services (Preventie van gegevensverlies) MIME-compatibele berichten terwijl e-mail onderweg is. Wanneer e-mail is beveiligd, wordt de versleutelde inhoud van het bericht opgeslagen in een bijlage, message.rpmsg. Deze bijlage bevat de versleutelde hoofdtekst van de e-mail en eventuele bijlagen die deel uitmaken van het oorspronkelijke bericht. Het rpmsg-bestand wordt vervolgens gekoppeld aan een e-mail met tekstterugslag zonder opmaak en verzonden naar de e-mailservice. Zodra dat bericht de grens van Exchange of Exchange Online verlaat, heeft het de MIME-compatibele indeling, zodat het naar de bestemming kan worden verzonden.
In de meeste gevallen moet de DLP-service de bijlagen en bytes zonder opmaak ophalen uit het bericht om DLP-beleid te inspecteren en te evalueren. De inspect-API gebruikt de message.rpmsg als invoer en retourneert bytestreams als uitvoer. Deze bytestreams bevatten de bytes voor tekst zonder opmaak van het bericht en de bijlagen. Het is aan de ontwikkelaar van de toepassing om deze streams te verwerken en iets nuttigs met ze te doen (inspecteren, recursief ontsleutelen, enzovoort).
De Inspect
API wordt geïmplementeerd via een klasse, mip::FileInspector
waarmee bewerkingen worden weergegeven voor het inspecteren van ondersteunde bestandstypen.
mip::MsgInspector
die uitbreidt mip::FileInspector
, ontsleutelingsbewerkingen beschikbaar maakt die specifiek zijn voor rpmsg-bestandsindeling. MIP SDK biedt geen ondersteuning voor publicatiescenario's voor message.rpmsg-bestanden . Daarnaast biedt de FileHandler::RemoveProtection()
API geen ondersteuning voor message.rpmsg-bestanden.
Message.rpmsg-bestanden kunnen alleen worden ontsleuteld voor inspectie en leveren geen geldig, bruikbaar bestand op. Als voor uw toepassing uitvoer van bestanden is vereist, moet u een MSG-bestand doorgeven en de beveiliging van dat object verwijderen.
mip::MsgInspector
in de klasse worden de onderstaande leden weergegeven:
public const std::vector<uint8_t>& GetBody()
public BodyType GetBodyType() const
public BodyType GetBodyType() const
public InspectorType GetInspectorType() const
public std::shared_ptr<Stream> GetFileStream() const
Zie de MICROSOFT Information Protection -SDK (MIP) voor C++: Naslaginformatie voor meer informatie.