Exemplarische Vorgehensweise: Ermöglichen der Verwendung von cloudbasiertem RMS für Ihre DienstanwendungHow-to: enable your service application to work with cloud based RMS

Wichtig

Versionen des Microsoft Rights Management Service SDK, die vor dem 2020 von März veröffentlicht wurden, sind veraltet. Anwendungen, die frühere Versionen verwenden, müssen aktualisiert werden, um die Version vom März 2020 zu verwenden.Versions of the Microsoft Rights Management Service SDK released prior to March 2020 are deprecated; applications using earlier versions must be updated to use the March 2020 release. Ausführliche Informationen finden Sie im Hinweis zur Veraltung.For full details, see the deprecation notice.

Für das Microsoft Rights Management Service SDK sind keine weiteren Erweiterungen geplant.No further enhancements are planned for the Microsoft Rights Management Service SDK. Es wird dringend empfohlen, das Microsoft Information Protection SDK für Klassifizierungen, Bezeichnungen und Schutzdienste zu erhalten.We strongly recommend adoption of the Microsoft Information Protection SDK for classification, labeling, and protection services.

In diesem Thema werden die Schritte zum Einrichten Ihrer Dienstanwendung zur Verwendung von Azure Rights Management erläutert.This topic outlines steps for setting up your service application to use Azure Rights Management. Weitere Informationen finden Sie unter Erste Schritte mit Azure Rights Management.For more information, see Getting started with Azure Rights Management.

WichtigImportant
Sie müssen eigene Mandanten erstellen, um die Rights Management Services SDK 2.1-Dienstanwendung mit Azure RMS zu verwenden.In order to use your Rights Management Services SDK 2.1 service application with Azure RMS, you'll need to create your own tenants. Weitere Informationen finden Sie unter Azure RMS Requirements: Cloud-Abonnements, die Azure RMS unterstützen .For more information, see Azure RMS requirements: Cloud subscriptions that support Azure RMS

VoraussetzungenPrerequisites

Verbinden mit dem Azure-RechteverwaltungsdienstConnecting to the Azure Rights Management Service

  • Rufen Sie IpcInitialize auf.Call IpcInitialize.

  • Legen Sie IpcSetGlobalProperty fest.Set IpcSetGlobalProperty.

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

    Hinweis Weitere Informationen finden Sie unter Festlegen des API-Sicherheitsmodus.Note For more information, see Setting the API security mode

  • Die folgenden Schritte sind das Setup für das Erstellen einer Instanz einer IPC _ prompt _ ctx -Struktur mit dem Element pccredential (IPC _ Credential), das mit Verbindungsinformationen aus dem Azure Rights Management-Dienst aufgefüllt wurde.The following steps are the setup for creating an instance of an IPC_PROMPT_CTX structure with the pcCredential (IPC_CREDENTIAL) member populated with connection information from the Azure Rights Management Service.

  • Verwenden Sie die Informationen aus der Erstellung der Dienst Identität ihrer symmetrischen Schlüssel (siehe die weiter oben aufgeführten Voraussetzungen), um die Parameter wszserviceprincipal, wszbpostenantidund cbkey festzulegen, wenn Sie eine Instanz einer IPC _ Credential _ symmetrischen _ Key -Struktur erstellen.Use the information from your symmetric key service identity creation (see the prerequisites listed earlier in this topic) to set the wszServicePrincipal, wszBposTenantId, and cbKey parameters when you create an instance of an IPC_CREDENTIAL_SYMMETRIC_KEY structure.

Hinweis – Aufgrund einer Bedingung unseres Ermittlungsdiensts sind Anmeldeinformationen für symmetrische Schlüssel von anderen Regionen nur zulässig, wenn Sie sich in Nordamerika befinden. Aus diesem Grund müssen Sie Ihre Mandanten-URLs direkt eingeben.Note - Due to an existing condition with our discovery service, if you are not in North America, symmetric key credentials are not accepted from other regions therefore, you must specify your tenant URLs directly. Verwenden Sie hierfür den Parameter pConnectionInfo mit dem Typ IPC_CONNECTION_INFO in den Funktionen IpcGetTemplateList oder IpcGetTemplateIssuerList.This is done through the pConnectionInfo parameter, type IPC_CONNECTION_INFO, on functions IpcGetTemplateList or IpcGetTemplateIssuerList.

