Freigeben über


Exemplarische Vorgehensweise: Ermöglichen der Verwendung von cloudbasiertem RMS für Ihre Dienstanwendung

Wichtig

Versionen des Microsoft Rights Management Service SDK, das vor März 2020 veröffentlicht wurde, sind veraltet; Anwendungen mit früheren Versionen müssen aktualisiert werden, um die Version vom März 2020 zu verwenden. Ausführliche Informationen finden Sie in der Veraltetkeitshinweis.

Für das Microsoft Rights Management Service SDK sind keine weiteren Verbesserungen geplant. Wir empfehlen dringend die Einführung des Microsoft Information Protection SDK für Klassifizierung, Bezeichnung und Schutzdienste.

In diesem Thema werden die Schritte zum Einrichten Ihrer Dienstanwendung zur Verwendung von Azure Rights Management erläutert. Weitere Informationen finden Sie unter Erste Schritte mit Azure Rights Management.

Wichtig
Sie müssen eigene Mandanten erstellen, um die Rights Management Services SDK 2.1-Dienstanwendung mit Azure RMS zu verwenden. Weitere Informationen finden Sie unter Azure RMS-Anforderungen: Cloudabonnements, die Azure RMS unterstützen

Voraussetzungen

Verbinden mit dem Azure-Rechteverwaltungsdienst

  • Rufen Sie IpcInitialize auf.

  • Legen Sie IpcSetGlobalProperty fest.

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

    Hinweis Weitere Informationen finden Sie unter Festlegen des API-Sicherheitsmodus

  • Die folgenden Schritte sind das Setup für das Erstellen einer Instanz einer IPC_PROMPT_CTX-Struktur mit dem pcCredential -Element (IPC_CREDENTIAL) mit Verbindungsinformationen aus dem Azure Rights Management Service.

  • Verwenden Sie die Informationen aus ihrer symmetrischen Schlüsseldienstidentitätserstellung (siehe die in diesem Thema aufgeführten Voraussetzungen), um die wszServicePrincipal-, wszBposTenantId- und cbKey-Parameter festzulegen, wenn Sie eine Instanz einer IPC_CREDENTIAL_SYMMETRIC_KEY-Struktur erstellen.

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. Dies erfolgt über den pConnectionInfo-Parameter, geben Sie IPC_CONNECTION_INFO auf Funktionen IpcGetTemplateList oder IpcGetTemplateIssuerList ein.

Generieren Sie einen symmetrischen Schlüssel, und sammeln Sie die benötigten Informationen.

Anweisungen zum Generieren eines symmetrischen Schlüssels

Hinweis – Sie muss ein Mandantenadministrator sein, um die Powershell-Cmdlets verwenden zu können.

  • Starten Sie PowerShell, und führen Sie die folgenden Befehle zum Generieren eines Schlüssels aus.

    Import-Module MSOnline

    Connect-MsolService (Geben Sie Ihre Administrator-Anmeldeinformationen ein.)

    New-MsolServicePrincipal (Geben Sie einen Anzeigenamen ein.)

  • Nachdem der symmetrische Schlüssel generiert wurde, werden Informationen zu dem Schlüssel einschließlich des Schlüssels selbst und AppPrincipalId ausgegeben.

    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 Urls

  • Installieren Sie das Azure RMS PowerShell-Modul.

  • Starten Sie Powershell, und führen Sie die folgenden Befehle aus, um die RMS-Konfiguration des Mandanten abzurufen.

    Import-Module AIPService

    Connect-AipService (Geben Sie Ihre Administrator-Anmeldeinformationen ein.)

    Get-AipServiceConfiguration

  • Erstellen Sie eine Instanz eines IPC_CREDENTIAL_SYMMETRIC_KEY , und legen Sie einige Mitglieder fest.

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

  • Erstellen Sie eine Instanz einer IPC_CREDENTIAL Struktur, die Ihre IPC_CREDENTIAL_SYMMETRIC_KEY Instanz enthält.

    Hinweis – Die connectionInfo-Mitglieder sind durch URLs aus dem vorherigen Aufruf von Get-AipServiceConfiguration festgelegt und hier mit diesen Feldnamen angegeben.

    // 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üsselung

  • Wählen Sie eine Vorlage für die Verschlüsselung aus. Rufen Sie ipcGetTemplateList auf, die in derselben Instanz von IPC_PROMPT_CTX übergeben wird.

    PCIPC_TIL pTemplates = NULL;
    IPC_TEMPLATE_ISSUER templateIssuer = (pTemplateIssuerList->aTi)[0];
    
    hr = IpcGetTemplateList(&(templateIssuer.connectionInfo),
           IPC_GTL_FLAG_FORCE_DOWNLOAD,
           0,
           &promptCtx,
           NULL,
           &pTemplates);
    
  • Rufen Sie mit der Vorlage von früher in diesem Thema ipcfEncrcyptFile auf, indem Sie dieselbe Instanz von IPC_PROMPT_CTX übergeben.

    Beispiel für die Verwendung von 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:

    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.