DRMAcquireLicense API の実行時に認証ダイアログが表示される場合がある

現象

Rights Management Service (RMS) を展開している Internet Information Services (IIS)、もしくはIIS をホストしている Windows OS を再起動した直後に DRMAcquireLicense API を実行すると、一度だけ認証ダイアログが表示される場合があります。

原因

IIS の Windows 認証では、認証関連のパフォーマンスを向上するため、既定で「カーネル モード認証」が有効となっております。しかしながら、DRMAcquireLicense API が NTLM 事前認証を用いて、「https://<サーバー>/_wmcs/licensing/」サイトにアクセスした場合、カーネルモード認証の機能上の制限として NTLM 事前認証を受け付けられないため、認証に失敗します。その結果、DRMAcquireLicense API は認証ダイアログを表示いたします。

解決方法

認証ダイアログを表示させないようにするには Licensing サイトにて以下の設定を行います。
1.      IIS マネージャを起動します。 
2.      _wmcs 直下の Licensing サイトをクリックします。
3.      「機能ビュー」から「認証」を選択します。
4.      「Windows 認証」を選択し、右クリックで「詳細設定」をクリックします。
5.      「詳細設定」画面で「カーネルモード認証を有効にする」のチェックを外し、「OK」ボタンをクリックします。
6.      「Windows 認証」を選択し、右クリックで「プロバイダー」をクリックします。
7.      「プロバイダー」画面で Negotiate を削除し、「OK」ボタンをクリックします。

詳細

DRMAcquireLicense API は、ライセンスの取得のため RMS をホストしている IIS サーバー上の「/_wmcs/licensing」サイトにアクセスをいたします。この際に該当名の Service Principal Names (SPN) が確認できない場合は、DRMAcquireLicense API は NTLM 認証を用いて認証を試行します。
IIS の Windows 認証では、認証関連のパフォーマンスを向上するため、既定で「カーネル モード認証」が有効となっております。しかしながら、NTLM で利用される NTLM 事前認証は、カーネルモード認証の機能上の制限として実現することができないため、クライアントに対して IIS は HTTP_STATUS_DENIED (401) を返します。この結果、DRMAcquireLicense API で認証ダイアログが表示される事となります。なお、NTLM 事前認証以降は、クライアントと IIS 間は NTLM 認証として処理を続行するため、認証が成功し、認証ダイアログが表示されなくなります。
プロパティ

文書番号:3057958 - 最終更新日: 2016/09/29 - リビジョン: 1

フィードバック