[RMS] MSDRM と MSIPC について(1) レジストリ

いつもお世話になっております。日本マイクロソフトの盛です。

 

今回から、複数回に分けて、最新のアプリケーションにおける、IRM 機能の動作上の変更点について説明したいと思います。

Rights Management Service のクライアントの機能の違いに焦点を置いて説明するため、特定のアプリケーションに特化した内容ではありません。あらかじめ御了承ください。

 

Office 2013 がリリースされるまで、IRM が有効な製品は、"MSDRM.DLL" というコンポーネントを使用して、機能を実装しておりました。この DLL は IRM 機能の実現に必要な関数が実装されております。

以下のサイトで、API が公開されています。

"Using the AD RMS SDK"

https://msdn.microsoft.com/en-us/library/windows/desktop/cc542552(v=vs.85).aspx

使用されているアプリケーションは、Office 2003/2007/2010、XPS Viewer、Rights Management Add-in for Internet Explorer、Rms Bulk Protection Tool、Exchange Server 2007/2010/2013、Sharepoint Server 2007/2010 等です。

 

Office 2013 および、それ以降にリリースされている最新のアプリケーションは、"MSIPC.DLL" というコンポーネントを使用して、IRM 機能を実装しています。この DLL にも、IRM 機能の実現に必要な関数が実装されておりますが、"MSDRM.DLL" と互換性が無く、さらに、それまでアプリケーションが実装していた多くの動作を、この DLL 内で実装しております。

以下のサイトで、API が公開されています。

"Active Directory Rights Management Services SDK 2.1"

https://msdn.microsoft.com/en-us/library/windows/desktop/hh535290(v=vs.85).aspx

使用されているアプリケーションは、Office 2013、RMS Sharing Application、Sharepoint 2013 等です。

 

これら2つは、いずれも IRM 機能を実現するものですが、その内容は大幅に異なります。

以下、機能面での相違点を、大まかにまとめてみました。

 

  • ユーザーアカウント証明書とクライアントライセンサ証明書の取得
    • <MSDRM>
      マシン証明書とユーザーアカウント証明書、クライアントライセンサ証明書を取得するコードをすべてアプリケーションが実装したコードで取得します。
    • <MSIPC>
      MSIPC 内で、必要に応じて自動的に取得します。アプリケーションは関与しません。
  • 使用ライセンス取得と確認
    • <MSDRM>
      ライセンスを取得する動作、内容を確認する動作は、アプリケーション自身が実装します。ライセンスのデータそのものを取得することが可能です。
    • <MSIPC>
      MSIPC 内でライセンスの取得と照合が行われます。アプリケーションはライセンスの内容、ライセンスのデータそのものにはアクセスできません。
  • テンプレート
    • <MSDRM>
      アプリケーションは、クライアントのフォルダに事前にコピーしたファイル、または ADRMS サーバー上のテンプレートフォルダのファイルの内容を読み込んで使用します。なお、Vista SP1 以降は、DRMGetIssuanceLicenseTemplate()にてテンプレートを取得可能になりました。
    • <MSIPC>
      MSIPC がテンプレートを管理します。テンプレートのダウンロードはアプリケーションが文書を作成するときに、必要に応じてMSIPC 内部で行われます。

これらの動作変更に伴い、Office 2013 等最新のアプリケーションとこれまでのアプリケーションでの動作には若干の違いがございます。今後、それらも説明する予定です。

なお、MSDRM と MSIPC の機能変更に共通する変更点として、レジストリがあります。

MSDRM と MSIPC の双方に存在するレジストリは、パスが異なるだけで、ほとんどが同じ名前、機能となります。

以下、よく使う一部のレジストリについて、MSDRM と MSIPC でどのように設定するかをまとめました。

 

  • レジストリオーバーライド
    ADRMS クラスタ URLのオーバーライドを行います。
    レジストリキー名が一部異なる為、ご注意ください。
  • <MSDRM>
    - 証明書 -
    HKLM\Software\Microsoft\MSDRM\ServiceLocation\Activation
    REG_SZ: (既定)
    Value: http(or https)://RMS_Cluster_Name/_wmcs/Certification
    - ライセンス -
    HKLM\Software\Microsoft\MSDRM\ServiceLocation\EnterprisePublishing
    REG_SZ: (既定)
    Value: http(or https)://RMS_Cluster_Name/_wmcs/Licensing
  • <MSIPC>
    - 証明書 -
    HKLM\Software\Microsoft\MSIPC\ServiceLocation\EnterpriseCertification
    REG_SZ: (既定)
    Value: http(or https)://RMS_Cluster_Name/_wmcs/Certification
    - ライセンス -
    HKLM\Software\Microsoft\MSIPC\ServiceLocation\EnterprisePublishing
    REG_SZ: (既定)
    Value: http(or https)://RMS_Cluster_Name/_wmcs/Licensing

 

  • トレースの有効化
    様々な IRM 関連の問題の調査に使用する、トレースを有効化する方法です。
  • <MSDRM>
    HKLM\Software\Microsoft\MSDRM
    REG_DWORD: Trace
    Value: 1 to enable tracing, 0 to disable tracing (default)
  • <MSIPC>
    HKLM\Software\Microsoft\MSIPC
    REG_DWORD: Trace
    Value: 1 to enable tracing, 0 to disable tracing (default)
  • フェデレーション ホーム領域の設定
    ADFS 使用時のユーザーのホーム領域の設定です。
  • <MSDRM>
    HKLM\SOFTWARE\Microsoft\MSDRM\Federation
    REG_SZ: FederationHomeRealm
    Value: < the federation service URI>
  • <MSIPC>
    HKLM\Software\Microsoft\MSIPC\Federation
    REG_SZ: FederationHomeRealm
    Value: < the federation service URI>
  • フェデレーション フォーム認証の有効化
    ADFS STS に 複数の認証プロバイダがあるなど、ユーザーに認証プロバイダを選択させる
    必要がある際に、認証フォームの使用可否を設定します。
  • <MSDRM> ※KB977624 以降のみで使用可能。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDRM
    REG_DWORD: EnableBrowser
    Value: 1 to enable Federation Form Authentication, 0 to disable
    (default)
  • <MSIPC>
    HKLM\Software\Microsoft\MSIPC
    REG_DWORD: EnableBrowser
    Value: 1 to enable Federation Form Authentication, 0 to disable
    (default)

 

今回は以上となります。

次回は、ユーザーアカウント証明書とクライアントライセンサ証明書の取得についての変更を説明したいと思います。

 

参考文献:

"AD RMS Client 2.x Deployment Notes"

https://technet.microsoft.com/en-us/library/jj159267(v=ws.10).aspx#BKMK_Settings