このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文

信頼されたアプリケーション

Silverlight

信頼されたアプリケーションは、管理者特権での信頼を要求するように構成するアプリケーションです。 これらのアプリケーションには特別なインストール要件がありますが、既定の Silverlight セキュリティ サンドボックスが持ついくつかの制限をバイパスすることができます。 たとえば、信頼されたアプリケーションは、キーボードの制限なしにユーザー ファイルにアクセスしたり全画面表示モードを使用したりできます。

既定では、Silverlight ベースのアプリケーションは部分的な信頼で実行されます。 これらのサンドボックス化されたアプリケーションは、ローカル コンピューターへのアクセスが制限されるほか、悪意のある動作を防ぐためにさまざまな制約が適用されます。 ただし、こうした制約が、利便性や必要な目的を達成するうえでの妨げになります。特に基幹業務アプリケーションではその傾向が顕著です。

信頼されたアプリケーションは、通常はブラウザー外実行アプリケーションですが、Silverlight 5 Beta では、システム管理者は信頼されたアプリケーションをブラウザー内で実行可能にできます。 これによって、企業内の配置と更新を簡素化でき、ブラウザー内で WebBrowser および NotificationWindow クラスを使用できるようになります。 詳細については、方法: 信頼されたアプリケーションをブラウザー内で実行できるようにする のトピックを参照してください。

管理者特権での信頼を要求するようにアプリケーションを構成するには、Visual Studio プロジェクト デザイナーを使用します。 アプリケーション マニフェストに適切な値が自動的に設定されます。 既存のアプリケーションのマニフェストを更新する際も、ビルドし直す必要はありません。 ただし、管理者特権での信頼の利点を活かすには、通常、アプリケーションの機能に変更を加える必要があります。 構成の詳細については、「方法: ブラウザー外実行サポート用にアプリケーションを構成する」を参照してください。

管理者特権での信頼を要求するブラウザー外実行アプリケーションでは、ユーザーがアプリケーションをインストールするときに表示される既定のインストール ダイアログ ボックスが、セキュリティ警告に置き換わります。 この警告の意味は、"ユーザー データにアクセスできるアプリケーションであるため、信頼されている Web サイトから以外はインストールしないように注意してほしい" ということです。 このトピックで取り上げている点を除いて、インストール後のアプリケーションは、通常のブラウザー外実行アプリケーションと同じように動作します。

表示されるセキュリティ警告は、有効なデジタル署名がアプリケーションにあるかどうかで異なります。 有効な署名のないアプリケーション (未確認のアプリケーション) は、セキュリティに多大なリスクをもたらすため、通常よりも目立つ警告が表示されます。 次のイメージは、同じアプリケーションのセキュリティ警告をデジタル署名の追加前後で比較したものです。

未確認のアプリケーションのセキュリティ警告

未確認のアプリケーションのセキュリティ警告
確認済みのアプリケーションのセキュリティ警告

確認済みのアプリケーションのセキュリティ警告

詳細については、このトピックの「アプリケーションの署名」を参照してください。

ほとんどの Silverlight ドキュメントは、すべてのアプリケーションが、ブラウザーによってホストされたサンドボックス化されたアプリケーションであるという前提で執筆されています。 このトピックでは、信頼されたアプリケーションが、サンドボックス化されたアプリケーションとどのように違うのかを説明します。 具体的には、管理者特権での信頼により有効になる機能と、アプリケーションが管理者特権での信頼で実行されているかどうかを判別する方法について説明します。

メモ メモ :

Silverlight 5 Beta では、信頼されたアプリケーションに、以前のバージョンの Silverlight では使用できない追加機能があります。 具体的には、Silverlight 5 Beta の信頼されたアプリケーションは次を行うことができます。

  • 無制限のローカル ファイル システムへのアクセス。

  • MethodAccessException を発生させずにセキュリティ クリティカルなメソッドにアクセスします。 これは Windows ベース アプリケーションでのみサポートされます。

  • コンピューターとアプリケーションが正しく構成されている場合は、前述のようにブラウザー内で実行されます。

  • ブラウザー外で実行される時に複数のウィンドウを作成します。 詳細については、Window クラスのトピックを参照してください。

  • プラットフォーム呼び出しを使用して、Windows ベースのアプリケーションでアンマネージ関数を呼び出します。

このトピックには次のセクションが含まれています。

