アプリケーションのURLセキュリティの管理

Oracle Formsアプリケーションは、ユーザーがURLを使用してアクセスするWeb配布のソリューションです。Oracle Formsアーキテクチャでは、Forms開発者は2種類の方法でFormsアプリケーションの実行方法を構成できます。ひとつは、パラメータとその値をURLで設定する方法です。もうひとつは、パラメータとその値をWeb構成(formsweb.cfg)で設定する方法です。

Web構成で設定したパラメータは、URLで設定したパラメータによりオーバーライドできます。Forms管理者はこのデフォルト動作をオーバーライドして、URLで使用可能なパラメータを完全に制御できます。

URLで使用可能にするパラメータを決定する際は、2つのシナリオを検討します。最初のシナリオは、管理者が、単にデフォルトのログイン・ウィンドウを使用したログインを常にユーザーに強制するURLでのUSERIDパラメータの使用を制限する場合です。2番目のシナリオは、CONFIG=MyAppのような少数のパラメータを除いて、URLでのすべてのパラメータの使用を管理者が禁止する場合です。

パラメータrestrictedURLparamsでは、Forms管理者は、formsweb.cfgファイル内のURLへアクセス可能なパラメータをユーザーの使用が制限されたものと見なすことができます。管理者は、名前を付けた構成セクションでこのパラメータを指定して、デフォルトの構成セクションで指定したパラメータをオーバーライドできます。restrictedURLparamsパラメータ自体はURLで設定できません。

設計上、URLで渡すコマンドライン引数は、formsweb.cfgにある同様の定義よりも必ずオーバーライドします。

この例では、useriduser1/user1pwdとして定義され、debugfalseに設定されています。user1/user1pwdとしてデータベースに接続するように構成されたアプリケーションは、URLパラメータとして追加されたuseridパラメータを持つ別のユーザーとして接続できます。これを回避するには、restrictedURLparamsパラメータでuseridパラメータを定義します。

図-47 restrictedURLparamsパラメータの定義

図-47の説明が続きます
「図-47 restrictedURLparamsパラメータの定義」の説明

同様に、管理者はrestrictedURLparamsパラメータを使用して、制限されたパラメータのうち、使用されたもののリストを表示するページにユーザーをリダイレクトできます。restrictedURLparamsパラメータをallに設定できます。これにより、(構成セクション以外の)パラメータをURLで指定できなくなります。

Oracle Formsテスト・フォームの保護

実行するアプリケーションを指定しないでOracle Forms URLにアクセスすると、テスト・フォームが実行されます。たとえば、通常は次の構文を使ってOracle Formsアプリケーションをコールします。

https://<host>:<port>/forms/frmservlet?config=myApp

Formsサーブレットは、formsweb.cfgファイルで[myApp]を探し出し、該当のアプリケーションを起動します。アプリケーションが指定されないときは、次のようになります。

https://<host>:<port>/forms/frmservlet

Formsサーブレットは、formsweb.cfgファイルのデフォルトのセクションの設定を使用します。これらの設定は、Forms構成ファイルの[default]にあります(アプリケーションがこれらの設定をオーバーライドしない場合は、デフォルトが使用されます)。デフォルトのセクションには、次の設定が含まれます。

form=test.fmx

これは、Oracle Forms Servicesのインストールと構成をテストできるテスト・フォームです。このため、アプリケーションを指定していない場合は、Formsによってtest.fmxファイルが起動します。これを次のように変更できます。

form=

このようにすると、フォームは実行されません。ただし、これは最適ではありません。Formsサーブレットは動的に生成されたHTMLファイルをクライアントに送信するため、ユーザーが情報を勝手に取得することができます。保護を最適にするソリューションは、クライアントに表示される情報HTMLページにリクエストをリダイレクトすることです。formsweb.cfgファイルにあるパラメータをいくつか変更する必要があります。

Oracle Forms Servicesのインストール時に変更するパラメータを、デフォルトの値とともに次に示します。

    # System parameter: default base HTML file
    baseHTML=base.htm
    # System parameter: base HTML file for use with Oracle's Java Plug-In
    baseHTMLjpi=basejpi.htm

これらのパラメータは、クライアントに送信されるHTML情報のテンプレートです。情報HTMLページを作成して、これらの変数をかわりにポイントします。たとえば、$DOMAIN_HOME/config/fmwconfig/components/FORMS/instances/<Forms Instance Name>/serverディレクトリに、次のコンテンツを含むforbidden.htmlという名前の簡単なHTMLページを作成します。

    <html>
      <head>
        <title>Forbidden</title>
      </head>
      <body>
       <h1>Forbidden!</h1>
        <h2>You may not access this Forms application.</h2>
      </body>
    </html>

ノート:

このメッセージ・ページは、クライアント情報のリダイレクトが、リクエストしたコンテンツにアクセス権の制限がある場合にWebサーバーが返すWebページとは異なるために表示されました。

次に、元のパラメータをコメント・アウトまたは変更して、formsweb.cfgパラメータを変更します。

    # System parameter: default base HTML file
    #baseHTML=base.htm
    baseHTML=forbidden.html
    # System parameter: base HTML file for use with Oracle's Java Plug-In
    #baseHTMLjpi=basejpi.htm
    baseHTMLjpi=forbidden.html
    # System parameter: base HTML file for use with Microsoft Internet Explorer
    # (when using the native JVM)

ユーザーが次のURLを入力すると、

https://<host>:<port>/forms/frmservlet

カスタマイズされたWebページが表示されます。formsweb.cfgファイルで該当するパラメータを変更すれば、forbidden.htmlのコンテンツ、ファイル名、および場所などもカスタマイズできます。この情報Webページには、警告、エラー、タイムスタンプ、IPロギングまたは問合せ先などの情報を、サーバー構成への影響を最小限にして格納できます。

ノート:

formsweb.cfgのデフォルト・セクションのベースHTMLテンプレートのエントリをオーバーライドするには、アプリケーション固有の名前が付いた構成に元の値(または他の有効なHTMLファイル)を示す同じエントリを追加する必要があります。

[myApp]
form=myApplication.fmx
lookandfeel=oracle
baseHTML=base.htm
baseHTMLjpi=basejpi.htm

これらのベースHTMLの値を指定していない状態でユーザーによるアプリケーションの実行が発生すると、アプリケーション固有の構成セクションがデフォルト値をオーバーライドしていないのでforbidden.htmlページが表示されます。