Postupy: Povolení spolupráce s cloudovou službou RMS pro aplikaci služby

Důležité

Verze sady MICROSOFT Rights Management Service SDK vydané před březnem 2020 jsou zastaralé; aplikace používající starší verze musí být aktualizovány tak, aby používaly verzi z března 2020. Úplné podrobnosti najdete v oznámení o vyřazení.

Pro sadu MICROSOFT Rights Management Service SDK se neplánují žádná další vylepšení. Důrazně doporučujeme přijmout sadu Microsoft Information Protection SDK pro klasifikaci, označování a služby ochrany.

Toto téma popisuje kroky nastavení aplikace služby na používání Azure Rights Management. Další informace najdete v tématu Začínáme se službou Azure Rights Management.

Důležité upozornění
Pokud chcete aplikaci služby Rights Management Services SDK 2.1 použít s Azure RMS, musíte si vytvořit vlastní tenanty. Další informace najdete v tématu Požadavky pro Azure RMS: Cloudová předplatná, která podporují Azure RMS.

Požadavky

Připojení ke službě Azure Rights Management

  • Volejte proceduru IpcInitialize.

  • Nastavte IpcSetGlobalProperty.

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

    Poznámka Další informace najdete v tématu Nastavení režimu zabezpečení rozhraní API.

  • Následující kroky jsou nastavení pro vytvoření instance IPC_PROMPT_CTX struktury s členem pcCredential (IPC_CREDENTIAL) naplněným informacemi o připojení ze služby Azure Rights Management Service.

  • Informace z vytvoření identity symetrické služby klíče (viz požadavky uvedené výše v tomto tématu) použijte k nastavení parametrů wszServicePrincipal, wszBposTenantId a cbKey při vytváření instance IPC_CREDENTIAL_SYMMETRIC_KEY struktury.

Poznámka: Kvůli existující podmínce v naší službě zjišťování platí, že když nejste v Severní Americe, pověření symetrického klíče z jiných oblastí se nepřijmou. Proto je nutné zadat adresy URL tenanta přímo. To se provádí prostřednictvím parametru pConnectionInfo , typu IPC_CONNECTION_INFO, u funkcí IpcGetTemplateList nebo IpcGetTemplateIssuerList.

Generování symetrického klíče a shromáždění potřebných informací

Pokyny ke generování symetrického klíče

Poznámka: Abyste mohli používat rutiny Powershellu, musíte být správce tenanta.

  • Spusťte prostředí Powershell a spusťte následující příkazy ke generování klíče

    Import-Module MSOnline

    Connect-MsolService (zadejte svoje přihlašovací údaje správce)

    New-MsolServicePrincipal (zadejte zobrazovaný název)

  • Po vygenerování symetrického klíče se zobrazí výstup s informacemi o klíči včetně vlastního klíče a vlastnosti 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
    

Pokyny k vyhledání TenantBposId a Urls

  • Nainstalujte modul prostředí PowerShell pro službu RMS.

  • Spusťte prostředí Powershell a spusťte následující příkazy k získání konfigurace služby RMS klienta.

    Import-Module AIPService

    Connect-AipService (zadejte svoje přihlašovací údaje správce)

    Get-AipServiceConfiguration

  • Vytvořte instanci IPC_CREDENTIAL_SYMMETRIC_KEY a nastavte několik členů.

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

Další informace najdete v IPC_CREDENTIAL_SYMMETRIC_KEY.

  • Vytvořte instanci struktury IPC_CREDENTIAL obsahující vaši instanci IPC_CREDENTIAL_SYMMETRIC_KEY .

    Poznámka: Členové connectionInfo se nastavují s adresami URL z předchozího volání Get-AipServiceConfiguration a jsou tady uvedení s těmito názvy polí.

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

Určení a zašifrování šablony

  • Vyberte šablonu, která se má použít k šifrování. Zavolejte IpcGetTemplateList předávající stejnou instanci 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);
    
  • S šablonou ze starší části tohoto tématu volejte IpcfEncrcyptFile a předejte stejnou instanci IPC_PROMPT_CTX.

    Příklad použití IpcfEncrcyptFile:

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

    Příklad použití IpcfDecryptFile:

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

Teď jste dokončili postup potřebný k aktivaci aplikace na používání služby Azure Rights Management.