Reporting Services での認証の拡張保護
拡張保護は、最新バージョンの Microsoft Windows オペレーティング システムに追加された一連の拡張機能です。 拡張保護により、アプリケーションで資格情報と認証を保護する方法の幅が広がります。 この機能自体は、資格情報の転送をはじめとする特定の攻撃を直接防ぐものではありませんが、Reporting Services などのアプリケーションに対し、認証の拡張保護を適用するためのインフラストラクチャを提供します。
拡張保護に含まれる認証の拡張機能を代表するのが、サービス バインドとチャネル バインドです。 チャネル バインドでは、チャネル バインド トークン (CBT) を使用して、2 つのエンド ポイント間に確立されたチャネルに問題が生じていないかどうかを確認します。 サービス バインドでは、サービス プリンシパル名 (SPN) を使用して認証トークンの目的の送信先を検証します。 拡張保護の詳細な背景情報については、「拡張保護付き統合 Windows 認証」を参照してください。
SQL Server 2012 Reporting Services でサポートおよび適用されるのは、オペレーティング システムで有効化し、Reporting Services で構成した拡張保護です。 既定では、Reporting Services はネゴシエート認証または NTLM 認証を指定する要求を受け入れるため、オペレーティング システムでの拡張保護のサポートと Reporting Services の拡張保護機能を活用できます。
重要 |
---|
既定では、Windows の拡張保護は有効になっていません。 Windows で拡張保護を有効にする方法の詳細については、「認証に対する保護の強化」を参照してください。 認証を成功させるためには、オペレーティング システムとクライアントの認証スタックが両方とも拡張保護をサポートしている必要があります。 旧バージョンのオペレーティング システムを使用している場合は、拡張保護に対応したコンピューターを準備するために、1 つ以上の更新プログラムのインストールが必要になることがあります。 拡張保護の最新情報については、こちらを参照してください。 |
Reporting Services の拡張保護の概要
SQL Server 2012 Reporting Services では、オペレーティング システムで有効になっている拡張保護がサポートおよび適用されます。オペレーティング システムが拡張保護をサポートしていない場合、またはオペレーティング システム内の機能が有効になっていない場合は、Reporting Services 拡張保護機能が認証に失敗します。Reporting Services 拡張保護には SSL 証明書も必要です。 詳細については、「ネイティブ モードのレポート サーバーでの SSL 接続の構成」を参照してください。
重要 |
---|
既定では、Reporting Services の拡張保護は有効になっていません。 この機能を有効にするには、rsreportserver.config 構成ファイルを変更するか、WMI API を使用して構成ファイルを更新します。 SQL Server 2012 Reporting Services には、拡張保護の設定を変更または確認するためのユーザー インターフェイスが用意されていません。 詳細については、このトピックの構成設定に関するセクションを参照してください。 |
拡張保護の設定に加えた変更や設定の不適切な構成が原因で一般的な問題が発生しても、目に見えるエラー メッセージやダイアログ ウィンドウで示されることはありません。 拡張保護の構成や互換性に関係する問題が生じると、認証に失敗し、Reporting Services のトレース ログにエラーが記録されます。
重要 |
---|
一部のデータ アクセス テクノロジでは、拡張保護がサポートされないことがあります。 データ アクセス テクノロジは、SQL Server データ ソースおよび Reporting Services カタログ データベースへの接続に使用されます。 データ アクセス テクノロジで拡張保護がサポートされない場合、Reporting Services に次のような影響が生じます。
データ アクセス テクノロジのドキュメントには、拡張保護のサポートに関する情報が記載されています。 |
アップグレード
Reporting Services サーバーを SQL Server 2012 にアップグレードすると、既定値の設定された構成設定が rsreportserver.config ファイルに追加されます。 既存の設定がある場合は、SQL Server 2012 のインストールにより、その設定が rsreportserver.config ファイルで保持されます。
構成設定が rsreportserver.config 構成ファイルに追加されると、既定の動作として Reporting Services の拡張保護機能が無効になるため、このトピックの説明に従って有効にする必要があります。詳細については、このトピックの構成設定に関するセクションを参照してください。
RSWindowsExtendedProtectionLevel 設定の既定値は Off です。
RSWindowsExtendedProtectionScenario 設定の既定値は Proxy です。
SQL Server 2012 アップグレード アドバイザーは、オペレーティング システムまたは Reporting Services の現在のインストールで拡張保護のサポートが有効かどうかを確認しません。
Reporting Services の拡張保護でサポートされない機能とシナリオ
Reporting Services の拡張保護機能では、次の機能領域とシナリオがサポートされません。
Reporting Services のカスタム セキュリティ拡張機能の作成者は、拡張保護のサポートをカスタム セキュリティ拡張機能に追加する必要があります。
Reporting Services のインストールで使用または追加されるコンポーネントを開発したサード パーティ ベンダーは、そのコンポーネントを更新して拡張保護をサポートする必要があります。 詳細については、サード パーティ ベンダーに問い合わせてください。
配置のシナリオと推奨事項
以下のシナリオでは、さまざまな配置とトポロジを紹介します。また、それらを Reporting Services の拡張保護でセキュリティ保護するにあたっての推奨構成も示します。
直接的な通信
このシナリオでは、イントラネット環境などでのレポート サーバーへの直接的な接続について説明します。
シナリオ |
シナリオを表した図 |
セキュリティ保護の方法 |
---|---|---|
直接的な SSL 通信を使用します。 レポート サーバーにより、クライアントからレポート サーバーへのチャネル バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Direct に設定します。 |
直接的な HTTP 通信を使用します。 レポート サーバーにより、クライアントからレポート サーバーへのサービス バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Any に設定します。 |
プロキシとネットワーク負荷分散
クライアント アプリケーションは、エクストラネット、インターネット、セキュリティで保護されたイントラネットなどで、SSL を実行して認証のためにサーバーに資格情報を渡すデバイスまたはソフトウェアに接続します。 クライアントはプロキシに接続します。つまり、すべてのクライアントがプロキシを使用します。
この状況は、ネットワーク負荷分散 (NLB) デバイスを使用する場合と同じです。
シナリオ |
シナリオを表した図 |
セキュリティ保護の方法 |
---|---|---|
HTTP 通信を使用します。 レポート サーバーにより、クライアントからレポート サーバーへのサービス バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー 3) プロキシ |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Any に設定します。
|
HTTP 通信を使用します。 レポート サーバーによって、クライアントからプロキシへのチャネル バインドと、クライアントからレポート サーバーへのサービス バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー 3) プロキシ |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Proxy に設定します。 |
セキュリティで保護されたプロキシとの間接的な HTTPS 通信を使用します。 レポート サーバーによって、クライアントからプロキシへのチャネル バインドと、クライアントからレポート サーバーへのサービス バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー 3) プロキシ |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Proxy に設定します。 |
ゲートウェイ
このシナリオでは、SSL を実行してユーザーを認証するデバイスまたはソフトウェアに接続するクライアント アプリケーションについて説明します。 このデバイスまたはソフトウェアは、ユーザー コンテキストまたは別のユーザー コンテキストを偽装したうえで、レポート サーバーに対して要求を行います。
シナリオ |
シナリオを表した図 |
セキュリティ保護の方法 |
---|---|---|
間接的な HTTP 通信を使用します。 ゲートウェイによって、クライアントからゲートウェイへのチャネル バインドが適用されます。 ゲートウェイとレポート サーバーの間にはサービス バインドが確立されます。 |
1) クライアント アプリケーション 2) レポート サーバー 3) ゲートウェイ デバイス |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Any に設定します。
|
セキュリティで保護されたゲートウェイとの間接的な HTTPS 通信を使用します。 ゲートウェイによってクライアントからゲートウェイへのチャネル バインドが適用され、レポート サーバーによってゲートウェイからレポート サーバーへのチャネル バインドが適用されます。 |
1) クライアント アプリケーション 2) レポート サーバー 3) ゲートウェイ デバイス |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Direct に設定します。
|
組み合わせ
このシナリオでは、クライアントがプロキシに接続するエクストラネット環境またはインターネット環境について説明します。 これは、クライアントがレポート サーバーに接続するイントラネット環境と組み合わせたシナリオです。
シナリオ |
シナリオを表した図 |
セキュリティ保護の方法 |
---|---|---|
クライアントからレポート サーバー サービスへの間接的なアクセスと直接的なアクセスを行います。クライアントからプロキシ、またはクライアントからレポート サーバーへの接続で SSL を使用しません。 |
1) クライアント アプリケーション 2) レポート サーバー 3) プロキシ 4) クライアント アプリケーション |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Any に設定します。 |
クライアントからレポート サーバーへの間接的なアクセスと直接的なアクセスを行います。その際、クライアントからプロキシまたはレポート サーバーへの SSL 接続を確立します。 |
1) クライアント アプリケーション 2) レポート サーバー 3) プロキシ 4) クライアント アプリケーション |
RSWindowsExtendedProtectionLevel を Allow または Require に設定します。 RSWindowsExtendedProtectionScenario を Proxy に設定します。 |
Reporting Services の拡張保護の構成
rsreportserver.config ファイルには、Reporting Services の拡張保護の動作を制御する構成値が含まれています。
rsreportserver.config ファイルの使用と編集の詳細については、「RSReportServer 構成ファイル」を参照してください。 拡張保護の設定は、WMI API を使用して変更および確認することもできます。 詳細については、「SetExtendedProtectionSettings メソッド (WMI MSReportServer_ConfigurationSetting)」を参照してください。
構成設定の検証が失敗した場合、RSWindowsNTLM、RSWindowsKerberos、および RSWindowsNegotiate の各認証の種類がレポート サーバーで無効になります。
Reporting Services の拡張保護の構成設定
次の表では、拡張保護の rsreportserver.config に含まれる構成設定について説明します。
設定 |
説明 |
||
---|---|---|---|
RSWindowsExtendedProtectionLevel |
拡張保護の適用レベルを指定します。 有効な値は、Off、Allow、および Require です。 既定値は Off です。 Off を指定した場合、チャネル バインドまたはサービス バインドの検証は行われません。 Allow を指定した場合、拡張保護はサポートされますが、要求されません。 Allow を指定した場合、次の効果があります。
Require を指定した場合、次の効果があります。
|
||
RsWindowsExtendedProtectionScenario |
検証する拡張保護の形式を指定します (チャネル バインド、サービス バインド、またはその両方)。 有効な値は、Any、Proxy および Direct です。 既定値は Proxy です。 Any を指定した場合、次の効果があります。
Proxy を指定した場合、次の効果があります。
Direct を指定した場合、次の効果があります。
|
rsreportserver.config 構成ファイル内のエントリの例を次に示します。
<Authentication>
<RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionLevel>
</Authentication>
サービス バインドと含まれる SPN
サービス バインドでは、サービス プリンシパル名 (SPN) を使用して認証トークンの目的の送信先を検証します。 Reporting Services は、既存の URL 予約情報を使用して、有効と見なされる SPN のリストを作成します。 SPN と URL 予約の両方の検証に URL 予約情報を使用することにより、システム管理者による一元管理が可能になります。
有効な SPN のリストが更新されるのは、レポート サーバーを起動したとき、拡張保護の構成設定を変更したとき、またはアプリケーション ドメインをリサイクルしたときです。
有効な SPN のリストは、各アプリケーションに固有です。 たとえば、レポート マネージャーとレポート サーバーでは、有効な SPN のリストが別々に計算されます。
アプリケーションに対して計算される有効な SPN のリストは、次の要素によって決定されます。
各 URL 予約。
Reporting Services サービス アカウント用にドメイン コントローラーから取得した各 SPN。
URL 予約にワイルドカード文字 (* または +) が含まれている場合は、レポート サーバーによってホスト コレクションから各エントリが追加されます。
ホスト コレクションのソース
次の表に、ホスト コレクションのソースとなり得るものを示します。
ソースの種類 |
説明 |
---|---|
ComputerNameDnsDomain |
ローカル コンピューターに割り当てられた DNS ドメインの名前。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの DNS ドメイン名が使用されます。 |
ComputerNameDnsFullyQualified |
ローカル コンピューターを一意に識別する完全修飾 DNS 名。 この名前は、HostName.DomainName という形式で DNS ホスト名と DNS ドメイン名を組み合わせたものです。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの完全修飾 DNS 名が使用されます。 |
ComputerNameDnsHostname |
ローカル コンピューターの DNS ホスト名。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの DNS ホスト名が使用されます。 |
ComputerNameNetBIOS |
ローカル コンピューターの NetBIOS 名。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの NetBIOS 名が使用されます。 |
ComputerNamePhysicalDnsDomain |
ローカル コンピューターに割り当てられた DNS ドメインの名前。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの名前ではなく、ローカル コンピューターの DNS ドメイン名が使用されます。 |
ComputerNamePhysicalDnsFullyQualified |
コンピューターを一意に識別する完全修飾 DNS 名。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの名前ではなく、ローカル コンピューターの完全修飾 DNS 名が使用されます。 この完全修飾 DNS 名は、HostName.DomainName という形式で DNS ホスト名と DNS ドメイン名を組み合わせたものです。 |
ComputerNamePhysicalDnsHostname |
ローカル コンピューターの DNS ホスト名。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの名前ではなく、ローカル コンピューターの DNS ホスト名が使用されます。 |
ComputerNamePhysicalNetBIOS |
ローカル コンピューターの NetBIOS 名。 ローカル コンピューターがクラスター内のノードである場合、クラスターの仮想サーバーの名前ではなく、ローカル コンピューターの NetBIOS 名が使用されます。 |
SPN が追加されると、トレース ログに次のようなエントリが追加されます。
rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalNetBIOS> - <theservername>.
rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalDnsHostname> - <theservername>.
詳細については、「レポート サーバーのサービス プリンシパル名 (SPN) の登録」および「URL の予約と登録について」を参照してください。
関連項目
参照
SetExtendedProtectionSettings メソッド (WMI MSReportServer_ConfigurationSetting)