Oracle Formsスタンドアロン・ランチャ
Formsスタンドアロン・ランチャ(FSAL)を使用すると、エンド・ユーザーはブラウザを使用せずにFormsアプリケーションを新しい方法で実行できます。
Formsスタンドアロン・ランチャについて
Formsスタンドアロン・ランチャ(FSAL)は、ユーザーがアプリケーションにアクセスして操作できるように、ブラウザ不要のクライアント/サーバーのようなエクスペリエンスを提供します。ブラウザでHTMLページに埋め込まれたフォームを実行する場合とは異なり、アプリケーションは独自の親ウィンドウで実行されます。
そのため、「戻る」ボタンまたは「進む」ボタンを押したり、ブックマークをクリックするなどして、実行中のフォームから誤って移動するリスクはありません。FSALでは、アプリケーションはWebLogic Serverなどの集中管理されたアプリケーション・サーバーでホストされます。つまり、Formsアプリケーション・モジュールは、リモートの中間層サーバーに安全に格納されます。
ユーザーは、FMX、MMX、PLXなどのリモート・サーバー上にあるFormsモジュールに直接アクセスすることはできませんが、ブラウザでの実行時に以前使用されていた一般的なURLを使用して、これらのアプリケーションを実行できます。
FSALを使用すると、イベント駆動型のシングル・サインオフを除いて、ブラウザでフォームを実行するときに検出されるすべての機能と同じ機能がサポートされます。シングル・サインオンはサポートされています。FSALを使用して起動されたアプリケーションに対するJavaScript統合サポートは、提供されているアドオン(WJSI)およびサードパーティ・ライブラリ(Eclipse/Jetty)を使用して追加/有効化できます。FSALは、Webページのカスタム・プロトコル・ハンドラを使用して起動できます。
FSALは、プラグイン、Web StartなどのJavaデプロイメント・テクノロジに依存せず、ブラウザに依存しません。エンドユーザーのマシンにJavaランタイムが必要です。
要件
FSALでは、ユーザーのマシンにOracle Javaがインストールされている必要があります。Javaアプリケーションの実行をサポートし、使用されているOracle Formsのバージョンに対して動作保証されているすべてのOracle Javaディストリビューションを使用できます。
どのディストリビューションまたはバージョン(あるいはその両方)を選択するかは、アプリケーションのニーズによって異なる場合があります。選択したOracle Javaインストールの内容を慎重に確認し、アプリケーションを本番に移行する前に十分にテストすることをお薦めします。
次のディストリビューションは、ほとんどのエンド・ユーザー・プラットフォームで使用可能で、FSALの実行に使用できます。
- Java 8ファミリ: JRE、JDKまたはServer JREの32ビットおよび64ビット・ディストリビューション。
ノート:
Server JREディストリビューションは、手動で抽出する必要があるzipファイルとして提供されます。このディストリビューションはソフトウェアのインストールを実行せず、JREおよびJDKディストリビューションよりもはるかに軽量であるため、このオプションはカスタマイズされた起動スクリプトとともに使用される場合など、FSALに最適です。 - Java 17以降。これらは、64ビットJDKディストリビューションとしてのみ使用可能ですが、FSALで使用できます。動作保証されたJavaバージョンを使用していることを確認するには、このFormsバージョンのOracle Fusion Middlewareのサポートされるシステム構成を参照してください。
使用可能なJavaディストリビューション間の主な相違点は次のとおりです。
- Java Runtime Environment - JRE: Java 8のみ。JREでは、通常のエンド・ユーザーに必要なほとんどのコンポーネントがインストールされます。これには、ローカルJavaアプリケーションの実行に必要なすべてに加えて、Javaデプロイメント・コンポーネント(Java Web StartおよびJava Plug-in)も含まれます。Javaデプロイメント・コンポーネントは、Java 8より新しいメジャー・リリースでは使用できません。
- Java Development Kit - JDK: JDKはすべてのバージョンで使用可能で、通常、Java開発者向けであり、一般的なユーザーが必要とする以上のものが含まれています。JDKには、完全なJRE、Javaデプロイメント・コンポーネント(Java 8のみ)、およびJavaアプリケーションを開発、デバッグ、監視および保守するためのツールが含まれています。
- Server JRE: Java 8のみ。Server JREは、主にJavaアプリケーションをサーバーにデプロイするためのものです。これには、JVMモニタリング用のツールと、サーバー・アプリケーションに一般的に必要とされるツールが含まれています。Java Plug-in、Java Web Start、自動更新、インストーラなど、ブラウザ統合に必要なJavaデプロイメント・コンポーネントは含まれていません。
- カスタムJRE: Oracle Javaバージョン17以降。ユーザーは、このバージョンを使用してカスタムJREディストリビューションを作成できます。
ノート:
このガイドでは、カスタムJREディストリビューションの作成方法については説明していません。これらのユーティリティの使用方法の詳細は、Javaのドキュメントを参照してください。このバージョンには、次のユーティリティが含まれています。
jdeps
ユーティリティ: どのJavaモジュールが必要かを決定するために使用されますjlink
ユーティリティ: カスタムJREの作成に使用されますjpackage
ユーティリティ: 必要に応じて、カスタムJREをインストール可能なディストリビューションにパッケージ化するために使用されます
Formsスタンドアロン・ランチャのインストール
FSAL java JARファイル(frmsal.jar
)をダウンロードし、ローカル・ドライブに保存します。
frmsal.jar
ファイルは、インストールで使用可能な使用方法/構文のWebページからダウンロードできます。このユーティリティは、ユーザーがそのディレクトリおよびユーティリティへのアクセス権を持っている場合は、どこにでも格納できます。ユーザーのホーム・ディレクトリに保存することをお薦めしますが、必須ではありません。
このファイルはバージョン固有です。あるインストールから別のインストールに対してfrmsal.jar
を使用することはできません。たとえば、Microsoft Windowsサーバーからfrmsal.jar
をダウンロードして、UNIX/Linuxサーバーに対してアプリケーションを実行したり、その逆を行うことはできません。ランチャは、クライアント・プラットフォーム固有のものではありません。Forms動作保証済のOracle Javaバージョンの実行をサポートするすべてのプラットフォームで使用できます。
警告:
frmsal.jar
ファイルの名前を変更しないでください。FSALの一部の機能では、デフォルトのファイル名が必要です。ファイル名を変更すると、一部の機能が正しく動作しない可能性があります。
frmsal.jar
ファイルをダウンロードするには:
FSALを使用したアプリケーションの実行
FSALを使用してアプリケーションを実行するには、コマンド・プロンプトを開き、必要なコマンドライン引数、FormsアプリケーションURLおよびその他の詳細を指定する必要があります。
より高度なニーズがある場合(アプリケーションがプロキシ・サーバーを介して通信する必要がある場合や、カスタム・プロトコル・ハンドラを使用する場合など)は、この項の他のトピックを参照してください。
Formsスタンドアロン・ランチャとそれが実行するアプリケーションは、Webブラウザまたはそのアプリケーションとは関係ありませんが、FSALアプリケーションからWebページと通信することは可能です。詳細は、「Oracle FormsとJavaScriptの統合」を参照してください。
FSALを使用したアプリケーションの実行
コマンド・プロンプトを使用してFSALでアプリケーションを起動します。
リクエストに対応するには、Formsアプリケーションの完全なURLを知る必要があります。現在、URLリダイレクトまたはリライトの使用はサポートされていませんが、サーバーの構成によっては技術的に可能です。FSALは、Forms環境を指す完全修飾URLを受け取る必要があります。
デスクトップ・ショートカット、スクリプトまたはバッチ・ファイルをハイパーリンクのかわりに使用すると、アプリケーションの起動が簡単になり、エラーが発生しにくくなります。
ノート:
このユーティリティは、無人の負荷テストなどの非対話的な目的では推奨されません。ユーザーのマシン上で同時または連続した多数のセッションを起動すると、予期しない望ましくない動作が発生する可能性があります。FSALを使用してアプリケーションを起動するには:
Oracle Formsで生成された出力は、通常はJavaコンソールに表示され、アプリケーションの起動に使用されるシェルに表示されます。java
ではなくjavaw
または類似のコマンドを使用する場合、コンソールが表示されないことがあります。java
コマンドを使用する場合、アプリケーションを起動したシェルを閉じると、アプリケーションが終了します。
この動作は、様々なシェル・コマンドや関連するスイッチを使用してアプリケーションのニーズに対応できるように変更できます。ユーザーのプラットフォームでのコマンド・シェルの使用の詳細は、オペレーティング・システムのドキュメントを参照してください。
コマンドライン引数の完全なリストは、インストールで提供されているFSAL使用方法のページを参照してください。このページにアクセスするには、ブラウザでこのURLを入力します。
http://<server>:<port>/forms/html/fsal.htm
Java 17以上でのJavaFXの有効化
Oracle Java 17以降の長期サポート(LTS)リリースを使用してFSALを実行している場合、アプリケーションでFormsオーディオ機能を使用するには、JavaFXを有効にする必要があります。オーディオ機能が適切に機能するには、JavaFXが必要です。
アプリケーションでFormsオーディオ機能を使用しない場合は、これらのステップをスキップできます。
JavaFXを有効にするには、JavaFX SDKが必要です。このSDKは、GluonのJavaFXページ(https://gluonhq.com/products/javafx)からダウンロードできます。FSALの実行に使用されるJavaバージョンに最も近いJavaFX SDKのバージョンをダウンロードしてください。
ノート:
JavaFXは、Gluonがホストするオープン・ソース・プロジェクトになりました。8より新しいJavaFXバージョンは、Gluonまたはオープン・ソース・コミュニティ(あるいはその両方)によってサポートおよびライセンスされています。ダウンロードおよび使用する前に、使用条件およびサポート・オプションを確認してください。https://openjfx.ioおよびhttps://github.com/openjdk/jfxを参照してください。
GluonはOracleと提携しておらず、JavaFXはOracleではサポートされていません。
ユーザーのマシンでJavaFXを有効にするには:
プロキシ・サーバーを介したアプリケーションの実行
アプリケーションがプロキシ・サーバーを介して通信する必要がある場合は、FSALでアプリケーションを起動するときにjavaコマンドで引数を使用してプロキシ設定を含めることができます。
多くの場合、ユーザーは企業ネットワーク内でFormsアプリケーションにアクセスします。場合によっては、ユーザーのマシンが、内部コンテンツと外部コンテンツの両方にアクセスするために適切なプロキシ構成を必要とすることを意味します。FSALを使用する場合、ブラウザおよびシステム・レベルの設定が、アプリケーションを起動するシェルに表示されないことがあります。そのため、FSALの実行時にこのような設定を含めることが必要な場合があります。
これを行うには、システム・プロキシ設定を参照する引数を使用するか、特定のプロキシ設定を含めます。
システム・プロキシ設定を使用するには、次のコマンドを入力してアプリケーションを実行します。
java -Djava.net.useSystemProxies=true –jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
引数-Djava.net.useSystemProxies=true
を指定すると、Javaはシステム・レベルで指定されたプロキシ設定を使用してコールを試行します。
ノート:
システムが自動構成スクリプト(wpad.dat
など)を使用するように構成されている場合、このメソッドはサポートされない場合があります。詳細は、公式のJavaドキュメントを参照してください。
プロキシ設定を含めることもできます。プロトコル(HTTPS
またはHTTP
)に応じた2つの例を次に示します。
java -Dhttps.proxyHost=<proxyserver> -Dhttps.proxyPort=<proxyserver port number> -Dhttps.nonProxyHosts="localhost|example.com" –jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
java -Dhttp.proxyHost=<proxyserver> -Dhttp.proxyPort=<proxyserver port number> -Dhttp.nonProxyHosts="localhost|example.com" –jar frmsal.jar -url "http://<server>:<port>/forms/frmservlet?config=standaloneapp"
Javaネットワークとプロキシに関する項を参照してください。
カスタム・プロトコル・ハンドラを使用したFSALの起動
ハイパーリンクとカスタムFSALプロトコルを使用して、Formsアプリケーションを起動できます。FSALでは、非SSLリクエストの場合はfsal
、SSLリクエストの場合はfsals
という2つの特別なプロトコルが認識されます。
カスタム・プロトコルを使用するには、ユーザーのマシンにカスタム・プロトコルを登録し、目的のWebページに適切にフォーマットされたハイパーリンクを含めます。
ハイパーリンクでのカスタム・プロトコルの使用
次に、名前付きForms構成standaloneapp
でFSALを起動するために使用できるカスタム・プロトコルのハイパーリンクを使用するHTMLの例を示します。
<a href="fsal://<SERVER>:<PORT>/forms/frmservlet?config=standaloneapp">Run FSAL</a>
カスタム・プロトコルの登録
この新しいプロトコルをユーザーのマシンに登録するために必要なステップは、オペレーティング・システムによって異なります。この項では、Microsoft Windowsマシンに新しいプロトコルを登録するステップについて説明します。その他のオペレーティング・システムにカスタム・プロトコル・ハンドラを登録する場合は、オペレーティング・システムのドキュメントを参照するか、ベンダーに問い合せてください。
警告:
Windowsレジストリを変更すると、正しく実行されていないと元に戻せない破損が発生する可能性があります。試行する前に、必ずレジストリ・バックアップおよびシステム・リストア・ポイントを作成してください。Windowsレジストリの編集に慣れていない場合は、この操作を試行しないでください。次のコマンドは、Windows DOSコマンド・プロンプトで個別に実行することも、スクリプトから実行することもできます。方法に関係なく、ユーザーは管理者権限を持っている必要があります。これは、Windowsレジストリに書き込むためです。
この項の例では、次のことを前提としています。
- 最新のForms
frmsal.jar
が、ユーザーのホーム・ディレクトリに格納されています。 - 最新のOracle Java 8 (32ビット) JREがインストールされています。動作保証された任意のOracle Javaバージョンを使用できますが、java実行可能ファイルの場所と一致するように、次の例のパスを調整してください。
次のコマンドでは、各セクションの最後のエントリを慎重に確認してください。javaw.exe
へのパスと、ユーザーのマシン上のfrmsal.jar
へのパスが状況を表していることを確認してください。使用されるJavaパスは、JREのインストール時にのみ作成される特別なパスです。JDKを使用する場合、このパスを更新する必要があります。
非SSLリクエストのコマンド
reg add HKEY_CLASSES_ROOT\fsal /t REG_SZ /d "Oracle Forms Standalone Launcher" /f
reg add HKEY_CLASSES_ROOT\fsal /v "URL Protocol" /t REG_SZ /d "" /f
reg add HKEY_CLASSES_ROOT\fsal /v "UseOriginalUrlEncoding" /t REG_DWORD /d "00000001"
reg add HKEY_CLASSES_ROOT\fsal\shell /f
reg add HKEY_CLASSES_ROOT\fsal\shell\open /f
reg add HKEY_CLASSES_ROOT\fsal\shell\open\command /t REG_SZ /d "\"C:\Program Files (x86)\Common Files\Oracle\Java\javapath\javaw.exe\" -jar %USERPROFILE%\frmsal.jar -url \"%1\"" /f
SSLリクエストのコマンド
reg add HKEY_CLASSES_ROOT\fsals /t REG_SZ /d "Oracle Forms Standalone Launcher with SSL/TLS" /f
reg add HKEY_CLASSES_ROOT\fsals /v "URL Protocol" /t REG_SZ /d "" /f
reg add HKEY_CLASSES_ROOT\fsals /v "UseOriginalUrlEncoding" /t REG_DWORD /d "00000001"
reg add HKEY_CLASSES_ROOT\fsals\shell /f
reg add HKEY_CLASSES_ROOT\fsals\shell\open /f
reg add HKEY_CLASSES_ROOT\fsals\shell\open\command /t REG_SZ /d "\"C:\Program Files (x86)\Common Files\Oracle\Java\javapath\javaw.exe\" -jar %USERPROFILE%\frmsal.jar -url \"%1\"" /f
前述のコマンドが正常に実行されると、http://
またはhttps://
のかわりにブラウザでプロトコルfsal://
またはfsals://
を使用できます。
ファイル・キャッシング
Javaプラグインやブラウザと同様に、FSALは、次回アプリケーションを起動したときに再利用される可能性のあるファイルをキャッシュして、起動パフォーマンスを向上させます。
メッセージのキャッシング
Unix/LinuxシェルまたはWindows DOSシェルからFSALを起動すると、ロード処理中にキャッシュされたファイルが格納されているディレクトリがシェル出力に表示されます。また、ファイルがサーバーからダウンロードされているか、既存のキャッシュから再使用されているかも表示されます。
(キャッシュされていない)新しいファイルをダウンロードすると、次のようなメッセージが表示されます。
Inspecting archive files in cache directory C:\Users\<user name>\AppData\Local\Temp\frmsal\<server name>\14.1.2.0 Downloading archive file frmall.jar to cache subdirectory 8ymuqdqvdfe13a0d5vvema0dh
以前にキャッシュされたファイルが使用されている場合、次のようなメッセージが表示されます。
Inspecting archive files in cache directory C:\Users\<user name>\AppData\Local\Temp\frmsal\<server name>\14.1.2.0 Using cached archive file frmall.jar from cache subdirectory 8ymuqdqvdfe13a0d5vvema0dh
tmpdir
の変更
キャッシュ・ファイルの場所を制御するには、アプリケーションの起動時にtmpdir
の場所を変更します。Microsoft Windowsユーザーの場合、次の例を考えてみます。Windowsシステム変数%USERNAME%
の値を第1レベルのディレクトリとして使用することに注意してください。
java -Djava.io.tmpdir=C:/%USERNAME%/fsal -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
ノート:
ユーザーが共有Unix/Linuxプラットフォーム上にある場合、ダウンロードしたキャッシュ・ファイルは、アプリケーションを実行した最初のユーザーが所有するため、問題が発生する可能性があります。その結果、後続のユーザーは、古いキャッシュされたファイルを新しいファイルに上書きするための十分な権限を持っていない可能性があります。ユーザーごとに一意の場所を作成することで、この問題を回避できます。
java -Djava.io.tmpdir=/u01/$user/fsal -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
ファイル・キャッシングの無効化
一部のアプリケーションでは、キャッシュされたファイルを使用せずに、サーバーから常にダウンロードすることもできます。これは、技術的な問題をトラブルシューティングする場合にも当てはまる可能性があります。
ファイル・キャッシングを無効にするには:
- Fusion Middleware Control (FMC)を開き、FSALテンプレート・ファイル(アプリケーションに応じて
basesaa.txt
またはwebutilsaa.txt
)を編集して、次の行を含めます。ignoreSaaCache=%ignoreSaaCache%
- Forms Web構成で、新しいパラメータignoreSaaCacheを[standaloneapp]構成またはアプリケーションの実行に使用される構成に追加します。
- 値を
TRUE
に設定します。
キャッシュされたファイルは無視され、アプリケーションを起動するたびにサーバーからファイルのダウンロードが実行されます。
セキュリティに関する考慮事項
FSAL、ユーザーのマシンおよびネットワークを計画して構成する場合は、この項のトピックを確認してください。
アプリケーション、アプリケーション内で交換されるデータ、およびアプリケーションがホストされるネットワークに対して最高レベルのセキュリティを確保することは、あらゆるアプリケーション・デプロイメントの最も重要な側面であると考える必要があります。セキュリティ層の脆弱化は、機密データ漏洩や悪意のあるシステム攻撃の原因となる可能性があります。アプリケーション、データ、およびホスティング・システムの保護に適切なセキュリティ対策が講じられていることを確認するのは、お客様の責任です。
ノート:
この項では、FSALの使用に関連するセキュリティを向上させるいくつかの方法について説明しますが、これらは単なる例です。概念を理解し、完全には理解していない部分を調査することは、お客様の責任です。セキュリティ構成を不適切に実装すると、システムが危険にさらされる可能性があります。
システムを構成したら、変更内容を正しいとみなす前に、慎重に確認してテストします。
ここで説明する提案は、FSALやOracle Forms全般に一意のものではない可能性があります。多くは、使用されている技術に関連する標準的な提案です。そのため、追加情報が広く入手可能になります。アプリケーション、そのデータ、およびその環境を保護するための唯一の情報源として、この項を使用しないでください。
この項の最後に記載されているリソースに関する項も確認してください。
Secure Socket Layer
Secure Socket Layer (SSL)およびTransport Layer Security (TLS)を使用してネットワーク上で通信するすべてのアプリケーションを実行することは、データを保護するために非常に重要です。任意およびすべてのアプリケーションを実行するためのSSL
/TLS
の使用は、オプションではなく要件とみなす必要があります。
Secure Socket Layer (SSL)およびTransport Layer Security (TLS)は、ネットワーク・トラフィックのソースと宛先の間の暗号化された通信を提供するために使用される暗号化プロトコルです。これらのプロトコルは、信頼できる接続を作成することによって機能します。この接続は、ほとんどの場合、公開キーと秘密キーの交換によって確立されます。
SSL
/TLS
をFSALとともに使用してアプリケーションを実行するには、SSL
/TLS
証明書公開キーをユーザーのJava TrustStoreに含める必要があります。この証明書がまだTrustStoreに含まれていない場合、またはDigiCert、Entrust、Comodoなどの既知の認証局によって提供されていない場合は、証明書のインポートが必要になる可能性があります。
ノート:
この項では、「KeyStore」と「TrustStore」という用語は同じ意味で使用されます。このキーは、フォームの実行にFSALが使用しているJava TrustStoreにインポートする必要があります。多くの場合、ルート証明書のみが必要ですが、証明書のチェーンが存在する可能性があるため(ルート、中間、ユーザーなど)、複数の証明書のインポートが必要になる可能性があります。
SSL
/TLS
を使用してアプリケーションを実行しようとしたときに、必要な証明書が見つからないか、不適切にインポートされた場合、次のようなJavaエラーが表示されることがあります
java.security.cert.CertificateException: No subject alternative names present …
java.security.cert.CertificateException: No name matching <server>:<port> found …
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: …
前述のいずれかのエラー、または類似のエラーに続いて、FSALエラーが表示されます。
FRM-92490: Unable to fetch applet parameters from server.
これは、セキュア接続を確立できず、アプリケーションの起動と実行に必要なパラメータのダウンロードが許可されなかったためです。
FSALを使用したSSL/TLSの構成
FSAL証明書インポータまたはJava提供ツールを使用して、SSL/TLS証明書をインポートおよび格納します。デフォルトの方法はFSAL証明書インポータです。
FSAL証明書インポータの使用
サーバーから最初のフィードバックを受信すると、FSALはTrustStoreをチェックして、配信された証明書が既知かどうかを判断します。既知であり信頼できるとみなされた場合、アプリケーションは中断することなく実行されます。
証明書が不明な場合、その旨を示すプロンプトが表示され、ユーザーは新しい証明書をインポートできるようになります。このプロンプトには、配信された証明書の詳細を提供する詳細情報のリンクが含まれています。
ユーザーが「OK」をクリックすると、Forms/FSALで使用される新しく作成されたJava TrustStoreに新しい証明書が挿入されます。このFSALで作成されたTrustStoreは、ユーザーがランタイム・スイッチcert_truststore
を"java
"に設定して無効にしないかぎり、以降のすべてのリクエストでFSALによって使用されます。
この新しいJava TrustStoreは、ユーザーのホーム・ディレクトリ、具体的には次の場所に作成されます。
C:\Users\<USER NAME>\Oracle\forms
TrustStoreファイル名はformstruststore
です。生成されたTrustStoreの名前の変更はサポートされていません。ファイルが見つからない場合は、新しい空のファイルが作成されます。これはJavaで生成された標準のTrustStoreファイルであるため、必要に応じて、Oracle Javaインストールにあるツール(keytool.exe
)を使用して、このファイルを管理できます。
アプリケーションの実行時に、autoImportCert
スイッチを使用して、不明な証明書を自動的にインポートできます。trueに設定すると、証明書がインポートされる前にプロンプトが表示されません。このオプションは推奨されておらず、主にテスト目的で提供されます。次に、その使用方法の例を示します。
java -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp" -autoImportCert true
詳細は、使用方法のWebページにリストされているFSALコマンドライン引数を参照してください。コマンドライン引数のリストは、「FSALコマンドライン引数」にもあります。
KeyStoreの手動構成
前の動作に戻す方法の詳細は、このドキュメントの最後付近に記載されているコマンドライン・オプションを参照してください。
FSAL SSL/TLS証明書インポータを使用することが望ましくない場合は、FSALを使用する前に次のステップに従います。また、使用中の証明書とFSAL証明書インポータとの互換性の問題が特定された場合も、これらのステップを完了することが必要になる可能性があります。一部の非標準証明書または自己生成証明書は、FSAL証明書インポータと互換性がない可能性があります。
- 既知の認証局からSSL/TLS証明書を取得し、Oracle HTTP Server (またはWebLogic Server)を、それらのコンポーネントのドキュメントに記載されている手順に従って構成します。
- 証明書の公開キー部分を取得します。
証明書の公開キー部分は、ユーザーのマシンで必要です。公開キーがない場合は、取得する方法がいくつかあります。キー・チェーンの取得は、サーバーにアクセスできる任意のマシンから実行できます。次に、
openssl
コマンドを使用してキーを取得する方法の例を示します。<server>:<port>は、必ずサーバー名およびSSL/TLSポート番号に置き換えてください。openssl s_client -showcerts -connect <server>:<port> > output.txt
ノート:
これはほとんどのUnix/Linuxプラットフォームに事前にインストールされていますが、Microsoft Windowsでも入手できます。このコマンドの実行結果は、output.txtという名前のファイルに保存されます。ファイルには、1つ以上の証明書が含まれます(証明書のタイプと作成方法によって異なります)。証明書は、BEGINとENDのヘッダー/フッターの間の内容です。
- 各証明書を独自のテキスト・ファイルにコピーします。
必ず、次に示すとおりにBEGINとENDのテキストを正確に記載し、その間に内容を記載してください。ファイルを保存する際には、-----BEGIN CERTIFICATE-----または-----END CERTIFICATE-----の上または下に余分な行を含めないでください。ただし、これらのヘッダー/フッターのエントリは含めてください。
例:
-----BEGIN CERTIFICATE----- MIIFKDCCBBCgAwIBAgIBPTANBgkqhkiG9w0BAQsFADCBrjEpMCcGA1UEAxMgTmlj Y2subWFuc0BvcmFjbGUuY29tMRAwDgYDVQQLEwdTdXBwb3J0MQ8wDQYDVQQKEwZP cmFjbGUxGTAXBgNVBAcTEENvbG9yYWRvIFNwcmluZ3MxETAPBgNVBAgTCENvbG9y . . . -----END CERTIFICATE-----
ヒント:
または、次を実行して、必要な証明書ファイルを直接生成します。
openssl s_client -showcerts -servername <server name> -connect <server>:<port> | openssl x509 -outform PEM > cert.cer
- 公開キーをユーザーのマシンのKeyStoreにインポートします(たとえば、
cacerts
)。証明書チェーンの場合は、必ずチェーン内のすべてのキー(署名者、中間、ルートなど)をインポートしてください。つまり、keytoolユーティリティを複数回実行することが必要な場合があります。証明書公開キーをインポートするには、ほとんどのOracle Javaディストリビューションに含まれているJava keytoolユーティリティを使用します。
次に、keytoolユーティリティを使用して各証明書をインポートする方法の例を示します。keytoolユーティリティの使用方法の詳細は、Oracle Javaのドキュメントを参照してください。
keytool -importcert -alias <server_name> -keystore <JAVA_HOME>/jre/lib/security/cacerts -file cert.cer
ノート:
別名は一意である必要があります。チェーンに複数の証明書がある場合は、それぞれに一意の別名が必要です。ただし、最初にルートをインポートし、サーバーの名前を別名として使用する必要があります。以前に使用された別名を使用しようとすると、エラーが発生します。サーバーの名前を別名で使用することをお薦めします。たとえば、ルート証明書を最初にインポートし、myserver
という名前を付け、2番目はmyserver2
、3番目はmyserver3
という名前にします。 - 自動証明書インポータをバイパスするために、スイッチ
-cert_truststore
をjavaに設定して、SSLを使用してFSALを実行します。java -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp" –cert_truststore java
署名付きコード
Oracle Formsの場合、デジタル署名証明書がOracle提供のForms Java JARファイルに追加されます。このデジタル署名は、アプリケーション所有者がユーザーによって認識され、信頼されていることを確認するのに役立ちます。
Forms、Java Plug-inおよびJava Web Start
Java Plug-inまたはJava Web Startを使用してブラウザからJavaアプリケーションを実行するには、ハイパーリンクまたはブックマークをクリックするか、ブラウザにURLを手動で入力します。これにより、ユーザーのシステムが危険にさらされる可能性があります。ユーザーのマシン上で悪意のあるJavaアプリケーションを開くリンクから保護するために、Java Plug-inおよびJava Web Startには、署名付き(および信頼できる)アプリケーションのみ実行を許可する要件など、特別なセキュリティ機能を備えています。署名されていないアプリケーションは許可されず、ブロックされます。
ユーザーのマシン上で実行されるOracle Formsが提供するすべてのJava JARファイルは、Javaのセキュリティ要件に準拠するために署名されています。これにより、FormsアプリケーションをJava Web Startで安全に実行できます。さらに、カスタムJARファイル(Oracleが提供していないもの)も、信頼できる証明書で適切に署名する必要があります。Oracleから提供されていないJARへの署名は、お客様の責任です。
ノート:
自己生成証明書の使用は推奨されていないため、使用しないようにしてください。自己生成証明書の使用は機能しているように見えますが、今後この機能に対するサポートがJavaから削除される可能性があります。独自のJARファイルに証明書を追加する方法の詳細は、jarsigner
ユーティリティとそのドキュメントを参照してください。
FSALおよび署名付きJAR
FSALを使用する場合を含め、すべてのデプロイメントでJAR署名をお薦めします。FSALを使用すると、ブラウザの使用に伴う固有のリスクがほとんど回避されるため、このクライアント構成が急速に推奨されるアプローチになりつつあります。ただし、アプリケーション・デプロイメントを計画する際には、セキュリティ上のすべての側面を引き続き慎重に考慮する必要があります。
FSALのようなネイティブJavaアプリケーションの実行には、Java Plug-inやJava Web Startにあるのと同じレベルの組込みセキュリティ・チェックはありませんが、限定されたレベルの署名付きコード検証を有効にすることができます。
ノート:
バージョン11より新しいJavaバージョンでは、次のものが非推奨になりました。Java 17からJava 23を使用してこの機能を有効にすると、警告が表示される場合があります。Oracle Java 24以降では、この機能はサポートされなくなり、機能を実行する機能は削除されます。これらの手順は、レガシーの目的のみで提供されています。FSAL、特にアプリケーションで署名付きコードが認識されるようにするには:
- アプリケーションで使用されるすべてのJARファイルに関連付けられている公開キーを取得します。
Oracle提供のJARは、配信時に署名され、この証明書はデフォルトでKeyStoreに含まれます。使用するJARファイル用の署名者の公開キーが使用できない場合は、各JARに対して次のJavaコマンドを使用して証明書を取得します。
keytool -printcert -rfc -jarfile <yourJarFile>.jar
レスポンスに次のような出力が表示されます:
-----BEGIN CERTIFICATE----- MIIG7zCCBNegAwIBAgIQCl39nB4pDWNpkID7lx+kLjANBgkqhkiG9w0BAQsFADBp MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT ... 2ROzDhwQmGHIbDXUo8jXX7NGHdpyZovPm//IO/zp9d6Anka/B3viZlii4eAz6Xbv yIafqfh5fS9ZLb4kSHKgf87f4Zlm8YElQF+ZJ+rGVT5xArbEjxcoLyzpmmLWCPeI yTifK4P1GgeEhdWol7/R25bAKyPr9OrySnQx9vnUbmKa120i13/mhJm2gXp7qG+P uxx1l3SL/yU8gbmOdRno6CcANWLUvQ5FjMVppV8FVPf+7gyhsKrAYP2SMNy2F0qi 1OIF -----END CERTIFICATE-----
ノート:
返される最初の証明書は署名者の証明書で、後続のステップに必要な証明書になります。 - 最初の証明書の内容をテキスト・ファイル(この例では
foo.pem
)にコピーします。コピーされた内容は、"-----BEGIN CERTIFICATE-----
"で始まり、"-----END CERTIFICATE-----
"で終わる必要があります。 - ユーザーのマシンで、各公開キーを実行時に使用するJavaキーストアにインポートします。
keytool -importcert -alias foo -file C:\foo.pem
前述の別名には任意の英数字文字列を指定できますが、次のステップで必要になるため、必ず覚えておいてください。また、
–keystore
スイッチが含まれていなかったため、ユーザーのホーム・ディレクトリ内のKeyStoreが使用されます(存在しない場合は作成されます)。ファイル名は".keystore"になります。別のKeyStoreまたはKeyStore名(あるいはその両方)を使用するには、必要に応じて–keystore
スイッチを追加します。 - 証明書ごとに前述のステップを繰り返します。
.java.policy
ファイルが存在しない場合、または完全にカスタマイズされたファイルが必要な場合は、ユーザーのホーム・ディレクトリにファイルを作成します。それ以外の場合は、デフォルトのファイル<JAVA_HOME>\jre\lib\security\java.policy
を使用しますこれに次の内容を追加します。
keystore ".keystore"; grant signedBy "foo" { permission java.security.AllPermission; };
"foo"参照は、ステップ2で使用された別名へのポインタです。ステップ2でインポートした各キーに
grant signedBy
セクションを追加します。KeyStoreの値は、使用する予定のKeyStoreファイルへのポインタです。- 若干変更した次のコマンド・エントリを使用して、FSALでFormsアプリケーションを実行します。
java -Djava.security.manager -jar frmsal.jar -url "https://yourserver:port/forms/frmservlet?config=standaloneapp"
アプリケーションを実行する際に、JAR証明書はKeyStoreの証明書と照合されます。一致しない場合、アプリケーションは実行されません。前述の例では、デフォルトのjava.policy
が使用されているか、ユーザーのホーム・ディレクトリに.java.policy
が作成されたことを前提としています。
java -Djava.security.manager -Djava.security.policy=${user.home}/foo.policy -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
ユーザーのマシン上の別のディレクトリまたはリモートの場所(URL)からカスタム・ポリシー・ファイルにアクセスすることもできます。
java -Djava.security.manager -Djava.security.policy=https://<server>:<port>/foo.policy -jar frmsal.jar -url "https://<server>:<port>/forms/frmservlet?config=standaloneapp"
ノート:
ユーザーがこの検証を確実に利用できるようにするには、起動スクリプトまたは類似のスクリプトを使用する必要があります。スクリプトを使用することで、入力ミスやセキュリティ・マネージャが使用されない可能性を回避できます。シングル・サインオン
シングル・サインオンは、Webアプリケーションに多くの有益な利点をもたらす認証の概念です。Formsをシングル・サインオン(SSO)と統合するという考え方は、Formsアプリケーションを実行するためのデータベース資格証明をユーザーから隠すことができるため、たいていの場合、Formsのデータベース・ログイン機能を使用するよりも大きな利点があると考えられています。
FSALでSSOを使用するには、他のケースでFormsでSSOを使用するために必要な構成ステップと同じステップを実行する必要があります。FormsでのSSOの構成方法とその動作の詳細は、「Oracle Access ManagerでのForms Servicesの使用」を参照してください。
特定のアプリケーションに対してSSOを有効にするには、保護するアプリケーションに関連付けられたForms Web構成設定の目的のアプリケーション構成でssoMode
=true
を設定します。
FSALリファレンス
FSALパラメータおよびコマンドライン引数の詳細は、この項を参照してください。関連ドキュメントへのリンクもあります。
トピック:
FSAL Web構成パラメータ
FSALサーブレットとアプレット・パラメータの詳細は、このトピックを参照してください。
表-8 FSAL Web構成パラメータ
サーブレット/アプレット・パラメータ | 説明 |
---|---|
ignoreSaaCache |
既存のキャッシュを無視し、サーバーから新しいファイルをダウンロードするかどうかを指定します。 有効な値: デフォルト: |
ignoreMissingSaaArchives |
起動時に構成されているが見つからないJARファイルを無視するかどうかを指定します。 ノート: これは通常、テストとデバッグにのみ使用します。有効な値: デフォルト: |
fsalEnableAutoUpdate |
FSALがサーバーのバージョンと一致しない場合に、自動的に更新されるかどうかを指定します。自動更新はパッチ・アップデートでのみサポートされています。 有効な値: デフォルト: |
fsalJavaVersion |
アプリケーションの実行に必要なJavaバージョンを指定します。可能な値の組合せについては、「Web構成パラメータ」の「fsalJavaVersion」 を参照してください。
|
fsalUpdateDialogText |
自動更新ダイアログを表示する際に表示するテキストを指定します。 有効な値: 最大長が128文字未満の文字列 |
ssoSaaBrowserLaunchTimeout |
SSO認証用にFSALによって起動されたブラウザからの初期リクエストをFormsサーブレットが待機する時間を秒単位で指定します。間隔の期限が切れると、致命的エラー 有効な値: 1から300までの整数。 デフォルト: |
ssoSaaBrowserPageTimeout |
FSALアプリケーションのSSO認証中、ユーザーによるブラウザ・ページへのデータの入力をFormsサーブレットが待機する時間を秒単位で指定します。間隔の期限が切れると、致命的エラー 有効な値: 15以上の整数、または0 (無期限に待機)。 デフォルト: |
ssoSaaWaitInterval |
起動されたブラウザでSSO認証が進行中に、FSALがFormsサーブレットにリクエストを再発行する間隔を秒単位で指定します。値を大きくするとネットワーク・トラフィックが減少しますが、タイムアウトの可能性が高くなり、致命的エラー 有効な値: 5以上の整数、または0 (リクエストを再発行しません)。 デフォルト: |
ssoSuccessLogonURL |
FSALアプリケーションに対するSSO認証が正常に完了した場合にリダイレクトするURL。 |
FSALコマンドライン引数
FSALコマンドライン引数の詳細は、このトピックを参照してください。
表-9 FSALコマンドライン引数
引数 | 説明 |
---|---|
-url |
Formsアプリケーションの実行に必要な完全修飾URLを指定します。URLには、必要なFSAL設定( URLは引用符で囲む必要があります。 ノート: SSL/TLSを使用しない場合、URLエントリからプロトコルhttp:// を省略できます。
|
-t |
タイムアウトするまでにサーバーの初期応答をランチャが待機する時間(ミリ秒)を指定します。 有効な値: 正の整数(>= 1) デフォルト: |
-showConfig |
アプリケーションのロード時にForms Web構成パラメータをコマンドラインに表示するかどうかを指定します。 有効な値: デフォルト: |
-showDetails |
アプリケーションのロードおよび起動に関する追加の詳細を表示するかどうかを指定します。 有効な値: 値の説明:
ノート: その他の値は、将来の使用のために予約されています。デフォルト: |
-changeFSALStorePass |
FSALカスタムTrustStoreのパスワードを変更するかどうかを指定します。デフォルトのパスワードは作成時に設定されます。そのパスワードは ほとんどの場合、秘密キー/証明書情報が含まれていないかぎり、ユーザーのマシン上のTrustStoreにパスワードを設定する理由はありません。 有効な値: デフォルト: |
-autoImportCert |
SSL/TLS証明書をユーザーとの対話なしでインポートするかどうかを指定します。 有効な値: TRUE、FALSE デフォルト: FALSE |
-cert_truststore |
SSL/TLS証明書を保存するためにForms TrustStoreを使用するか、カスタムKeyStoreを使用するかを指定します。値が"forms"または未設定の場合、Formsで生成されたJava TrustStoreが使用されます。 値が"java"の場合、FSALはSSL/TLS証明書の保存と検証にJavaのデフォルトのKeyStoreを参照します。 ノート: Javaデフォルト・ストアを使用する場合は、SSL/TLSアプリケーションを実行する前に、必要な証明書を手動でインポートする必要があります。有効な値: デフォルト: |
-bypassHostnameVerification |
SSL/TLS証明書の検証時にホスト名検証の失敗を無視するかどうかを指定します。これを 有効な値: デフォルト: |
-clearcache |
FSALキャッシュをクリアするかどうかを指定します。 有効な値: デフォルト: |