Procedura: Consentire all'applicazione di servizio di usare RMS basato su cloud
Importante
Le versioni di Microsoft Rights Management Service SDK rilasciate prima di marzo 2020 sono deprecate; le applicazioni che usano versioni precedenti devono essere aggiornate per usare la versione di marzo 2020. Per informazioni dettagliate, vedere l'avviso di deprecazione.
Non sono previsti ulteriori miglioramenti per Microsoft Rights Management Service SDK. È consigliabile adottare l'SDK di Microsoft Information Protection per la classificazione, l'etichettatura e i servizi di protezione.
Questo argomento descrive i passaggi per la configurazione dell’applicazione di servizio per l’uso di Azure Rights Management. Per altre informazioni, vedere Introduzione a Azure Rights Management.
Importante
Per usare l'applicazione di servizio Rights Management Services SDK 2.1 con Azure RMS, è necessario creare i propri tenant. Per altre informazioni, vedere Requisiti di Azure RMS: Sottoscrizioni cloud che supportano Azure RMS
Prerequisiti
- RMS SDK 2.1 deve essere installato e configurato. Per altre informazioni, vedere Introduzione a RMS SDK 2.1.
- È necessario creare un'identità del servizio tramite ACS usando l'opzione della chiave simmetrica o tramite altri mezzi e registrare le informazioni sulla chiave ottenute da tale processo.
Connessione al servizio Rights Management di Azure
Chiamare IpcInitialize.
Impostare IpcSetGlobalProperty.
int mode = IPC_API_MODE_SERVER; IpcSetGlobalProperty(IPC_EI_API_MODE, &(mode));
Nota Per altre informazioni, vedere Impostazione della modalità di sicurezza dell'API
I passaggi seguenti sono la configurazione per la creazione di un'istanza di una struttura di IPC_PROMPT_CTX con il membro pcCredential (IPC_CREDENTIAL) popolato con le informazioni di connessione dal servizio Azure Rights Management.
Usare le informazioni della creazione dell'identità del servizio chiavi simmetriche (vedere i prerequisiti elencati in precedenza in questo argomento) per impostare i parametri wszServicePrincipal, wszBposTenantId e cbKey quando si crea un'istanza di una struttura IPC_CREDENTIAL_SYMMETRIC_KEY .
Nota: a causa di una condizione esistente con il servizio di individuazione, vengono accettate le credenziali tramite chiave simmetrica solo se provenienti dall'America del Nord, per cui è necessario specificare direttamente l'URL del tenant. Questa operazione viene eseguita tramite il parametro pConnectionInfo , digitare IPC_CONNECTION_INFO, nelle funzioni IpcGetTemplateList o IpcGetTemplateIssuerList.
Generare una chiave simmetrica e raccogliere le informazioni necessarie
Istruzioni per generare una chiave simmetrica
- Installare Assistente per l’accesso ai Microsoft Online Services
- Installare il modulo Azure AD Powershell.
Nota: per usare i cmdlet di Powershell, è necessario essere un amministratore tenant.
Avviare Powershell ed eseguire i comandi seguenti per generare una chiave
Import-Module MSOnline
Connect-MsolService
(digitare le credenziali di amministratore)New-MsolServicePrincipal
(digitare un nome visualizzato)Dopo la generazione di una chiave simmetrica, verranno visualizzate le informazioni sulla chiave, tra cui la chiave stessa e 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
Istruzioni per individuare TenantBposId e URL
Installare il modulo Powershell per Azure RMS.
Avviare Powershell ed eseguire i comandi seguenti per ottenere la configurazione RMS del tenant.
Import-Module AIPService
Connect-AipService
(digitare le credenziali di amministratore)Get-AipServiceConfiguration
Creare un'istanza di un IPC_CREDENTIAL_SYMMETRIC_KEY e impostare alcuni membri.
// 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";
Per altre informazioni, vedere IPC_CREDENTIAL_SYMMETRIC_KEY.
Creare un'istanza di una struttura di IPC_CREDENTIAL contenente l'istanza di IPC_CREDENTIAL_SYMMETRIC_KEY .
Nota: i membri di conectionInfo sono impostati con gli URL ottenuti dalla chiamata precedente a
Get-AipServiceConfiguration
e indicati con tali nomi di campo.// 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;
Identificare un modello e quindi crittografare
Selezionare un modello da usare per la crittografia. Chiamare IpcGetTemplateList passando la stessa istanza di 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);
Con il modello precedente in questo argomento, chiamare IpcfEncrcyptFile, passando la stessa istanza di IPC_PROMPT_CTX.
Esempio d’uso di IpcfEncrcyptFile:
LPCWSTR wszContentTemplateId = pTemplates->aTi[0].wszID; hr = IpcfEncryptFile(wszInputFilePath, wszContentTemplateId, IPCF_EF_TEMPLATE_ID, IPC_EF_FLAG_KEY_NO_PERSIST, &promptCtx, NULL, &wszOutputFilePath);
Esempio d’uso di IpcfDecryptFile:
hr = IpcfDecryptFile(wszInputFilePath, IPCF_DF_FLAG_DEFAULT, &promptCtx, NULL, &wszOutputFilePath);
La procedura necessaria per consentire all'applicazione di usare Azure Rights Management è stata completata.
Argomenti correlati
- Introduzione a Azure Rights Management
- Introduzione a RMS SDK 2.1
- Creare un'identità del servizio tramite ACS
- IpcSetGlobalProperty
- IpcInitialize
- IPC_PROMPT_CTX
- IPC_CREDENTIAL
- IPC_CREDENTIAL_SYMMETRIC_KEY
- IpcGetTemplateIssuerList
- IpcGetTemplateList
- IpcfDecryptFile
- IpcfEncrcyptFile
- IpcCreateLicenseFromScratch
- IpcCreateLicenseFromTemplateID