信頼されたアプリケーションは、ドメイン間アクセスやスキーム間アクセスの制限を受けることなくネットワーク接続やソケット通信を実行することができます。 たとえば、HTTP プロトコルを使用して特定のサブ ドメインからインストールされたアプリケーションは、HTTPS プロトコルを使用して別のサブドメインからメディア ファイルにアクセスできます。 ドメイン間通信の詳細については、「Silverlight による HTTP 通信とセキュリティ」を参照してください。

さらに、信頼されたアプリケーションではポリシー チェックの制限を緩和して System.Net.Sockets 名前空間のネットワーク クラスを使用することができます。 このようなクラスには、新しい UdpAnySourceMulticastClient クラスや UdpSingleSourceMulticastClient クラスが含まれます。

信頼されたアプリケーションは、ドメイン間ポリシー ファイルがなくても、任意のホストの任意のポートへの TCP 接続を作成できます。 接続先のポートは、4502 ~ 4534 の範囲でなくてもかまいません。 同様に、UdpAnySourceMulticastClient クラスと UdpSingleSourceMulticastClient クラスを使用する信頼されたアプリケーションは、ポリシー レスポンダーによって接続が承認されなくても、1024 以上のポートを使用してマルチキャスト グループに参加できます。 詳細については、ネットワーク セキュリティのアクセス制限 (Silverlight) のトピックを参照してください。

サンドボックス化されたアプリケーションが、Content.FullScreenOptions プロパティの StaysFullScreenWhenUnfocused 設定や、ClipboardAudioSink、および VideoSink の各クラスの機能にアクセスするには、ユーザーの同意が必要です。 信頼されたアプリケーションの場合は、AudioSink (マイク) および VideoSink (カメラ) の機能にアクセスするためにユーザーの同意は必要ありません。

Silverlight の一部の機能は、ユーザーが開始した操作 (ボタン クリック イベントなど) への応答として使用することが要件となっています。 加えて、これらの機能は、ユーザーが開始した操作の 1 秒以内に使用する必要があります。 この要件は、オペレーティング システムの機能がアプリケーションによって不正に操作されるのを防ぐセキュリティ機能です。

信頼されたアプリケーションは、"ユーザーが開始した操作" という制約なしに、こうした機能のほとんどを使用できます。 たとえば、Application.Startup イベント ハンドラーで全画面表示モードに移行したり、時間のかかる書式設定操作の後で Clipboard への書き込みを実行したりすることもできます。

前のセクションで触れたように、信頼されたアプリケーションは、全画面表示モードに移行してその状態を維持する際に、ユーザーが開始した操作やユーザーの同意が不要です。 信頼されたアプリケーションは、Content.FullScreenOptions プロパティの StaysFullScreenWhenUnfocused 設定を使用することもできます。

また、信頼されたアプリケーションは、全画面表示モードになっても、"全画面表示モードを終了するには、ESC を押します。" というメッセージは表示されません。 キーストロークが自動的にインターセプトされることも、全画面表示モードでのキーボードの制限も一切ありません。

キーボードの制限がなくなる代わりに、信頼されたアプリケーションでは、Esc キーを押しても全画面表示モードが終了しません。 そのため、Esc キーを他の機能に利用することができます。 ただし、全画面表示モードを表示するためのユーザー インターフェイスを独自に実装する必要があります。

詳細については、全画面表示サポート のトピックを参照してください。

信頼されたアプリケーションは、ブラウザー外実行アプリケーション ウィンドウのタイトル バーと境界線を非表示にすることによって、完全にカスタマイズされたユーザー インターフェイスを提供することができます。 この機能を有効にする方法については、「方法: ブラウザー外実行サポート用にアプリケーションを構成する」を参照してください。

タイトル バーと境界線を非表示にした場合、アプリケーションの内容だけが白色の背景上に表示されます。 背景が透明ではないため、この機能を使用して、不規則な形状のアプリケーションを作成することはできません。 ただし、隅に半径 9 ピクセルの丸みを付けることはできます。 詳細については、WindowSettings.WindowStyle プロパティのトピックを参照してください。

タイトル バーと境界線によって実現されている機能は、Window クラスの API を使用して置き換えることができます。 ウィンドウまたはその境界線をユーザーがドラッグできるようにするには、DragMove メソッドと DragResize メソッドを使用します。 ウィンドウのプロパティ (LeftTopWidthHeight) を使用して、位置とサイズを調整することもできます。 ユーザーがウィンドウを最小化および最大化できるようにするには、WindowState プロパティを使用します。 ユーザーがウィンドウを終了できるようにするには、Close メソッドを使用します。

