12 統合Excelワークブックの保護

ADFデスクトップ統合のセキュリティ関連機能について説明します。

この章の内容は次のとおりです。

統合Excelワークブックの保護について

認証を実施しないFusion Webアプリケーションを使用している場合、統合Excelワークブックは、データをダウンロードする前に、Fusion Webアプリケーションに接続するときに、有効なユーザー・セッションを確認および作成します。

確立されたセッションは、統合ExcelワークブックとFusion Webアプリケーションの間でデータが転送されるたびに使用されます。また、このセッションは、統合Excelワークブックから表示されるWebページに対しても使用されます。

認証が必須のFusion Webアプリケーションでは、統合ExcelワークブックはWebアプリケーションとの間でデータを転送する前に有効で認証済のユーザー・セッションが確立されているかどうかを確認します。

認証済および認証されていないFusion Webアプリケーションの両方について、ADFデスクトップ統合はCookieベースのセッションの確立に依存します。認証のメカニズムを持たないため、Fusion Webアプリケーションは完全に安全というわけではありません。したがって、統合ExcelワークブックとともにWebアプリケーションをデプロイする前に、Fusion WebアプリケーションでADFセキュリティを有効化する必要があります。ADFセキュリティの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』「Fusion WebアプリケーションでのADFセキュリティの有効化」を参照してください。

統合Excelワークブックを開いたときに、ワークブックの実行対象であるFusion WebアプリケーションがセキュアなアプリケーションかどうかがADFデスクトップ統合で検出され、自動的に認証が実行されます。認証済Webアプリケーションの場合、ワークブックが認証済Webブラウザからダウンロードされるとしても、エンド・ユーザーには必ず資格証明が求められます。WebブラウザとExcelは別のオペレーティング・システム・プロセスのため、資格証明を共有できません(KerberosやNTLMなど、なんらかの形の統合Windows認証を使用している場合を除く)。Microsoft Kerberosの詳細は、http://msdn.microsoft.com/en-us/library/aa378747%28v=vs.85%29.aspxを参照してください。

統合Excelワークブックの保護のユース・ケースと例

セキュアなFusion Webアプリケーションの統合Excelワークブックを開くと、接続確認ダイアログが表示され、図12-1に示すように、Fusion Webアプリケーションに接続するように求められます。接続確認ダイアログは、Fusion Webアプリケーションが安全でない場合も表示されます。

図12-1 接続を確認するダイアログ

図12-1の説明が続きます
「図12-1 接続を確認するダイアログ」の説明

「はい」をクリックすると、ユーザー資格証明の入力を求める別のダイアログが表示されます。表示されるダイアログは、Fusion Webアプリケーションの認証実施の構成によって異なります。たとえば、図12-2は、Oracle Access Managementを使用してフォームベースのログインをFusion Webアプリケーションが求めている場合に表示されます。

図12-2 フォームベースのログイン・ダイアログ

この図は周囲のテキストで説明しています

安全なFusion Webアプリケーションにおける統合Excelワークブックの追加機能

統合Excelワークブックを保護した後、必要に応じてワークブックの機能をさらに追加できます。次の各項では、使用可能なその他の機能について説明します。

  • 統合Excelワークブックの検証: Fusion Webアプリケーションおよび統合Excelワークブックに対して、サーバー・サイドおよびクライアント・サイドのデータ入力の検証を構成できます。「統合Excelワークブックへの検証の追加」を参照してください。

  • 統合Excelワークブックのテスト: 統合Excelワークブックを公開してデプロイする前に、テストする必要があります。「統合Excelワークブックのテスト」を参照してください。

  • 統合Excelワークブックの公開およびデプロイ: 統合Excelワークブックの設計と検証に続く最終ステップは、公開およびデプロイです。「統合Excelワークブックのデプロイ」を参照してください。

Excelワークブック・ユーザーの認証

Excelワークブックと安全なFusion Webアプリケーションの統合には、統合ExcelワークブックとFusion Webアプリケーションをホストするサーバー間で確立された認証済のWebセッションが必要です。ADFセキュリティは、ユーザーの認証に使用するメカニズムを決定します。

