Instrukcje: umożliwianie współdziałania aplikacji usługi z usługą RMS opartą na chmurze
Ważne
Wersje zestawu Microsoft Rights Management Service SDK wydane przed marcem 2020 r. są przestarzałe; w celu korzystania z wersji z marca 2020 r. należy zaktualizować aplikacje korzystające z wcześniejszych wersji. Aby uzyskać szczegółowe informacje, zobacz powiadomienie o wycofaniu.
Nie planuje się dalszych ulepszeń zestawu Microsoft Rights Management Service SDK. Zdecydowanie zalecamy wdrożenie zestawu SDK Microsoft Information Protection dla usług klasyfikacji, etykietowania i ochrony.
W tym temacie opisano kroki konfigurowania aplikacji usługi do korzystania z usługi Azure Rights Management. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z usługą Azure Rights Management.
Ważne
Aby móc użyć aplikacji usługi zestawu Rights Management Services SDK 2.1 z usługą Azure RMS, musisz utworzyć własne dzierżawy. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące usługi Azure RMS: subskrypcje w chmurze, które obsługują usługę Azure RMS
Wymagania wstępne
- Należy zainstalować i skonfigurować zestaw SDK usług RMS 2.1. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z zestawem SDK usług RMS 2.1.
- Musisz utworzyć tożsamość usługi przez ACS przy użyciu opcji klucza symetrycznego lub innej metody oraz zarejestrować dane klucza z tego procesu.
Łączenie z usługą Azure Rights Management
Wywołaj metodę IpcInitialize.
Ustaw właściwość IpcSetGlobalProperty.
int mode = IPC_API_MODE_SERVER; IpcSetGlobalProperty(IPC_EI_API_MODE, &(mode));
Uwaga Aby uzyskać więcej informacji, zobacz Ustawianie trybu zabezpieczeń interfejsu API
Poniższe kroki to konfiguracja tworzenia wystąpienia struktury IPC_PROMPT_CTX z elementem członkowskim pcCredential (IPC_CREDENTIAL) wypełnionym informacjami o połączeniu z usługi Azure Rights Management.
Użyj informacji z tworzenia tożsamości usługi klucza symetrycznego (zobacz wymagania wstępne wymienione wcześniej w tym temacie), aby ustawić parametry wszServicePrincipal, wszBposTenantId i cbKey podczas tworzenia wystąpienia struktury IPC_CREDENTIAL_SYMMETRIC_KEY .
Uwaga: Ze względu na stan naszej usługi odnajdywania, jeśli nie znajdujesz się w Ameryce Północnej, nie są akceptowane poświadczenia kluczy symetrycznych z innych regionów, w związku z czym należy bezpośrednio określić adresy URL dzierżawy. Odbywa się to za pomocą parametru pConnectionInfo, typu IPC_CONNECTION_INFO, w funkcjach IpcGetTemplateList lub IpcGetTemplateIssuerList.
Generowanie klucza symetrycznego i zbieranie potrzebnych informacji
Instrukcje generowania klucza symetrycznego
- Zainstaluj Asystenta logowania w witrynie Microsoft Online Services
- Zainstaluj moduł PowerShell usługi Azure AD.
Uwaga: Tylko administrator dzierżawy może korzystać z poleceń cmdlet modułu Powershell.
Uruchom program Powershell i uruchom następujące polecenia, aby wygenerować klucz
Import-Module MSOnline
Connect-MsolService
(wpisz swoje poświadczenia administratora)New-MsolServicePrincipal
(wpisz nazwę wyświetlaną)Po wygenerowaniu klucza symetrycznego wyświetlane są informacje na temat klucza, w tym sam klucz i element 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
Instrukcje określania wartości TenantBposId i Urls
Zainstaluj moduł PowerShell usługi Azure RMS.
Uruchom program Powershell i uruchom następujące polecenia, aby uzyskać konfigurację usługi RMS dzierżawy.
Import-Module AIPService
Connect-AipService
(wpisz swoje poświadczenia administratora)Get-AipServiceConfiguration
Utwórz wystąpienie IPC_CREDENTIAL_SYMMETRIC_KEY i ustaw kilka elementów członkowskich.
// 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";
Aby uzyskać więcej informacji, zobacz IPC_CREDENTIAL_SYMMETRIC_KEY.
Utwórz wystąpienie struktury IPC_CREDENTIAL zawierającej wystąpienie IPC_CREDENTIAL_SYMMETRIC_KEY .
Uwaga: Elementy członkowskie connectionInfo są konfigurowane przy użyciu adresów URL z poprzedniego wywołania elementu
Get-AipServiceConfiguration
i oznaczane w tym miejscu przy użyciu tych nazw pól.// 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;
Zidentyfikuj szablon i zaszyfruj go
Wybierz szablon do użycia dla szyfrowania. Wywołaj metodę IpcGetTemplateList przekazującą to samo wystąpienie 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);
Przy użyciu szablonu z wcześniejszej części tego tematu wywołaj metodę IpcfEncrcyptFile, przekazując to samo wystąpienie IPC_PROMPT_CTX.
Przykładowe zastosowanie wywołania elementu IpcfEncrcyptFile:
LPCWSTR wszContentTemplateId = pTemplates->aTi[0].wszID; hr = IpcfEncryptFile(wszInputFilePath, wszContentTemplateId, IPCF_EF_TEMPLATE_ID, IPC_EF_FLAG_KEY_NO_PERSIST, &promptCtx, NULL, &wszOutputFilePath);
Przykładowe zastosowanie wywołania elementu IpcfDecryptFile:
hr = IpcfDecryptFile(wszInputFilePath, IPCF_DF_FLAG_DEFAULT, &promptCtx, NULL, &wszOutputFilePath);
Ukończono kroki niezbędne do włączenia obsługi usługi Azure Rights Management przez aplikację.
Powiązane tematy
- Rozpoczynanie pracy z usługą Azure Rights Management
- Rozpoczynanie pracy z zestawem SDK 2.1 usługi RMS
- Tworzenie tożsamości usługi za pośrednictwem usługi ACS
- IpcSetGlobalProperty
- IpcInitialize
- IPC_PROMPT_CTX
- IPC_CREDENTIAL
- IPC_CREDENTIAL_SYMMETRIC_KEY
- IpcGetTemplateIssuerList
- IpcGetTemplateList
- IpcfDecryptFile
- IpcfEncrcyptFile
- IpcCreateLicenseFromScratch
- IpcCreateLicenseFromTemplateID