Generieren Sie einen symmetrischen Schlüssel, und sammeln Sie die benötigten Informationen.Generate a symmetric key and collect the needed information

Anweisungen zum Generieren eines symmetrischen SchlüsselsInstructions to generate a symmetric key

Hinweis – Sie muss ein Mandantenadministrator sein, um die Powershell-Cmdlets verwenden zu können.Note - You must be a tenant administrator to use the Powershell cmdlets.

  • Starten Sie PowerShell, und führen Sie die folgenden Befehle zum Generieren eines Schlüssels aus.Start Powershell and run the following commands to generate a key

    Import-Module MSOnline

    Connect-MsolService (Geben Sie Ihre Administrator-Anmeldeinformationen ein.)Connect-MsolService (type-in your admin credentials)

    New-MsolServicePrincipal (Geben Sie einen Anzeigenamen ein.)New-MsolServicePrincipal (type-in a display name)

  • Nachdem der symmetrische Schlüssel generiert wurde, werden Informationen zu dem Schlüssel einschließlich des Schlüssels selbst und AppPrincipalId ausgegeben.After it generates a symmetric key, it will output information about the key including the key itself and an 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
    

Anweisungen zum Ermitteln von TenantBposId und UrlsInstructions to find out TenantBposId and Urls

  • Installieren Sie das Azure RMS PowerShell-Modul.Install Azure RMS powershell module.

  • Starten Sie Powershell, und führen Sie die folgenden Befehle aus, um die RMS-Konfiguration des Mandanten abzurufen.Start Powershell and run the following commands to get the RMS configuration of the tenant.

    Import-Module AIPService

    Connect-AipService (Geben Sie Ihre Administrator-Anmeldeinformationen ein.)Connect-AipService (type-in your admin credentials)

    Get-AipServiceConfiguration

  • Erstellen Sie eine Instanz eines _ symmetrischen IPC Credential- _ _ Schlüssels , und legen Sie einige Member fest.Create an instance of an IPC_CREDENTIAL_SYMMETRIC_KEY and set a few members.

    // 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";
    

Weitere Informationen finden Sie unter IPC _ Credential _ Symmetric _ Key.For more information see, IPC_CREDENTIAL_SYMMETRIC_KEY.

  • Erstellen Sie eine Instanz einer IPC _ Credential -Struktur, die Ihre IPC _ Credential _ Symmetric _ Key -Instanz enthält.Create an instance of an IPC_CREDENTIAL structure containing your IPC_CREDENTIAL_SYMMETRIC_KEY instance.

    Hinweis   -Die ConnectionInfo -Member werden mit URLs aus dem vorherigen-Befehl festgelegt Get-AipServiceConfiguration und hier mit diesen Feldnamen angegeben.Note - The connectionInfo members are set with URLs from the previous call to Get-AipServiceConfiguration and noted here with those field names.

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

Identifizieren einer Vorlage und VerschlüsselungIdentify a template and then encrypt

  • Wählen Sie eine Vorlage für die Verschlüsselung aus.Select a template to use for your encryption. Nennen Sie ipcgettemplatelist , und übergeben Sie dieselbe Instanz von IPC _ prompt _ ctx.Call IpcGetTemplateList passing in the same instance of 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);
    
  • Mit der Vorlage von weiter oben in diesem Thema, nennen Sie ipcfencr. tfile, und übergeben Sie dieselbe Instanz von IPC _ prompt _ ctx.With the template from earlier in this topic, call IpcfEncrcyptFile, passing in the same instance of IPC_PROMPT_CTX.

    Beispiel für die Verwendung von IpcfEncrcyptFile:Example use of IpcfEncrcyptFile:

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

    Beispiel für die Verwendung von IpcfDecryptFile:Example use of IpcfDecryptFile:

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

Sie haben jetzt die erforderlichen Schritte zum Aktivieren der Anwendung für die Verwendung von Azure Rights Management abgeschlossen.You have now completed the steps needed to enable your application to use Azure Rights Management.