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
- Musí být nainstalovaná a nakonfigurovaná sada RMS SDK 2.1. Další informace najdete v tématu Začínáme se sadou RMS SDK 2.1.
- Musíte vytvořit identitu služby přes ACS pomocí možnosti symetrického klíče nebo jinými prostředky a nahrát informace o klíči z tohoto procesu.
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
- Instalace Pomocníka pro přihlášení ke službám Microsoft Online Services
- Nainstalujte modul prostředí PowerShell pro službu Azure AD.
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.
Související témata
- Začínáme se službou Azure Rights Management
- Začínáme se sadou RMS SDK 2.1
- Vytvoření identity služby prostřednictvím služby ACS
- IpcSetGlobalProperty
- IpcInitialize
- IPC_PROMPT_CTX
- IPC_CREDENTIAL
- IPC_CREDENTIAL_SYMMETRIC_KEY
- IpcGetTemplateIssuerList
- IpcGetTemplateList
- IpcfDecryptFile
- IpcfEncrcyptFile
- IpcCreateLicenseFromScratch
- IpcCreateLicenseFromTemplateID