信頼されたアプリケーションは、通常では利用できない System.IO とその関連する型にアクセスすることができます。 そのため、OpenFileDialog クラスと SaveFileDialog クラスを使用せずに、ユーザー ファイルに直接アクセスできます。

Silverlight 5 Beta では、信頼されたアプリケーションで、ローカル ファイルに対して無制限にアクセスできます。 ただし、以前のバージョンでは、信頼されたアプリケーションがアクセスできるのは、ユーザー フォルダー内のファイル、具体的には MyDocumentsMyMusicMyPictures、および MyVideos フォルダー内のファイルに限られます。

メモ メモ :

これらのフォルダーは、Windows 7 のライブラリ (ドキュメント、ミュージック、ピクチャ、ビデオ) とは異なります。 通常、ライブラリ フォルダーには、対応するユーザー フォルダーの内容が、他のフォルダー (共有メディア フォルダーなど) と組み合わせて表示されます。 一方、信頼されたアプリケーションは、OpenFileDialog クラスと SaveFileDialog クラスを介してアクセスする場合を除き、ユーザー フォルダー以外のフォルダーにアクセスすることはできません。

ユーザー フォルダーのパスを取得するには、Environment.GetFolderPath メソッドを使用する必要があります。 これらのパスを直接指定することはできません。

次の表は、Silverlight 4 を対象にしている信頼されたアプリケーションが使用できる System.IO 名前空間のクラスの一覧です。 サポートされないメンバーも、クラスごとに示してあります。

class

サポートされないメンバー

Directory

GetCurrentDirectory

GetDirectoryRoot

SetCurrentDirectory

DirectoryInfo

Root

MoveTo

File

SetAttributes

FileInfo

(すべてのメンバーがサポートされます。)

FileStream

BeginRead

BeginWrite

CanRead

CanSeek

CanWrite

EndRead

EndWrite

Path

GetTempFileName

GetTempPath

StreamReader

Stream 引数を受け取るコンストラクター

Stream 引数を受け取るコンストラクター

詳細については、記載されているリファレンス トピックおよび「方法 : 信頼されたアプリケーションでローカル ファイル システムにアクセスする」を参照してください。

信頼されたアプリケーションは、ネイティブ オペレーティング システムの特定の機能にアクセスすることができます。 たとえば、Windows の場合、信頼されたアプリケーションは、オートメーション機能を使用して、Office スイートなどのアプリケーションで公開されているコンポーネントにアクセスしたり、操作したりできます。 また、Silverlight 5 Beta では、アンマネージ機能へのプラットフォーム呼び出しを行うことができます。

オートメーションとの相互運用の詳細については、「AutomationFactory」および「方法 : 信頼されたアプリケーションでオートメーションを使用する」を参照してください。 プラットフォーム呼び出しの使用の詳細については、「方法: 信頼されたアプリケーションからアンマネージ コードを呼び出す」を参照してください。

アプリケーションが現在、管理者特権での信頼で実行されているかどうかを判別するには、HasElevatedPermissions プロパティを確認します。 これは、アプリケーションが部分信頼で実行される場合の代替コード パスを指定する場合に役立ちます。

信頼されたアプリケーションはホスト コンピューターに対するフル アクセス権を持ちませんが、個人データにアクセスできるため、セキュリティ上の問題になる可能性があります。 したがって、セキュリティの評価や監査を実行する際には、完全信頼アプリケーションと同等の扱いが必要です。 信頼されたアプリケーションをユーザーがインストールしたり実行したりできないようにするには、コンピューター ポリシー設定を使用してアクセスを拒否します。詳細については、このトピックの「管理者特権での信頼に対するポリシー制限」を参照してください。

信頼されたアプリケーションは、ユーザーの特権で実行されます。ユーザーが管理者の特権を使用してインストールしたとしても同様です。 ただし、開発時にデバッグする際には信頼されたアプリケーションを昇格された特権で実行できるため、必要に応じてテストするようにしてください。

Silverlight では、一様な特権のセット (信頼済みまたはサンドボックス化) を持った AppDomain のインスタンス内ですべてのアプリケーション コードが実行されます。 アプリケーションに集約された外部のコンポーネントを確認、検証するのはアプリケーション開発者の役目です。

