Anvisningar: Aktivera tjänstprogrammet för molnbaserad RMS

Viktigt

Versioner av Microsoft Rights Management Service SDK som släpptes före mars 2020 är inaktuella. program som använder tidigare versioner måste uppdateras för att använda mars 2020-versionen. Fullständig information finns i utfasningsmeddelandet.

Inga ytterligare förbättringar planeras för Microsoft Rights Management Service SDK. Vi rekommenderar starkt att du använder Microsoft Information Protection SDK för klassificerings-, märknings- och skyddstjänster.

Det här avsnittet beskriver steg för steg hur du konfigurerar ditt tjänstprogram att använda Azure Rights Management. Mer information finns i Komma igång med Azure Rights Management.

Viktigt
För att kunna använda serviceprogrammet Rights Management Services SDK 2.1 med Azure RMS måste du skapa dina egna klienter. Mer information finns i Krav för Azure RMS: Molnprenumerationer som stöder Azure RMS

Förutsättningar

Ansluta till Azure Rights Management Service

  • Anropa IpcInitialize.

  • Ange IpcSetGlobalProperty.

    int mode = IPC_API_MODE_SERVER;
    IpcSetGlobalProperty(IPC_EI_API_MODE, &(mode));
    

    Observera Mer information finns i Ställa in API-säkerhetsläge

  • Följande steg är konfigurationen för att skapa en instans av en IPC_PROMPT_CTX struktur med medlemmen pcCredential (IPC_CREDENTIAL) ifylld med anslutningsinformation från Azure Rights Management-tjänsten.

  • Använd informationen från skapandet av din symmetriska nyckeltjänstidentitet (se förutsättningarna som angavs tidigare i det här avsnittet) för att ange parametrarna wszServicePrincipal, wszBposTenantId och cbKey när du skapar en instans av en IPC_CREDENTIAL_SYMMETRIC_KEY struktur.

Obs! – På grund av ett befintligt villkor med vår identifieringstjänst måste du ange dina klient-URL:er direkt om du inte befinner dig i Nordamerika eftersom autentiseringsuppgifter för symmetriska nycklar inte accepteras från andra regioner. Detta görs via parametern pConnectionInfo , skriv IPC_CONNECTION_INFO på funktionerna IpcGetTemplateList eller IpcGetTemplateIssuerList.

Generera en symmetrisk nyckel och samla in nödvändig information

Anvisningar för att generera en symmetrisk nyckel

Obs! – Du måste vara klientadministratör för att kunna använda PowerShell-cmdlets.

  • Starta PowerShell och kör följande kommandon för att generera en nyckel

    Import-Module MSOnline

    Connect-MsolService (ange dina autentiseringsuppgifter som administratör)

    New-MsolServicePrincipal (ange ett visningsnamn)

  • När den symmetriska nyckeln har skapats visas information om nyckeln, inklusive själva nyckeln och en AppPrincipalId.

    The following symmetric key was created as one was not supplied
    ZYbF/lTtwE28qplQofCpi2syWd11D83+A3DRlb2Jnv8=
    
    DisplayName : RMSTestApp
    ServicePrincipalNames : {7d9c1f38-600c-4b4d-8249-22427f016963}
    ObjectId : 0ee53770-ec86-409e-8939-6d8239880518
    AppPrincipalId : 7d9c1f38-600c-4b4d-8249-22427f016963
    

Anvisningar för att ta reda på TenantBposId och URL:er

  • Installera PowerShell-modulen för Azure RMS.

  • Starta PowerShell och hämta klientorganisationens RMS-konfiguration genom att köra följande kommandon.

    Import-Module AIPService

    Connect-AipService (ange dina autentiseringsuppgifter som administratör)

    Get-AipServiceConfiguration

  • Skapa en instans av en IPC_CREDENTIAL_SYMMETRIC_KEY och ange några medlemmar.

    // Create a key structure.
    IPC_CREDENTIAL_SYMMETRIC_KEY symKey = {0};
    
    // Set each member with information from service creation.
    symKey.wszBase64Key = "your service principal key";
    symKey.wszAppPrincipalId = "your app principal identifier";
    symKey.wszBposTenantId = "your tenant identifier";
    

Mer information finns i IPC_CREDENTIAL_SYMMETRIC_KEY.

  • Skapa en instans av en IPC_CREDENTIAL struktur som innehåller din IPC_CREDENTIAL_SYMMETRIC_KEY-instans .

    Obs!connectionInfo-medlemmarna konfigureras med URL:er från det föregående anropet till Get-AipServiceConfiguration och anges här med dessa fältnamn.

    // Create a credential structure.
    IPC_CREDENTIAL cred = {0};
    
    IPC_CONNECTION_INFO connectionInfo = {0};
    connectionInfo.wszIntranetUrl = LicensingIntranetDistributionPointUrl;
    connectionInfo.wszExtranetUrl = LicensingExtranetDistributionPointUrl;
    
    // Set each member.
    cred.dwType = IPC_CREDENTIAL_TYPE_SYMMETRIC_KEY;
    cred.pcCertContext = (PCCERT_CONTEXT)&symKey;
    
    // Create your prompt control.
    IPC_PROMPT_CTX promptCtx = {0};
    
    // Set each member.
    promptCtx.cbSize = sizeof(IPC_PROMPT_CTX);
    promptCtx.hwndParent = NULL;
    promptCtx.dwflags = IPC_PROMPT_FLAG_SILENT;
    promptCtx.hCancelEvent = NULL;
    promptCtx.pcCredential = &cred;
    

Identifiera en mall och kryptera sedan

  • Välj en mall som du vill använda för krypteringen. Anropa IpcGetTemplateList och skicka samma instans av IPC_PROMPT_CTX.

    PCIPC_TIL pTemplates = NULL;
    IPC_TEMPLATE_ISSUER templateIssuer = (pTemplateIssuerList->aTi)[0];
    
    hr = IpcGetTemplateList(&(templateIssuer.connectionInfo),
           IPC_GTL_FLAG_FORCE_DOWNLOAD,
           0,
           &promptCtx,
           NULL,
           &pTemplates);
    
  • Med mallen från tidigare i det här avsnittet anropar du IpcfEncrcyptFile och skickar samma instans av IPC_PROMPT_CTX.

    Exempel på hur du använder IpcfEncrcyptFile:

    LPCWSTR wszContentTemplateId = pTemplates->aTi[0].wszID;
    hr = IpcfEncryptFile(wszInputFilePath,
           wszContentTemplateId,
           IPCF_EF_TEMPLATE_ID,
           IPC_EF_FLAG_KEY_NO_PERSIST,
           &promptCtx,
           NULL,
           &wszOutputFilePath);
    

    Exempel på hur du använder IpcfDecryptFile:

    hr = IpcfDecryptFile(wszInputFilePath,
           IPCF_DF_FLAG_DEFAULT,
           &promptCtx,
           NULL,
           &wszOutputFilePath);
    

Nu har du slutfört stegen som krävs för att konfigurera ditt program att använda Azure Rights Management.