ディプロイ リスナーを使用すると、Visual COBOL IDE や imtkmake ユーティリティなどのディプロイ クライアントで、COBOL Web サービスまたは EJB を Enterprise Server インスタンスにディプロイできます。ディプロイ リスナー、関連するディプロイ サービス、およびディプロイ ディレクトリ内の .mfdeploy ファイルを組み合わせて、ディプロイ要求の処理方法を制御します。
ディプロイの一部の側面は、ディプロイ リスナーの構成情報の設定によって決まります。これらのセクションは、次のセクションで構成されています。
たとえば、ESDEMO の Deployer サービスで使用される Web リスナーは次のようになります。
[virtual paths] cgi=<ES>/bin uploads=<ES>/deploy <default>=/dev/null docs=<ES>/help [allow] cgi=mfdeploy.exe uploads=*.txt *.car *.wsdl
cgi 仮想パスは、ディプロイされる COBOL アーカイブ ファイルを受け取る mfdeploy.exe プログラムの場所の指定に使用されます。uploads 仮想パスは、アップロードされた COBOL アーカイブ ファイルのディレクトリの作成場所を mfdeploy.exe に伝えます。
mfdeploy.exe は、%ProgramFiles(x86)%\Micro Focus\Visual COBOL\bin および \bin64(Windows) または $COBDIR/bin(UNIX) にあります。
Windows プラットフォームでは、特別なトークン <ES> はインストール ディレクトリに変換されます。たとえば、Enterprise Server が Visual COBOL の一部としてデフォルトのインストール ディレクトリにインストールされている場合、「<ES>/deploy」は %ProgramFiles(x86)%\Micro Focus\Visual COBOL\deploy になります。
ディプロイを実行するクライアントで指定される URL の最初のディレクトリのみがリストに照らし合わせてチェックされ、リストのエントリは単一ディレクトリ名でなければなりません。
<default> ディレクトリは、クライアントで指定された URL の最初のディレクトリがリストのどのエントリとも一致しない場合に使用されます。デフォルトのディレクトリは、存在しないディレクトリでなければなりません。そのため、通信プロセスが URL をフル パスに変換する場合、要求は失敗します。これにより、クライアントによるマシン上の任意のディレクトリの参照が停止します。通信プロセスはいずれにしても安全なデフォルトを使用するため、デフォルトのディレクトリを指定する必要はありません。
「docs」仮想パスは製品ドキュメントを取得するために使用できますが、主に歴史的な理由で存在しています。
別の例を示します。
Windows プラットフォームの場合:
[virtual paths] <default>=c:/web docs=c:/web/documents images=d:/media/images
この構成では、URL http://host:port/docs/a.html はファイル c:\web\documents\a.html を戻し、URL http://host:port/images/gif/b.gif はファイル d:\media\images\gif\b.gif を戻します。
UNIX プラットフォームの場合:
[virtual paths] <default>=/usr/web docs=/usr/web/documents images=/home/media/images
この構成では、URL http://host:port/docs/a.html はファイル /usr/web/documents/a.html を戻し、URL http://host:port/images/gif/b.gif はファイル /home/media/images/gif/b.gif を戻します。
「[allow]」セクションのエントリは、仮想パスから取得できるファイルを制限します。そのエントリは仮想パスの名前であり、それらの値はファイル名パターンです (スペースで区切られます)。そのうちの 1 つは、要求されたファイルと一致しなければなりません。新しいディプロイ サービス用に作成された構成では、「cgi」仮想ディレクトリでは mfdepinst.exe のみが許可され、「uploads」仮想ディレクトリではその下のディプロイ ディレクトリのテキスト (*.txt)、COBOL アーカイブ (*.car)、および WSDL (*.wsdl) ファイルのみが許可されます。
COBOL Server 5.0以降、ディプロイ リスナーには以下の追加のオプション セキュリティ機能が用意されています。
これらの機能は、ディプロイ リスナーの構成テキスト領域の [security] セクション (任意指定) で有効になります。次に例を示します。
[security] restricted=yes authentication=MF, HTTP
詳細は次のとおりです。
[security] セクションの構文の詳細については、「Web 対話タイプ」トピックを参照してください。
ディプロイ リスナーを構成して、クライアント証明書を使用してユーザーを識別できます。この構成でディプロイ クライアントがディプロイ リスナーに接続すると、証明書が送信されます (TLS ハンドシェイクの一部として、証明書に対応するプライベート キーが証明書に含まれていることが証明されます)。リスナーは証明書を Enterprise Server ユーザーに関連付けてから、そのユーザーがサービスのディプロイを承認されているかどうかを確認できます。
証明書認証には以下の要件があります。
自動登録は、ユーザーがユーザー名およびパスワードを指定できるようにするディプロイ クライアントでも実行できます。ディプロイ クライアントがクライアント証明書を使用するように構成されており、さらにユーザー名およびパスワードも構成されている場合、サーバーが証明書を認識しないと自動的に証明書を登録しようとします。証明書が登録されたら、ユーザー名およびパスワードをクライアントの構成から削除できます。
証明書の自動登録は、管理者がディプロイの証明書認証の使用に移行するのに役立つメカニズムです。これにより、管理者は各クライアント証明書を手動で登録する必要がなくなります。
自動登録を有効にするには、リスナー用に構成する認証方法のリスト (リスナーのテキスト構成領域の Security セクション (任意指定) 内の Authentication 設定) に register トークンを含めます。
自動登録が有効になっている場合、まだ登録されていないクライアント証明書をリスナーが受信すると、標準の HTTP 基本認証ヘッダーを使用して送信されたユーザー名およびパスワードの要求を確認します。それらが存在しない場合、リスナーはそれらを要求する HTTP 応答を返送します。
リスナーはユーザー名およびパスワードを取得すると、Enterprise Server インスタンスのセキュリティ スタックに資格情報の検証を依頼します。検証が成功すると、クライアント証明書をユーザー名で登録してから、要求されたアクションを実行する権限がユーザーにあるかどうかを確認します。