Share via


Útmutató: A szolgáltatásalkalmazás alkalmassá tétele a felhőalapú RMS használatára

Fontos

A Microsoft Rights Management Service SDK 2020 márciusa előtt kiadott verziói elavultak; a korábbi verziókat használó alkalmazásokat frissíteni kell a 2020. márciusi kiadás használatához. További részletekért tekintse meg az elavulással kapcsolatos közleményt.

A Microsoft Rights Management Service SDK-hoz nem tervezünk további fejlesztéseket. Határozottan javasoljuk, hogy a besorolási, címkézési és védelmi szolgáltatásokhoz használja a Microsoft-információvédelem SDK-t.

Ez a témakör a szolgáltatásalkalmazás Azure Rights Management használatához végzett beállításának lépéseit ismerteti. További információ: Ismerkedés az Azure Rights Management szolgáltatással.

Fontos
A Rights Management Services SDK 2.1 segítségével készített szolgáltatásalkalmazásának az Azure RMS-sel történő használatához saját bérlőt kell létrehoznia. További információ: Azure RMS-követelmények: Az Azure RMS-t támogató felhőalapú előfizetések.

Előfeltételek

Csatlakozás az Azure Rights Management szolgáltatáshoz

  • Hívja meg az IpcInitialize függvényt.

  • Állítsa be az IpcSetGlobalProperty függvényt.

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

    Megjegyzés További információ: Az API biztonsági módjának beállítása

  • Az alábbi lépések egy IPC_PROMPT_CTX-struktúra példányának létrehozására szolgálnak a pcCredential (IPC_CREDENTIAL) taggal, amely a Azure Tartalomvédelmi szolgáltatások Service-ből származó kapcsolati adatokkal van feltöltve.

  • A szimmetrikus kulcsú szolgáltatás identitásának létrehozásakor (lásd a jelen témakör korábbi részében felsorolt előfeltételeket) használja a wszServicePrincipal, a wszBposTenantId és a cbKey paraméterek beállításához egy IPC_CREDENTIAL_SYMMETRIC_KEY struktúrapéldány létrehozásakor.

Megjegyzés: Az észlelési szolgáltatás jelenlegi feltételei miatt Észak-Amerikán kívül a szimmetrikus kulcs hitelesítő adatai nem fogadhatók el más régiókból, így közvetlenül kell megadnia a bérlői URL-címeket. Ezt az IpcGetTemplateList vagy az IpcGetTemplateIssuerList függvény pConnectionInfo paramétere IPC_CONNECTION_INFO írja be.

Szimmetrikus kulcs létrehozása és a szükséges információk begyűjtése

Szimmetrikus kulcs létrehozásának utasításai

Megjegyzés: a PowerShell-parancsmagok használatához bérlői rendszergazda jogosultság szükséges.

  • Indítsa el a Powershellt, és futtassa a következő parancsokat a kulcs létrehozásához

    Import-Module MSOnline

    Connect-MsolService (írja be a rendszergazdai hitelesítő adatait)

    New-MsolServicePrincipal (írjon be egy megjelenítendő nevet)

  • Miután létrehoz egy szimmetrikus kulcsot, a parancsmag kiírja a kulccsal kapcsolatos információkat, beleértve magát a kulcsot, és az AppPrincipalId azonosítót.

    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
    

A TenantBposId és az Urls megtekintésének utasításai

  • Telepítse az Azure RMS Powershell-modult.

  • Indítsa el a Powershellt, és futtassa a következő parancsokat a bérlő RMS-konfigurációjának lekéréséhez.

    Import-Module AIPService

    Connect-AipService (írja be a rendszergazdai hitelesítő adatait)

    Get-AipServiceConfiguration

  • Hozzon létre egy IPC_CREDENTIAL_SYMMETRIC_KEY egy példányát, és állítson be néhány tagot.

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

További információ: IPC_CREDENTIAL_SYMMETRIC_KEY.

  • Hozzon létre egy példányt a IPC_CREDENTIAL_SYMMETRIC_KEY-példányt tartalmazó IPC_CREDENTIAL struktúrából.

    Megjegyzés: A connectionInfo tagok a Get-AipServiceConfiguration előző hívásából származó URL-ekkel vannak beállítva, és azokkal a mezőnevekkel hivatkozunk itt rájuk.

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

Sablon azonosítása, majd titkosítása

  • Válassza ki a titkosításhoz használni kívánt sablont. Hívja meg az IpcGetTemplateList metódust, amely a IPC_PROMPT_CTX ugyanazon példányán adja át.

    PCIPC_TIL pTemplates = NULL;
    IPC_TEMPLATE_ISSUER templateIssuer = (pTemplateIssuerList->aTi)[0];
    
    hr = IpcGetTemplateList(&(templateIssuer.connectionInfo),
           IPC_GTL_FLAG_FORCE_DOWNLOAD,
           0,
           &promptCtx,
           NULL,
           &pTemplates);
    
  • A témakör korábbi szakaszában szereplő sablonnal hívja meg az IpcfEncrcyptFile fájlt, és adja át a IPC_PROMPT_CTX ugyanazon példányát.

    Példa az IpcfEncrcyptFile használatára:

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

    Példa az IpcfDecryptFile használatára:

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

Most elvégezte azon lépéseket, amelyekkel az alkalmazás használhatja az Azure Rights Management eszközt.