[RMS] RMS Protection Tool を Azure RMS とともに使用する方法
日本マイクロソフトの 盛 です。
文書の暗号化と復号については、コマンドラインで実施したいという要望は常にございます。
これまで、RMS のファイルの暗号化と復号を行うコマンドラインツールとしては、RMS Bulk Protection Tool が使用されてきました。
“Active Directory Rights Management Services Bulk Protection Tool”
https://www.microsoft.com/ja-jp/download/details.aspx?id=11122
しかしこのツールは、Office アプリケーションのファイル(docx/pptxなど)のみの暗号化に対応しており、かつ、Azure RMS には対応しておりません。
このため弊社では、RMS Bulk Protection Tool の後継として、RMS Protection Tool を開発、公開しました。
“RMS Protection Tool”
https://www.microsoft.com/en-us/download/details.aspx?id=47256
このツールは、Office 以外の多くのファイル形式暗号化をサポートしております。例えば、PDF やプレーンテキスト、各種画像ファイルの暗号化もサポートしております。
またオンプレミスの ADRMS が展開されている環境では、オンプレミスの Active Directory ドメインアカウントが使用されるため、特に設定をすることなく、RMS Bulk Protection Tool とほぼ同様の感覚で使用することができます。
また、 RMS Protection Tool は、オンプレミスの ADRMS に加え、Azure RMS にも対応しております。
本稿では、RMS Protection Tool を使用して、Azure RMS を使用した暗号化と復号を行う方法を紹介いたします。
[注意]
本稿を執筆している時点では、Azure RMS を使用する場合は、オンプレミス ADRMS とは異なる設定、作業が必要です。具体的には、Service to Service Authentication という特殊な手法を用い、サービスプリンシパルというアカウントを使用します。
サービスプリンシパルという特殊なアカウントのみで暗号化と復号をするため、RMS Protection Tool で復号できるのは、RMS Protection Tool で暗号化したファイルのみです。
オンラインユーザーが暗号化したファイルなど、RMS Protection Tool 以外で暗号化されたファイルは、RMS Protection Tool では復号できません。
オンラインユーザーのアカウントを使用して多数のファイルの暗号化や復号を行いたい場合は、お手数ですが、RMS Sharing Application を使用してください。例えば、暗号化したいファイルを1つのフォルダにまとめ、そのフォルダを右クリックして、[RMS による保護] から暗号化を実施しますと、一度に複数のファイルを暗号化できます。
テスト環境
本稿では、以下の環境でRMS Protection Tool を動作させています。
オペレーティングシステム: Windows 8.1 (64bit / WORKGROUP 構成)
追加インストールしたソフトウェア:
Microsoft Online Services Sign-In Assistant for IT Professionals RTW
Azure Active Directory Module for Windows PowerShell
Active Directory Rights Management Services Client 2.1
Azure Rights Management Administration Tool
環境設定
Powershell を起動し、以下を実行します。(画像をクリックすると、大きなサイズの画像を確認できます。)
Import-Module AADRM
Connect-AADRMService (テナント管理者のアカウントを入力)
Get-AADRMConfiguration
得られた出力から、LicensingIntranetDistributionPointUrl と CertificationIntranetDistributionPointUrl および BPOSId を記録します。
Disconnect-Aadrmservice を実行し、Azure RMS サービスから切断します。
レジストリエディタを起動し、以下のキーに、それぞれの値を設定します。
キー:[ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\ServiceLocation
\EnterpriseCertification]
値名:(既定)
値: CertificationIntranetDistributionPointUrl の値
キー:[ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\ServiceLocation
\EnterprisePublishing]
値名:(既定)
値: LicensingIntranetDistributionPointUrl の値
Powershellを終了します。
サービスプリンシパルの作成
「管理者として実行」にてPowershell を起動し、以下のコマンドを実行し、Azure Active Directoryに接続します。
Import-Module MSOnline
Connect-MsolService (テナント管理者のアカウントを入力)
以下のコマンドにて、サービスプリンシパルを作成します。この時表示される対称キーを必ず記録します。また、AppPrincipalId も併せて記録します。
New-MsolServicePrincipal -DisplayName kmori-test-service-principal01
暗号化と復号
引き続き、記録したキー、AppPrincipalId、BPOSId を使用して、暗号化、復号を実施します。
Azure RMS の認証を設定します。記録したキー、AppPrincipalId、BPOSId をコマンドラインで指定します。このコマンドを実行後は、設定した認証情報を使用して、暗号化などの動作を行います。
Set-RMSServerAuthentication -key <対称キー> -AppPrincipalId <サービスプリンシパルのAppPrincipalId > -BposTenantId <BPOSId(お客様のテナントID)>
テンプレートを取得します。ここでは、”test-RMS-Protection” というテンプレートを使用することとます。
ファイルを暗号化します。ここでは、”-Verbose” オプションを使用して、動作の概要を確認します。”-TemplateID” オプションにて、$templates[1].TemplateId を指定することで、”test-RMS-Protection” テンプレートを指定しています。
上記ファイルを復号します。暗号化を解除します。
トラブルシュート
*サービスプリンシパルについて
RMS Protection Tool を使用する際、サービスプリンスパルは、1台のコンピューター/ユーザーにつき、1つに限定することをお勧めいたします。
例えば、Administrator が、あるサービスプリンシパルを使用してファイルの暗号化をした後、別のサービスプリンシパルを使用して暗号化を実施したとします。この場合、最初の暗号化に使用した証明書と、次の暗号化に使用した証明書は、同じフォルダに生成されます。
同じフォルダに異なる証明書が存在することで、文書の復号を行う際、暗号化時に使用した証明書とは異なる証明書が使用されてしまい、エラーが発生することがあります。
このような状況が発生した場合は、以下のフォルダを削除してから、再度復号を行います。
%ProgramData%\Microsoft\MSIPC\Server\<実行ユーザーの SID>
*ログについて
各コマンドレットを実行する際、”-Verbose” や “-Debug” オプションを使用すると、詳細なログが生成されます。
RMS Protection Tool のログは、以下の場所に生成されます。
%ProgramData%\Microsoft\MSIPC\Server\Logs<実行ユーザーの SID>
“LogFile_1.ipclog” “LogFile_2.ipclog”といった名前でファイルが生成されます。
このログを確認することで、ツールの内部でどのようなエラーが発生したかを確認することができます。
なお、ファイルのタイムスタンプは書き込まれても更新されません。メモ帳などで内容を確認すると、書き込まれていることを確認できます。
もし、書き込まれていない場合は、一旦 Powershell を閉じ、再度 Powershell を開いてから、作業を行ってください。
弊社にお問い合わせいただく際には、こちらのファイルを添えてお問い合わせいただければ幸いです。
以上、RMS Protection Tool を、よろしくお願いいたします。