エンド・ユーザーが有効な認証済セッションなしにExcelワークブックを開く場合、エンド・ユーザーを認証するためにログインのメカニズムが起動されます。

実行時の処理: Loginメソッドの起動

Loginメソッドが起動されると、Webブラウザ・コントロールを含むモデル・ダイアログが表示されますWebブラウザ・コントロールには、Fusion Webアプリケーションが使用するログイン・メカニズムが表示されます。たとえば、Fusion WebアプリケーションがHTTP Basic認証を使用する場合、Webブラウザ・コントロールには、図12-3に示すようなダイアログが表示されます。エンド・ユーザーがログインに成功すると、統合ExcelワークブックとFusion Webアプリケーションの間の新しいセッションが作成されます。

図12-3 Fusion WebアプリケーションがBasic認証を使用する際に表示されるダイアログ

図12-3の説明が続きます
「図12-3 Fusion WebアプリケーションがBasic認証を使用する際に表示されるダイアログ」の説明

エンド・ユーザーがユーザー資格証明を入力し、これらが有効な場合、認証済セッションが作成されます。

注意:

セッションがすでに確立されているときにLoginメソッドが起動されると、そのセッションを停止するためにまず内部でLogoutアクションが起動されます。

実行時の処理: Webアプリケーション・セッションの終了

logoutメソッドが起動された後、ダイアログが表示されて、現在のセッションからログアウトしたことがユーザーに通知されます。ワークブックを閉じたり、Excelリボンの実行時カスタム・タブから「全データのクリア」オプションを選択すると、ユーザーは自動的にログアウトします。

図12-4 ユーザーがログアウトすると表示されるダイアログ

この図は周囲のテキストで説明しています

ログアウト後に、エンド・ユーザーがスプレッドシートの操作を続行する場合があります。エンド・ユーザーが次にサーバーとの対話(例: Uploadアクションの起動)を試行すると、再度ログインするように求められます。

2つ以上のワークブックが(テスト・モードまたは実行時モードで)開いていて、同じFusion Webアプリケーションに対して実行している場合、1つのワークブックを閉じてもログアウトのメカニズムは起動しません。ユーザーはログインしたままになり、残りの開いたワークブックで引き続き作業できます。閉じているワークブックは、資格証明をもう一度求められずに開くことができます。ユーザーは同じFusion Webアプリケーションに対して実行しているすべてのワークブックが閉じるとログアウトされます。

統合Excelワークブックのメタデータの整合性チェック

ADFデスクトップ統合は、ExcelワークブックとFusion Webアプリケーションの統合に使用するメタデータが、エンド・ユーザー用にExcelワークブックを公開した後に不正に変更されていないか検証します。

これは、ハッシュ・コードの値を生成して、値をADFデスクトップ統合のクライアント・レジストリ・ファイル(adfdi-client-registry.xml)に挿入します(このファイルも、「統合Excelワークブックの公開」の説明にあるように、統合Excelワークブックを公開するときに作成されます)。ADFデスクトップ統合は、adfdi-client-registry.xmlファイルをFusion WebアプリケーションWEB-INFディレクトリに格納します。

統合Excelワークブックを再度公開する場合、ADFデスクトップ統合は新しいハッシュ・コードの値を生成して、adfdi-client-registry.xmlファイルの値を置換します。存在しない場合、ADFデスクトップ統合はadfdi-client-registry.xmlファイルを作成します。

ApplicationHomeFolderおよびWebPagesFolderワークブック・プロパティを使用すると、統合ExcelワークブックはFusion WebアプリケーションWEB-INFディレクトリの場所を識別できます。統合Excelワークブックを公開してADFデスクトップ統合によりハッシュ・コード値が生成されるようにするには、これらのプロパティに有効な値を設定しておく必要があります。

ADFデスクトップ統合は、ワークブックのメタデータにあるほとんどの要素とWorkbookIDワークブック・プロパティの値を使用して、ハッシュ・コードの値を生成します。WorkbookIDワークブック・プロパティは読取り専用であり、統合Excelワークブックを一意に識別します。既存の統合Excelワークブックをコピーして新規の統合Excelワークブックを作成する場合、WorkbookIDワークブック・プロパティをリセットする必要があります。WebAppRootプロパティの値は実行時に変わることが予測されるため、ADFデスクトップ統合はハッシュ・コードの計算からこれを除外します。

