Comment : permettre à votre application de service de fonctionner avec le service RMS cloud
Important
Les versions du Kit de développement logiciel (SDK) du service Microsoft Rights Management publiées avant mars 2020 sont déconseillées ; les applications utilisant des versions antérieures doivent être mises à jour pour utiliser la version de mars 2020. Pour plus d’informations, consultez l’avis de dépréciation.
Aucune autre amélioration n’est prévue pour le Kit de développement logiciel (SDK) du service Microsoft Rights Management. Nous vous recommandons vivement d’adopter le KIT de développement logiciel (SDK) Protection des données Microsoft pour les services de classification, d’étiquetage et de protection.
Cette rubrique décrit les étapes qui permettent de configurer votre application de service pour qu’elle utilise Azure Rights Management. Pour plus d’informations, consultez Prise en main d’Azure Rights Management.
Important
Pour utiliser votre application de service de Rights Management Services SDK 2.1 avec Azure RMS, vous devez créer vos propres locataires. Pour plus d’informations, consultez les exigences d’Azure RMS : Abonnements cloud qui prennent en charge Azure RMS
Prérequis
- RMS SDK 2.1 doit être installé et configuré. Pour plus d’informations, consultez Prise en main de RMS SDK 2.1.
- Vous devez créer une identité de service par le biais d’ACS à l’aide de l’option de clé symétrique, ou par d’autres moyens, et noter les informations clés de ce processus.
Connexion au service Rights Management Azure
Appelez IpcInitialize.
Définissez IpcSetGlobalProperty.
int mode = IPC_API_MODE_SERVER; IpcSetGlobalProperty(IPC_EI_API_MODE, &(mode));
Note Pour plus d’informations, consultez Définition du mode de sécurité de l’API
Les étapes suivantes sont la configuration permettant de créer une instance d’une structure IPC_PROMPT_CTX avec le membre pcCredential (IPC_CREDENTIAL) rempli avec les informations de connexion du service Azure Rights Management.
Utilisez les informations de la création de votre identité de service à clé symétrique (consultez les conditions préalables répertoriées précédemment dans cette rubrique) pour définir les paramètres wszServicePrincipal, wszBposTenantId et cbKey lorsque vous créez une instance d’une structure IPC_CREDENTIAL_SYMMETRIC_KEY .
Remarque : En raison d’une condition existante avec notre service de découverte, si vous n’êtes pas en Amérique du Nord, les informations d’identification de clé symétrique des autres régions ne sont pas acceptées. Vous devez donc spécifier les URL des locataires directement. Pour ce faire, utilisez le paramètre pConnectionInfo , tapez IPC_CONNECTION_INFO, sur les fonctions IpcGetTemplateList ou IpcGetTemplateIssuerList.
Générer une clé symétrique et recueillir les informations nécessaires
Instructions pour générer une clé symétrique
- Installez l’Assistant de connexion Microsoft Online.
- Installez le Module Powershell Azure AD.
Remarque : Vous devez être un administrateur client pour utiliser les applets de commande Powershell.
Démarrez Powershell et exécutez les commandes suivantes pour générer une clé.
Import-Module MSOnline
Connect-MsolService
(entrez vos informations d’identification d’administrateur)New-MsolServicePrincipal
(entrez un nom d’affichage)Une fois la clé symétrique générée, les informations sur la clé sont transmises, notamment la clé elle-même et 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
Instructions pour trouver TenantBposId et les Urls
Installez le Module Powershell Azure RMS.
Démarrez Powershell et exécutez les commandes suivantes pour obtenir la configuration RMS du locataire.
Import-Module AIPService
Connect-AipService
(entrez vos informations d’identification d’administrateur)Get-AipServiceConfiguration
Créez une instance d’un IPC_CREDENTIAL_SYMMETRIC_KEY et définissez quelques membres.
// 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";
Pour plus d’informations, consultez IPC_CREDENTIAL_SYMMETRIC_KEY.
Créez une instance d’une structure IPC_CREDENTIAL contenant votre instance de IPC_CREDENTIAL_SYMMETRIC_KEY .
Remarque : Les membres de connectionInfo sont définis avec des URL obtenues à partir de l’appel précédent à
Get-AipServiceConfiguration
et notées ici avec ces noms de champs.// 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;
Identifier un modèle, puis procéder au chiffrement
Sélectionnez un modèle à utiliser pour le chiffrement. Appelez IpcGetTemplateList en passant la même instance de 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);
Avec le modèle créé précédemment dans cette rubrique, appelez IpcfEncrcyptFile, en passant la même instance de IPC_PROMPT_CTX.
Exemple d’utilisation de IpcfEncrcyptFile :
LPCWSTR wszContentTemplateId = pTemplates->aTi[0].wszID; hr = IpcfEncryptFile(wszInputFilePath, wszContentTemplateId, IPCF_EF_TEMPLATE_ID, IPC_EF_FLAG_KEY_NO_PERSIST, &promptCtx, NULL, &wszOutputFilePath);
Exemple d’utilisation de IpcfDecryptFile :
hr = IpcfDecryptFile(wszInputFilePath, IPCF_DF_FLAG_DEFAULT, &promptCtx, NULL, &wszOutputFilePath);
Vous avez maintenant terminé les étapes nécessaires pour permettre à votre application d’utiliser Azure Rights Management.
Rubriques connexes
- Bien démarrer avec Azure Rights Management
- Bien démarrer avec le kit SDK RMS 2.1
- Créer une identité de service via ACS
- IpcSetGlobalProperty
- IpcInitialize
- IPC_PROMPT_CTX
- IPC_CREDENTIAL
- IPC_CREDENTIAL_SYMMETRIC_KEY
- IpcGetTemplateIssuerList
- IpcGetTemplateList
- IpcfDecryptFile
- IpcfEncrcyptFile
- IpcCreateLicenseFromScratch
- IpcCreateLicenseFromTemplateID