ブラウザー外実行アプリケーションのセキュリティは、ホスト Web サイトと同等です。 そのため、ブラウザー外実行アプリケーションをインストールまたは更新する場合、ユーザーはホスト サイトのセキュリティに依存する必要があります。 セキュリティを強化するために実施できるいくつかの対策を次に示します。

  • アプリケーションに署名を追加します (このトピックの「アプリケーションの署名」を参照)。

  • アプリケーションが、そのホスト サーバー内のリソースにアクセスする場合、SilverlightHost.Source プロパティの値と、該当する発信元サイトの URI とが一致していることを確認する必要があります。

  • アプリケーションで機密性の高い情報を処理する場合、または、サーバーから追加のコードを読み込む場合は、安全な通信のために、アプリケーションの URI に対して HTTPS を使用する必要があります。 更新をチェックするときには、常に元のアプリケーションの URI (プロトコルを含む) が使用されます。

  • ブラウザー外実行アプリケーションでは、接続が利用可能な場合に HTTPS 経由でネットワーク リソースにアクセスできます。 証明書が期限切れまたは無効である場合、ネットワーク呼び出しは失敗します。 ただし、現在、セキュリティで保護されたチャネルの存在を示す組み込みのインジケーターはありません。 信頼性の高いアプリケーションであるという印象をユーザーに持ってもらうには、独自のインジケーターを実装することを検討してください。

ブラウザー内実行の信頼されたアプリケーションは、Internet Explorer 保護モードなどのブラウザー セキュリティ設定によって強制される制限の対象になります

詳細とセキュリティの全般的なガイドラインについては、「セキュリティ」を参照してください。

信頼されたアプリケーションにデジタル署名を追加することは、アプリケーションのセキュリティを確保し、インストール中にユーザーの信頼を得るためにも重要です。 また、有効なデジタル署名を持つ信頼されたアプリケーション以外は、ブラウザー外実行の更新機構を利用できません。 有効な署名を持たない信頼されたアプリケーションを更新するには、ユーザーが古いバージョンをアンインストールしてから、新しいバージョンを手動でインストールする必要があります。 Silverlight 5 Beta では、信頼されたアプリケーションで有効なデジタル署名をブラウザー内で実行する必要があります。 詳細情報およびその他の要件については、「方法: 信頼されたアプリケーションをブラウザー内で実行できるようにする」を参照してください。

信頼されたアプリケーションにデジタル署名を追加するには、Visual Studio プロジェクト デザイナーの [署名] タブを使用することができます。 これを行うには、[プロジェクト] メニューで [<ProjectName> のプロパティ] を選択し、[署名] タブをクリックして、[Xap ファイルの署名] を選択します。 次に、ボタンを使用して、既存の Authenticode X.509 コード署名証明書を選択したり、テスト証明書を作成したりできます。

SignTool.exe ユーティリティと Authenticode X.509 のコード署名証明書を使用して、デジタル署名を追加することもできます。 たとえば、次のコマンド ラインを実行します。

signtool sign /v /f certificateFile.pfx   fileToSign

詳細については、「SignTool.exe (署名ツール)」を参照してください。

コード署名は、信頼されたアプリケーションにのみ関係します。 ユーザーがアプリケーションをインストールまたは更新するたびに、Silverlight によって署名と証明書が確認されます。 信頼されたアプリケーションは、有効な署名がなくてもインストールできます。 ただし、元のアプリケーションとその更新とが、どちらも同じ有効なコード署名証明書で署名されていなければ、信頼されたアプリケーションを更新することはできません。 また、更新時点で、証明書の有効期限が切れていないことも必要です。 配置と更新の計画を立てる際は、必ず証明書の有効期限を考慮してください。

メモ メモ :

発信元のホストが localhost または 127.0.0.1 の場合、Silverlight はアプリケーションの更新を禁止しません。 更新プログラムのコードは、デジタル署名なしでテストすることができます。

アプリケーションの更新の詳細については、「ブラウザー外実行のサポート」を参照してください。

システム管理者は、管理者特権での信頼を必要とするブラウザー外実行アプリケーションをユーザーがインストールしたり実行したりできないようにコンピューターを構成することができます。

信頼されたアプリケーションのインストールが無効にされている場合は、インストールしようとしても何も実行されません。 この場合、既にインストールされている (または管理者によってインストールされた) 信頼されたアプリケーションは正しく動作します。

信頼されたアプリケーションの実行が無効になっている場合、アプリケーションを実行しようとすると、空のブラウザー外実行アプリケーション ウィンドウが表示されます。 ただし、信頼されたアプリケーションの実行が無効にされている場合、そのインストールも無効にされているのが一般的です。

詳細については、「Group Policy Settings (グループ ポリシー設定)」を参照してください。

Silverlight for Windows Phone Silverlight for Windows Phone および Silverlight 3 では、信頼されたアプリケーションはサポートされません。

コミュニティの追加

追加
表示:
© 2015 Microsoft