この項のワークブック・プロパティの詳細は、表A-19を参照してください。

注意:

改ざんチェックは、カスタマイズ対応ワークブックに対して実行されません。

ワークブックIDのリセット方法

WorkbookIDワークブック・プロパティの値は、それぞれのワークブックに固有であり、開発者による変更はできません。ただし、WorkbookIDワークブック・プロパティをリセットすることはできます。既存の統合Excelワークブックをコピーして新しい統合Excelワークブックを作成する場合、これを行う必要があります。

始める前に:

統合Excelワークブックのメタデータの整合性を検証する方法を理解しておくと役立ちます。「統合Excelワークブックのメタデータの整合性チェック」を参照してください。

他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「安全なFusion Webアプリケーションにおける統合Excelワークブックの追加機能」を参照してください。

ワークブックIDをリセットするには:

  1. 統合Excelワークブックを開きます。
  2. 「Oracle ADF」タブの「ワークブック」グループで、「ワークブック・プロパティ」をクリックします。
  3. 「ワークブック・プロパティの編集」ダイアログで、「ワークブックIDのリセット」リンクをクリックします。
  4. 表示される「WorkbookIDのリセット」ダイアログ(図12-5を参照)で「はい」をクリックし、WorkbookIDワークブック・プロパティを確認してリセットします。

    図12-5 ワークブックIDのリセット・ダイアログ

    この図は周囲のテキストで説明しています
  5. 「OK」をクリックします。

メタデータ改ざんチェックを実行する際の実行時の処理

実行時に、統合Excelワークブックはメタデータのハッシュ・コードを再生成し、最初サーバー・リクエストによってそれをFusion Webアプリケーションに提供します。Fusion Webアプリケーションがこのハッシュ・コードに一致するものを取得できない場合、統合Excelワークブックにエラーが返されます。改ざんチェック・プロセスからエラーを受信すると、ただちに統合Excelワークブックはこの失敗をエンド・ユーザーに報告して、統合フレームワークを閉じます。

統合Excelワークブックの保護に関する必知事項

Fusion Webアプリケーションと統合したExcelワークブックのデータを保護するための追加ステップを示します。

  • データ・セキュリティ

    Fusion Webアプリケーションからダウンロードしたデータを含むExcelワークブックを、他のユーザーがそのExcelワークブックにアクセスできるネットワーク・ディレクトリなどの場所に保存する場合、他のユーザーはExcelワークブックに保存されているデータにアクセスできます。

  • Microsoft Excelのセキュリティ

    ワークブックにパスワードを設定するExcelの機能を使用して、統合Excelワークブックのセキュリティを強化できます。これにより、許可されていないユーザーは、ワークブックを開いたり変更することができなくなります。Excelのセキュリティ機能の詳細は、Excelのドキュメントを参照してください。

  • 「セッション間のサーバー・データ・コンテキストのリストア」の説明に従って、データをキャッシュするように、統合Excelワークブックを構成できます。統合Excelワークブックに機密データをキャッシュしないように注意してください。

  • Fusion Webアプリケーションhttpsプロトコル上で実行されている場合、統合Excelワークブックから接続中に証明書エラーを受信する可能性があります。Microsoft Internet Explorerを使用して必要な証明書をインストールするか、またはログインを継続してWebアプリケーションに接続することを選択できます。

  • Microsoft Internet Explorerを使用して統合Excelワークブックをダウンロードするエンド・ユーザーは、Excelアプリケーションが参照可能になる前に、予期せず資格証明の入力を要求され、ワークブックが開いた後にもう一度入力を要求されることがあります。これは、WebアプリケーションがBasicDigestなどの特定の認証メソッドを使用するように構成されている場合に発生する可能性があります。余分に入力を要求されるのは、Excelがワークブックを含むWebディレクトリでOPTIONSリクエストを行うためです。

    余分なログイン・プロンプトを回避するには、エンド・ユーザーはワークブックをブラウザから直接開くのではなく、ローカルで保存します。

  • 認証されていないFusion Webアプリケーションの場合は、エンド・ユーザーはログインを要求されません。ただし、アプリケーションでhttpsプロトコルが使用されている場合は、Webアプリケーションとの最初の接続が確立されたときに、接続確認ダイアログがエンド・ユーザーに短時間表示される可能性があります。ワークブック開発者は、Workbook.Login.WindowSizeプロパティでダイアログのサイズを制御できます。

