Blog Post

Microsoft Security Community Blog
2 MIN READ

Microsoft Information Protection SDK 1.5: Now Available

Tom_Moser's avatar
Tom_Moser
Icon for Microsoft rankMicrosoft
Mar 02, 2020

We're pleased to announce that the Microsoft Information Protection SDK version 1.5 is now generally available via NuGet and Download Center.

 

Highlights

 

  • TLS 1.2 is now mandatory. Clients that don't support TLS 1.2 will fail to connect to the service.
  • MIP SDK Java Wrapper for Windows is in private preview.
  • Data sent to AIP Analytics can be masked via mip::TelemetryConfiguration::maskedProperties
  • Improved exception details across all APIs.
  • Improved C API result and error details.
  • mip::FileHandler::IsLabledOrProtected()
  • Policy SDK supports dynamic content marking.
  • Label policy cache now expires after 30 days if it hasn't been refreshed.

 

Java Wrapper

We're sharing our Java Wrapper for Windows on a private preview basis. If you're interested in participating, please fill out the form at https://aka.ms/mipsdkjavapreview!

 

Once we're satisfied with the Windows release, we plan to expand support to other platforms.

 

Dynamic Content Marking

In AIP Classic, a feature existed that would allow admins to define variables in content marking. These variables would be populated with information about the lable, user, or event time. We've built this functionality in to MIP SDK so that our partners and customers can take advantage of the same dynamic content marking.

 

Dynamic content marking is supported for watermark, header, or footer actions. Supported variables are:

 

Variable Description
${Item.Label} The name of the label applied to the item.
${Item.Name} The name of the item.
${Item.Location} The path to the item.
${User.Name} The name of the user owner of the document.
${User.PrincipalName} The UPN of the owner of the document.
${Event.DateTime} The time that the label was written.

 

This content marking is configurable via mip::PolicyEngine::Settings::SetVirableTextMarkingType().

 

To set the friendly username, use mip::Identity and construct with the user-friendly name field.

 

Breaking Changes

  • C++ API:
    • mip::ProtectionEngine::GetTemplates() vector<shared_ptr> return value replaced with vector<shared_ptrmip::TemplateDescriptor>
    • mip::ProtectionEngine::Observer::OnGetTemplatesSuccess() callback shared_ptr<vector> parameter replaced with vector<shared_ptrmip::TemplateDescriptor>
  • C# API:
    • Updated PolicyEngine.Settings.LabelFilter from list of enums to nullable bitfield
    • IProtectionEngine.GetTemplates|Async() return value List replaced with List.
  • C API:
    • Updated most functions to include mip_cc_error* parameter, can be NULL
    • MIP_CC_ProtectionEngine_GetTemplates() mip_cc_guid* param replaced with mip_cc_template_descriptor*

 

Full Change Log

Review the version release history for a full list of changes to this release.

 

-Tom Moser and the MIP SDK Team

Updated May 11, 2021
Version 5.0

28 Comments

  • Sanka2385's avatar
    Sanka2385
    Copper Contributor

    Tom_Moser Thanks for the reply . Working on decrypting the word file(Applied label using MSWord) from MIP iOS Module, It is failing to get serializedPublishingLicense 

    Also I was able to protect the document with my MIP POC module and unprotect the same file with the POC Module, but unable to open that file using word. Is there anything I am missing here?

  • Sanka2385 

    We have no plans for a Swift wrapper at the moment. Unfortunately, I don't have a sample available for iOS, yet, but I hope to publish one in the next couple of months. We have no plans for File API on mobile platforms at the moment.

  • ravish315's avatar
    ravish315
    Copper Contributor

    Hi Tom_Moser 
    Thanks for your response , while doing the integration most of the code i wrote in c++ with JNI layter,
    i am seeing below error related to aria-android-java-sdk.aar file .

    E/void (anonymous namespace)::InitLogManager(JNIEnv *, jclass, jobject, const std::__ndk1Initializing Aria LogManager
     A/zygote64: java_vm_ext.cc:504] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "com.microsoft.applications.telemetry.core.InternalMgrImpl" on path: DexPathList[[directory "."]

    Need to know in android where exactly we need to keep this library ?
    any help or link will be helpful
    thanks

  • Sanka2385's avatar
    Sanka2385
    Copper Contributor

    Tom_Moser  working on  iOS, do you have any plans for Swift wrapper.Can you please provide if any samples available for iOS?. 

    MIP SDK for iOS only contains Protection and Policy api's, do you have plans for file API?

  • Hi ravish315 

     

    We are working on the Java wrapper, but don't yet have a timeline of when we'll be able to release.

     

    The informationprotection.aar file should include the 64-bit bins. 

     

     

  • ravish315's avatar
    ravish315
    Copper Contributor

    Tom_Moser  I trying to port sdk in android app , sdk provided for android is written in c++ , do you have any plans to provide jni wrapper for android

    also another question .so files are 32 bit , as now android made it mandatory to have 64 bit bin file   so any plans for that as well.
    Thanks

  • We tested on RHEL7.5. I'll need to check with engineering to see if it's been tested on 7.7, but I believe the answer is no. 

  • cedric_fra's avatar
    cedric_fra
    Copper Contributor

    Hello,

     

    Tried running this RHEL 7.7 and I get segmentation fault for sample binary (protection_sample). Anyone been able to install and use this program on RHEL7.7 by any chance?

     

    thanks