Nasıl yapılır: Hizmet uygulamanızın bulut tabanlı RMS ile çalışmasını sağlama
Önemli
Mart 2020'den önce yayımlanan Microsoft Rights Management Service SDK sürümleri kullanım dışı bırakılmıştır; önceki sürümleri kullanan uygulamaların Mart 2020 sürümünü kullanacak şekilde güncelleştirilmiş olması gerekir. Tüm ayrıntılar için kullanımdan kaldırma bildirimine bakın.
Microsoft Rights Management Service SDK'sı için başka geliştirme planlanmıyor. Sınıflandırma, etiketleme ve koruma hizmetleri için Microsoft Bilgi Koruması SDK'sının benimsenmesini kesinlikle öneririz.
Bu konuda hizmet uygulamanızı Azure Rights Management’ı kullanacak şekilde ayarlama adımları açıklanmaktadır. Daha fazla bilgi edinmek için bkz. Azure Rights Management’ı Kullanmaya Başlama.
Önemli
Rights Management Services SDK 2.1 hizmet uygulamanızı Azure RMS ile kullanabilmeniz için kendi kiracılarınızı oluşturmanız gerekir. Daha fazla bilgi için bkz . Azure RMS gereksinimleri: Azure RMS'yi destekleyen bulut abonelikleri
Önkoşullar
- RMS SDK 2.1 yüklenmiş ve yapılandırılmış olmalıdır. Daha fazla bilgi için, bkz. RMS SDK 2.1 Kullanmaya Başlama.
- Simetrik anahtar seçeneğini kullanarak veya diğer yollarla ACS aracılığıyla hizmet kimliği oluşturmanız ve bu işlemden elde edilen anahtar bilgilerini kaydetmeniz gerekir.
Azure Rights Management Hizmetine Bağlanma
IpcInitialize’ı çağırın.
IpcSetGlobalProperty’yi ayarlayın.
int mode = IPC_API_MODE_SERVER; IpcSetGlobalProperty(IPC_EI_API_MODE, &(mode));
Not Daha fazla bilgi için bkz . API güvenlik modunu ayarlama
Aşağıdaki adımlar, Azure Rights Management Service'ten alınan bağlantı bilgileriyle doldurulmuş pcCredential (IPC_CREDENTIAL) üyesiyle bir IPC_PROMPT_CTX yapısının örneğini oluşturmaya yönelik kurulumlardır.
IPC_CREDENTIAL_SYMMETRIC_KEY yapısının bir örneğini oluştururken wszServicePrincipal, wszBposTenantId ve cbKey parametrelerini ayarlamak için simetrik anahtar hizmet kimliği oluşturma işleminizdeki bilgileri kullanın (bu konuda daha önce listelenen önkoşullara bakın).
Not - Bulma hizmetimizdeki bir koşul nedeniyle, diğer bölgelerden simetrik anahtar kimlik bilgileri kabul edilemediğinden Kuzey Amerika’da değilseniz kiracı URL’nizi doğrudan belirtmelisiniz. Bu işlem pConnectionInfo parametresi, IpcGetTemplateList veya IpcGetTemplateIssuerList işlevlerine IPC_CONNECTION_INFO yazın.
Simetrik anahtarı oluşturma ve gerekli bilgileri toplama
Simetrik anahtar oluşturma yönergeleri
- Microsoft Çevrimiçi Oturum Açma Yardımcısı’nı yükleyin
- Azure AD Powershell Modülünü yükleyin.
Not - Powershell cmdlet'lerini kullanmak için kiracı yöneticisi olmanız gerekir.
PowerShell'i başlatın ve bir anahtar oluşturmak için aşağıdaki komutları çalıştırın
Import-Module MSOnline
Connect-MsolService
(yönetici kimlik bilgilerinizi yazın)New-MsolServicePrincipal
(görünen ad yazın)Komut, bir simetrik anahtar oluşturduktan sonra anahtar hakkında, anahtarın kendisini ve bir AppPrincipalId içeren bilgileri çıkarır.
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
TenantBposId ve Urls öğrenme yönergeleri
Azure RMS Powershell modülünü yükleyin.
PowerShell'i başlatın ve kiracının RMS yapılandırmasını almak için aşağıdaki komutları çalıştırın.
Import-Module AIPService
Connect-AipService
(yönetici kimlik bilgilerinizi yazın)Get-AipServiceConfiguration
bir IPC_CREDENTIAL_SYMMETRIC_KEY örneği oluşturun ve birkaç üye ayarlayın.
// 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";
Daha fazla bilgi için bkz. IPC_CREDENTIAL_SYMMETRIC_KEY.
IPC_CREDENTIAL_SYMMETRIC_KEY örneğinizi içeren bir IPC_CREDENTIAL yapısının örneğini oluşturun.
Not - connectionInfo üyeleri önceki
Get-AipServiceConfiguration
çağrısından alınan URL'lerle ayarlanır ve bu alan adlarıyla buraya kaydedilir.// 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;
Şablonu belirleyin ve şifreleyin
Şifrelemeniz için kullanılacak bir şablon seçin aynı IPC_PROMPT_CTXörneğini geçirerek IpcGetTemplateList öğesini çağırın.
PCIPC_TIL pTemplates = NULL; IPC_TEMPLATE_ISSUER templateIssuer = (pTemplateIssuerList->aTi)[0]; hr = IpcGetTemplateList(&(templateIssuer.connectionInfo), IPC_GTL_FLAG_FORCE_DOWNLOAD, 0, &promptCtx, NULL, &pTemplates);
Bu konunun önceki bölümlerinde yer alan şablonla, aynı IPC_PROMPT_CTX örneğini geçirerek IpcfEncrcyptFile'ı çağırın.
IpcfEncrcyptFile kullanımı örneği:
LPCWSTR wszContentTemplateId = pTemplates->aTi[0].wszID; hr = IpcfEncryptFile(wszInputFilePath, wszContentTemplateId, IPCF_EF_TEMPLATE_ID, IPC_EF_FLAG_KEY_NO_PERSIST, &promptCtx, NULL, &wszOutputFilePath);
IpcfDecryptFile kullanımı örneği:
hr = IpcfDecryptFile(wszInputFilePath, IPCF_DF_FLAG_DEFAULT, &promptCtx, NULL, &wszOutputFilePath);
Artık, uygulamanızı Azure Rights Management’ı kullanmak üzere etkinleştirmek için gerekli adımları tamamladınız.
İlgili konular
- Azure Rights Management’ı Kullanmaya Başlama
- RMS SDK 2.1’i Kullanmaya Başlama
- ACS aracılığıyla hizmet kimliği oluşturma
- IpcSetGlobalProperty
- IpcInitialize
- IPC_PROMPT_CTX
- IPC_CREDENTIAL
- IPC_CREDENTIAL_SYMMETRIC_KEY
- IpcGetTemplateIssuerList
- IpcGetTemplateList
- IpcfDecryptFile
- IpcfEncrcyptFile
- IpcCreateLicenseFromScratch
- IpcCreateLicenseFromTemplateID