管理者は、「Fusion Webアプリケーションでのセキュリティ構成に関する必知事項」も参照してください。

Excelワークブック・ユーザーの認可

ADFデスクトップ統合は、ページ定義の認可を使用して、統合Excelワークシートに表示権限を適用します。実行時、ページ定義(バインディング・コンテナ)に対する適切な権限のないエンド・ユーザーは、関連する統合Excelワークシートとの対話が禁止されます。

許可されていないバインディング・コンテナとの対話(データのダウンロードや送信など)の試みは中止になり、エンド・ユーザーは認可の失敗を知らされ、ワークシート上のすべてのADFデスクトップ統合アクティビティは無効になります。新しいユーザー・セッションが確立されるまで、ADFデスクトップ統合が無効になっているワークシートとこれ以上の対話を行うことはできません。エンド・ユーザーが統合Excelワークシートと対話できるようにするには、ページ定義へのアクセスを許可されたロールをエンド・ユーザーに割り当てます。

統合Excelワークシートで使用されるすべてのページ定義のリソース権限の確認が必要になる場合があります。たとえば、Fusion Webアプリケーションが認可をサポートしており、リソース権限を持たず1つ(または複数)の統合Excelワークシートによって使用されるページ定義myWorksheetPageDef.xmlがある場合は、そのページ定義に対するアクセスを付与されたロールをエンド・ユーザーに割り当てる必要があります。初期デプロイメント中に、認証されたロールまたは他のいくつかの一般的なロールに付与されるワークシート・ページ定義のリソース権限を一時的に作成すると、ロールとリソースの関連付けを微調整しているときに、これらのワークシートを実行できるため、便利な場合があります。

認可、ロールおよびリソース権限の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』「Fusion WebアプリケーションでのADFセキュリティの有効化」を参照してください。

注意:

ADFデスクトップ統合では、Webページ(ページ定義)リソース・タイプを持つリソース権限の認証のみを実施します。その他のリソース・タイプはサポートされていません。

jazn-data.xmlファイルの概要エディタの「リソース権限」ページで、リソースと権限を構成できます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』ADFセキュリティ・ポリシーの定義に関する項を参照してください。

認可に失敗すると、エンド・ユーザーは次のようなエラー・メッセージを受信し、ワークシート内のADFデスクトップ統合は無効になります。

ADFDI-05589 Webアプリケーションとの対話にこのワークシートを使用する権限がありません。

ADFデスクトップ統合が無効になったワークシートに関する必知事項

次の制限事項は、ADFデスクトップ統合が無効になったワークシートに適用されます。

  • ワークシート・レベルのリボン・コマンドおよびワークシート・レベルのイベントはすべて無効になります。

  • ワークシートの初期化中に認可が失敗すると、フォーム・ラベルや表の列ヘッダーはワークシートに描画されません。

  • 初期化されたワークシートで認可が失敗した場合、ワークシート・コンポーネント(ADF入力テキストやADF表など)は影響を受けず、視覚的な変更はありません。

  • エンド・ユーザーは、無効になったワークシート上で標準的なExcelの対話を実行できます。ユーザーはワークシート内のADF表コンポーネントのデータを変更できますが、変更された列は更新されません。

  • ワークシート・レベルのコマンドに影響はありません。エンド・ユーザーは、ログイン、ログアウト、情報、編集オプションおよび全データのクリアなどのコマンドを引き続き使用できます。

エンド・ユーザーが統合Excelワークブックを再度開き、新しいセッションが確立されて認可されると、ADFデスクトップ統合が無効になっているワークシートが自動的に有効になります。ログアウトし再度ログインすると、無効な統合Excelワークシート内のADFデスクトップ統合が再び有効になります。