CSP アーキテクチャ
この章では、以下の項目について説明します。
-
CSP の主な “コンポーネント”
-
CSP をサポート対象 Web サーバと共に使用するための “Web サーバ構成” (このリリース用のオンライン・ドキュメント "インターシステムズでサポートされるプラットフォームOpens in a new tab" の “サポート対象 Web サーバ” を参照)
-
Caché サーバと通信するための “CSP ゲートウェイ構成”
-
“CSP アプリケーションのオプション”
ご使用の Web サーバにおける CSP ゲートウェイのインストールと構成についての詳細は、"CSP ゲートウェイ構成ガイド" を参照してください。
CSP コンポーネント : Web サーバ、CSP ゲートウェイ、CSP サーバ
CSP は、Web サーバ、CSP ゲートウェイ、CSP サーバ (Caché サーバ上で動作) という 3 つのソフトウェア・コンポーネントを使用します。
Web サーバと CSP サーバは、1 台または複数のコンピュータで実装できます。開発時には、これら 3 つのコンポーネント (Web サーバ、CSP ゲートウェイ、および CSP サーバ) をすべて単一のコンピュータ上に置くことができます。大規模な配置の場合、2 層あるいは 3 層に構成された複数の Web サーバや CSP サーバを置くこともできます。
このドキュメントでは、これらのコンポーネント (Web サーバ、CSP ゲートウェイ、および CSP サーバ) はそれぞれ 1 つあるものと見なします。XML ページなど HTML 以外のテキスト形式やイメージなどのバイナリ形式も CSP で扱うことができますが、ここでは、HTML ページのみを扱うものとして CSP を説明します。
各コンポーネントの機能
Web サーバは、以下を実行するソフトウェア・ユーティリティです。
-
通常はブラウザからの、着信 HTTP 要求の受け入れ
-
アクセス権の確認
-
静的コンテンツの処理
-
CSP ゲートウェイへの CSP コンテンツ (末尾に .csp または .cls が使用されている URL) の要求の送信
CSP ゲートウェイは共有ライブラリ、.dll ファイル、または CGI スクリプトです。その機能は次のとおりです。
-
要求の送信先の Caché サーバの指定
-
適切な Caché サーバへの要求の送信
-
Caché サーバとの接続の維持 (これにより、新しい接続を連続して開く必要性を排除)
CSP サーバは、CSP ゲートウェイからの要求を処理する Caché サーバ上で作動するプロセスです。その機能は次のとおりです。
-
アプリケーションに対する HTTP 要求の受信
-
管理ポータルで設定され、.cpf ファイルに保存されたアプリケーション構成設定の確認。
-
関連付けられたクラス (直接記述されたもの、または CSP ページから生成されたもの) の実行。これにより、CSP ゲートウェイに HTML が返送され、CSP ゲートウェイから Web サーバ経由でブラウザに HTML が送信されます。
情報フロー
CSP 要求は、標準的な Web サーバ (主なサーバはすべてサポートしています) と標準 HTTP プロトコルによって処理されます。CSP は Web サーバと Caché 間の通信を管理し、ページを生成するための各アプリケーション・コードを呼び出します。要求およびリターンのプロセスは以下のとおりです。
-
HTTP クライアント (通常は Web ブラウザ) は、HTTP プロトコルを使用して Web サーバにページを要求します。
-
Web サーバはこれを CSP 要求と認識し、高速なサーバ API を使用して CSP ゲートウェイに転送します。
-
CSP ゲートウェイはどの Caché サーバと通信するかを判断し、その目的のシステムにある CSP サーバに要求を転送します。
-
Caché で動作している CSP サーバは、要求を処理して CSP ゲートウェイに目的のページを返し、CSP ゲートウェイはそれを Web サーバに渡し返します。
-
Web サーバは、表示するブラウザにこのページを送信します。
静的ファイル
Caché データベース・サーバはすべての CSP を処理します。また、Caché データベース・サーバは CSP ゲートウェイを経由して、Web アプリケーションで使用するあらゆる種類の静的ファイルを扱うことができます。標準の Web アプリケーションの場合、通常は (データベース・サーバではなく) Web サーバが静的コンテンツを扱います。Caché で Zen アプリケーションを実行するには、Caché サーバがすべての静的ファイルを CSP ゲートウェイ経由で扱えるように Web サーバを構成する必要があります。
Zen をベースとしたアプリケーションを実行するには、[ファイルの提供] オプションを有効にし、Caché サーバで静的ファイルを扱うことができるように Web サーバを構成します。その後、Zen フレームワークで依存イメージや JavaScript ヘルパーのドキュメントを提供できるようになります。
Unicode テキストを含むファイルを扱う場合、CSP は BOM を用いることで使用に適したエンコードを判断します。そのため、BOM が Unicode テキスト・ファイル内に存在する必要があります。
CSP アプリケーションの [ファイルの提供] オプションは、オン ([常に]) またはオフ ([いいえ]) のいずれかです。また、CSPゲートウェイでは Web サーバの静的ファイルをキャッシュできます ([常におよびキャッシュ])。[常におよびキャッシュ] 設定では、再度 Caché サーバからファイルを取得しなくても、キャッシュしてある静的ページを使用できるので、効率が向上します。Zen アプリケーションを実行するには、[ファイルの提供] オプションを [常に] または [常におよびキャッシュ] の設定で有効にする必要があります (詳細は、“CSP アプリケーションのオプション” テーブルの [ファイルの提供] オプションを参照してください)。
Caché サーバから静的ファイルを提供できるように Web サーバを構成します。
インターシステムズが既定で提供するインストール・スクリプトでは、外部 Web サーバの検索も構成もできません。カスタム・インストールを実行する場合は、オプションの選択により、CSP サポートが有効になるように、インストール済みの IIS または Apache Web サーバを構成できます。インストール・スクリプトは、/csp 仮想ディレクトリを作成し、ゲートウェイで扱う .csp、.cls、.zen、および .cxw の各拡張子のマッピングを作成します。これにより、上記の Web サーバを介して CSP は十分正常に機能します。なお、静的ファイルを提供する機能のサポートは有効になりません。この機能を有効にするには、ゲートウェイ経由で特別なファイル拡張子を扱うためのマッピングをするように Apache または IIS を手動で構成する必要があります。これは、このメカニズムを介してデータベース・サーバが公開されるようにデータベース・サーバを開くとセキュリティ上のリスクが発生するので、この機能が自動的には有効にならないように設計されているためです。
Web サーバに関する手順の詳細は、"CSP ゲートウェイ構成ガイド" の “CSP へのファイルの種類の追加登録” のセクションを参照してください。
Web サーバからの静的ページを処理する従来の構成を使用するよう選択することもできます。例えば、既に Web アプリケーションがこのように設定されている場合などです。この場合、[静的ファイル] オプションの設定は無関係です。これにより、共通の Web サーバで 2 つの異なるバージョンの Caché を扱っている場合に、それぞれの Caché で異なるバージョンの特定の静的ファイル (例えば、ハイパーイベントのブローカ・コンポーネント) の要求があった場合の競合を排除できます。
Web サーバ自体が静的ファイルを提供するように構成した場合、その静的コンテンツが各 Web サーバに存在することを確認してください。
URL の Web サーバ構成
Caché には、CSP アプリケーションを実行する既定の仮想ディレクトリ /csp が用意されています。また、Caché の複数のインスタンスを実行している場合に使用するための既定の仮想ディレクトリ /cacheinstance/csp も用意されています。Caché の複数のインスタンスを実行しており、前に /cacheinstance のない仮想ディレクトリ /csp を使用して CSP アプリケーションにアクセスする場合、インストールされている最新のバージョンの Caché にアクセスされます。http://localhost/csp または http//localhost/cacheinstance/csp で始まるアプリケーション・パスを使用して、すべての CSP アプリケーションを呼び出せるようにする場合は、Web サーバ構成を変更する必要はありません。
/csp または /cacheinstance/csp で始まらないアプリケーション・パスを持つ CSP アプリケーションを作成する場合は、Web サーバ構成ファイルのエントリ alias /csp で変更を加える必要があります。
以下のテーブルは、変更が必要な構成ファイルを示します。
Web サーバ | 構成ファイル |
---|---|
Apache、HP Secure Web Server |
UNIX® : /etc/httpd/conf/httpd.conf Windows: <web-server-install-directory>\conf\httpd.conf OpenVMS: <web-server-install-directory>\CONF\HTTPD.CONF |
Sun | config/obj.conf および config/magnus.conf |
Microsoft IIS | “Microsoft IIS Web サーバでの新規 URL の構成” で説明する仮想ディレクトリを定義します。 |
以下のテーブルに、Web サーバと Caché インスタンスの組み合わせを使用して CSP ページにアクセスする例を示します。
URL | Web サーバ | インスタンス |
---|---|---|
http://localhost/cache20071/csp/samples/menu.csp | パブリック | cache20071 |
http://localhost/cache52/csp/samples/menu.csp | パブリック | cache52 |
http://localhost/csp/samples/menu.csp | パブリック | インストールされている最新のバージョンの Caché |
http://localhost:57772/csp/sys/UtilHome.csp | プライベート — 管理ポータルおよびオンライン・ドキュメントへのアクセスに使用 | Web サーバのポート 57772 を使用してインストールした Caché のバージョン |
CSP は、大文字と小文字を区別します。CSPを構成している場合、整合性を確保しながらパス名を指定してください。
Microsoft IIS Web サーバでの新規 URL の構成
Microsoft IIS は、一連の仮想ディレクトリの定義によって構成されます。各仮想ディレクトリは、URL のディレクトリ部分に対応する名前、物理ディレクトリ (Web サーバから静的ファイルを処理するよう選択した場合、.html ファイルや .jpg ファイルなどの静的ファイルが保存されているローカル・ディレクトリ)、および一連のアクセス権 (read や execute など) から構成されています。
CSP コンテンツに対する任意の要求 (URL) には、ディレクトリ名が含まれます。このディレクトリ名は、Web サーバによって定義された仮想ディレクトリ、もしくは仮想ディレクトリのサブディレクトリと一致する必要があります。この仮想ディレクトリは少なくとも、処理する CSP コンテンツに定義された read 特権 と execute 特権を持つ必要があります。
Web サーバから静的ファイルを処理するよう選択した場合、Web サーバは、仮想ディレクトリに定義されている物理ディレクトリ内の静的ファイル (.html や .jpg など) を検索します。Web サーバも Caché サーバも物理ディレクトリ内の .csp ファイルを検索しません。.csp ファイルは、Caché サーバが稼動しているマシンに保存されます。アプリケーションの開発段階で推奨されているように Web サーバと Caché サーバを同じマシン上で実行していると、両方のサーバは、静的コンテンツと .csp を同じ場所で同時に検索する場合があります — そのため、Caché サーバは、インストール中にそれ自体およびローカル Web サーバを次のように構成します。
インストール時に、Caché は IIS サーバが実行中であるかどうかを検知し、/csp という仮想ディレクトリを定義するように IIS サーバを構成しようとします。このようにして、/csp/samples と /csp/user (/csp のサブディレクトリ) の両方に対する要求が、ローカル Caché のインストール環境に送信されます。
CSP アプリケーションを新規に追加する場合、そのアプリケーションの URL パスが /csp で始まっていれば、IIS 構成を行う必要はありません。例えば、/csp/myapp は /csp に対して定義された IIS 仮想ディレクトリを使用します。アプリケーション・パスを /csp で開始しない場合は、使用するアプリケーション・パスに対応する新規の IIS 仮想ディレクトリを定義する必要があります。
例えば、/myapp という URL パスを使用する CSP アプリケーションを定義するには、以下を実行します。
-
IIS マネージャを起動します (注:Windows のバージョンによって、起動方法が異なります。一般的には、Windows のコントロール・パネルから実行します)。
-
[既定の Web サイト] を右クリックし、[新規作成]、[仮想ディレクトリ] の順に選択することにより、仮想ディレクトリ /myapp を定義します。
この操作の例は、"CSP ゲートウェイ構成ガイド" の “IIS への仮想ディレクトリの追加” のセクションを参照してください。
-
このディレクトリに対する read と execute の権限を許可します。
-
Web サーバで静的コンテンツを処理する場合は、静的コンテンツを保存する物理ディレクトリを指定します。
上記以外に、以下のセクションで説明する CSP ゲートウェイ構成や CSP サーバ構成を行う必要があります。
CSP ゲートウェイ構成
CSP ゲートウェイは、Web サーバによってインストール、ロードされた DLL、または共有ライブラリです。CSP ゲートウェイは、.csp や .cls ファイルに対する要求を検出し、その要求を定義された Caché サーバで処理するために送信します。
CSP ゲートウェイ・マネージャ
CSP ゲートウェイは、CSP ゲートウェイ・マネージャ (CSP ウェブゲートウェイ管理ぺージ) を使用するか、またはその構成ファイル csp.ini を直接編集することにより、構成できます。
CSP ゲートウェイ・マネージャは、ブラウザから使用できる小規模な Web アプリケーションです。CSP ゲートウェイ・マネージャにアクセスするには、システム, 構成 ページで [CSPゲートウェイ管理] をクリックします。既定では、この操作でアクセスできる CSP ゲートウェイ・マネージャは、プライベート Web サーバのものです。
プロダクション Web サーバの CSP ゲートウェイ・マネージャにアクセスするには、URL の localhost または localhost:<port_no> を必要に応じて変更します。
CSP ゲートウェイの構成に関する情報は、システム, 構成 から [CSPゲートウェイ管理]→[進む] をクリックして表示される CSP ウェブゲートウェイ管理ページの [ヘルプ] ボタンから参照できます。詳細は、"CSP ゲートウェイ構成ガイド" を参照してください。
CSP ウェブゲートウェイ管理ページのローカライズは、インストールされた CSPres.xml があれば、この内容のみに基づきます。ローカライズ・ファイルが存在しない場合、CSP ウェブゲートウェイ管理ページでは、埋め込み英語テキストを使用するよう既定が設定されます。ブラウザの言語設定はこのメカニズムに影響しません。
サーバ・アクセスの定義
実行時エラーを回避するために、CSP 上で実行している高可用性構成では、スティッキー・セッションのサポートを有効にしたハードウェア・ロード・バランサを使用することをお勧めします。 詳細は、"Caché 高可用性ガイド" の “CSP ゲートウェイの考慮事項” のセクションを参照してください。
この CSP ゲートウェイがアクセス可能なサーバ (CSP アプリケーションを実行する Caché または Ensemble サーバ) のリストを定義できます。各サーバは論理名、TCP/IP アドレス、TCP/IP ポート番号 (既定値は 1972)、および有効または無効のフラグを持ちます。また、タイムアウト、ログ値、およびこのサーバへの接続の最大数と最小数も構成できます。
それぞれのサーバが論理名を持つことにより、CSP ゲートウェイはアプリケーションを特定のサーバに容易に接続できます。また、サーバを使用する各アプリケーションの構成を 1 つずつ構成し直さなくても、後から 1 ヶ所でサーバの特性を変更できます。
初期インストール後に、CSP ゲートウェイには LOCAL と定義された論理サーバが 1 つあります。これは、Caché のローカル・コピーに接続するために定義されたものです。
CSP ゲートウェイがアクセスできるサーバを追加するには、前のセクションでの説明に従って CSP ゲートウェイ・マネージャを起動し、[サーバ接続] をクリックします。この手順の詳細は、"CSP ゲートウェイ構成ガイド" の “複数の Caché サーバ上の CSP へのアクセス” のセクションを参照してください。
CSP.ini ファイルの既定の LOCAL サーバの例 :
LOCAL=Enabled
...
[LOCAL]
Ip_Address=127.0.0.1
TCP_Port=1972
Minimum_Server_Connections=3
アプリケーション・アクセスの定義
Caché インストールにより、新しい /csp 構成が作成されます。/csp をアプリケーションとして構成した場合、Caché の新しいビルドをインストールすると、その構成は上書きされます。アプリケーション構成を維持するには、/csp 以外のパスを入力します。
/csp/myapplication のように /csp にあるディレクトリであればどれでもかまいませんが、パスの指定にドット (ピリオド) は使用できません。ドットを使用すると、CSP ゲートウェイであいまいさが発生します。/csp/samples/menu.csp/csp/aaa/bbb/ccc.cls を例として考えると、CSP ゲートウェイでは、これを /csp/samples/menu.csp/csp/aaa/bbb/ccc.cls への要求とも、/csp/samples/menu.csp への REST 要求 (この場合、/csp/aaa/bbb/ccc.cls が PATH_INFO) とも解釈できます。 Web サーバ環境で動作しているゲートウェイには、このようなあいまいさを解決する手段がありません。
CSP は、大文字と小文字を区別します。CSPを構成している場合、整合性を確保しながらパス名を指定してください。
CSP アプリケーションとは、指定された URL で表された、一連のページやクラスです。例えば、すべての CSP サンプル・ページは、/csp/samples アプリケーションの一部です。アプリケーションには、/csp/samples/cinema のようなサブディレクトリが含まれます。
CSP ゲートウェイ・マネージャを使用すると、CSP アプリケーションが Caché サーバに接続するために使用する URL パスを定義できます。CSP は特定の URL ディレクトリ (または、そのサブディレクトリ) 内のすべてのファイルを同じアプリケーションの一部と見なします。
既定では、CSP ゲートウェイは単一のアプリケーション・パス /csp を定義し、すべての CSP 要求を論理サーバ LOCAL に送信します。/csp/samples と /csp/user に対する要求が、ローカル Caché インストールに送信されます。
/csp で始まる URL を持つ新規 CSP アプリケーションを作成する場合は、CSP ゲートウェイ構成を変更する必要はありません。/csp/myapp などの新規アプリケーションは /csp に対して定義された CSP アプリケーション設定を使用します。URL パスを /csp で開始しない場合は、独自の URL パスに対応する新規の CSP アプリケーションを CSP ゲートウェイ内に定義する必要があります。
例えば、/myapp という URL パスで始まる CSP アプリケーションを定義するには、以下を実行します。
-
管理ポータルの システム, 構成 ページから [CSPゲートウェイ管理] をクリックして、CSP ゲートウェイ・マネージャを開きます。
-
[アプリケーション・アクセス] を選択します。
-
[アプリケーション追加] をクリックします。
-
[アプリケーションパス] フィールドに、/myapp と入力します。
-
[デフォルトサーバ] を選択します。アプリケーションはリストから選択します (これらは“サーバ・アクセスの定義” セクションに定義されています)。
-
[実行] をクリックして、/myapp アプリケーション・アクセス情報を保存します。
[アプリケーションアクセス] ページの他のフィールドの詳細は、[ヘルプ] をクリックしてください。
CSP ゲートウェイ・パラメータ
CSP ゲートウェイには、調整できるパラメータがあります。タイムアウト値、フェイルオーバー、ロード・バランシング特性、CGI 環境変数などです。
これらのパラメータの詳細は、"CSP ゲートウェイ構成ガイド" の “動作と構成” の章を参照するか、CSPウェブゲートウェイ管理ページの [ヘルプ] をクリックします。
CSP アプリケーションの設定
CSP サーバは、HTTP 要求を受信すると、ローカル Caché CSP アプリケーションの設定を使用して、この要求の処理方法を決定します。このセクションでは、Caché が、CSP アプリケーション設定を使用して CSP アプリケーションの要求を処理する方法について説明します。
アプリケーションから %CSP ページへのアクセスの有効化
ユーザ・アプリケーションが既定でアクセスできる対象は以下のとおりです。
-
% クラス以外のすべてのクラス
-
/csp/sys/ アプリケーションのページおよびそのすべてのサブアプリケーションのページ
-
isc/studio/templates/ アプリケーションのページおよび /isc/studio/usertemplates/ アプリケーションのページ
ユーザ・アプリケーションは以下の各クラスにもアクセスできます。
-
%CSP.BrokerOpens in a new tab、%CSP.StreamServerOpens in a new tab、%CSP.LoginOpens in a new tab、%CSP.PasswordChangeOpens in a new tab、%CSP.PageLookupOpens in a new tab
-
%ZEN.SVGComponent.svgPageOpens in a new tab では、%ZEN.Dialog.* へのアクセスが可能です。
-
他のすべての %ZEN.* クラスにはアクセスできません。
-
他のすべての %Z.* クラスにアクセスできます。
-
-
すべての %z.* クラスにアクセスできます。
システム, セキュリティ管理, ウェブアプリケーション ページで、CSP アプリケーションでの設定確認のほか、アクセス可能なクラスであるかどうかの確認が実行されます。 したがって、クラス参照では、アクセスを許可されるためには両方のテストを渡す必要があります (このドキュメントの “Web アプリケーションの設定の編集” にある表で許可されるクラスの設定を参照してください)。
上記以外のクラスにアクセスできるようにするには、%SYS ネームスペースでグローバル ^SYS("Security","CSP","category") を構成します。category は、AllowClass、AllowPrefix、または AllowPercent です。以下のセクションでは、これらのオプションについて説明します。
確認では、まずデフォルトのルールが適用され、続いてリストにある順番で各カテゴリが適用されます。
各キーワードは複数回の呼び出しが可能です。したがって、パッケージ全体をアクセス可能にしたうえで、そのパッケージにある 1 つのクラスへのアクセスを制限できます。
^SYS グローバルの背景情報
^SYS グローバルは %SYS ネームスペースで利用でき、このドキュメントで説明している詳細などの構成情報を収めています。このグローバルの関連部分にある現在の内容を調べることから着手すると効果的です。そのためには、ターミナルを開いて %SYS ネームスペースに切り替えます。続いて以下のコマンドを入力します。
zw ^SYS("Security", "CSP")
ノードごとに現在の値が 1 行で表示されます。以下はその例です。
^SYS("Security","CSP")=1
^SYS("Security","CSP","AllowClass","/csp/samples/","%CSP.UI.Portal.About")=1
^SYS("Security","CSP","AllowClass","/csp/samples/","%SOAP.WebServiceInfo")=1
^SYS("Security","CSP","AllowClass","/csp/samples/","%SOAP.WebServiceInvoke")=1
^SYS("Security","CSP","AllowPrefix","/csp/samples/","%DeepSee.")=1
カテゴリ: AllowClass
特定のクラスの呼び出しがアプリケーションで重要な場合は、AllowClass オプションを使用し、そのクラスを利用できるようにします。
これまでに挙げた中にないクラスの呼び出しがアプリケーションで重要な場合、そのような呼び出しは安全ではない可能性があります。そのクラスの呼び出しが必要かどうかを判断し、導入に伴うリスクを評価することをお勧めします。これにより、そのクラスを使用可能にすることで発生する影響を把握できます。
指定された Web アプリケーションで特定のクラスを呼び出すことができるようにするには、%SYS ネームスペースで以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowClass", "web-app-name", "package.class") = value
以下は、この指定の説明です。
-
web-app-name は Web アプリケーションの名前です。末尾にはスラッシュを記述します。
指定されたクラスまたはパッケージをすべての Web アプリケーションで使用できるようにするには、web-app-name に 0 を指定します。この場合は、アプリケーション名を囲む引用符を省略してもかまいません。
-
package.class はクラスの完全修飾名です。class を指定しない場合は、指定したパッケージにあるすべてのクラスがアクセス可能になります。
-
value は 1 または 0 です。
1 を指定すると、このクラスまたはパッケージが Web アプリケーションから呼び出し可能になります。
0 を指定すると、このクラスやパッケージを Web アプリケーションから呼び出すことはできなくなります。
例えば、%User.Page クラスを/csp/webapps アプリケーションで使用できるようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowClass", "/csp/webapps/", "%User.Page") = 1
%User.Page クラスをすべての Web アプリケーションで使用できるようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowClass", 0, "%User.Page") = 1
%User パッケージにあるクラスのうち、%User.Other クラスを除くすべてのクラスを /csp/myapp アプリケーションで使用できるようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowClass", "/csp/myapp/", "%User") = 1 Set ^SYS("Security", "CSP", "AllowClass", "/csp/myapp/", "%User.Other") = 0
カテゴリ: AllowPrefix
同じ文字の組み合わせを名前の先頭に持つ複数のクラスまたはパッケージの呼び出しが重要なアプリケーションでは、AllowPrefix オプションを使用します。
これまでに挙げた中にないクラスの呼び出しがアプリケーションで重要な場合、そのような呼び出しは安全ではない可能性があります。そのクラスの呼び出しが必要かどうかを判断し、導入に伴うリスクを評価することをお勧めします。これにより、そのクラスを使用可能にすることで発生する影響を把握できます。
同じ文字の組み合わせを名前の先頭に持つクラスまたはパッケージを、指定された Web アプリケーションで呼び出すことができるようにするには、%SYS ネームスペースで以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowPrefix", "web-app-name", "prefix") = value
以下は、この指定の説明です。
-
web-app-name は Web アプリケーションの名前です。末尾にはスラッシュを記述します。
指定されたクラスまたはパッケージをすべての Web アプリケーションで使用できるようにするには、web-app-name に 0 を指定します。この場合は、アプリケーション名を囲む引用符を省略してもかまいません。
-
prefix は、名前の先頭にある文字列です。
-
value は 1 または 0 です。
1 を指定すると、これらのクラスまたはパッケージが Web アプリケーションから呼び出し可能になります。
0 を指定すると、これらのクラスやパッケージを Web アプリケーションから呼び出すことはできなくなります。
例えば、MyApp パッケージ全体を /csp/webapps アプリケーションから呼び出すことができるようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowPrefix", "/csp/webapps/", "MyApp.") = 1
prefix は "MyApp." で、この接頭語にあるピリオドは、MyAppUtils などのパッケージには、この Web アプリケーションからアクセスできないことを意味しています。一方、MyApp.Utils パッケージや MyApp.UnitTests パッケージなどには、この Web アプリケーションからアクセス可能です。
文字列 My を名前の先頭に持つすべてのパッケージにすべてのアプリケーションからアクセスできるようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowPrefix", 0, "My") = 1
%MyPkg パッケージにあるクラスのうち、%MyPkg.Class1 クラスを除くすべてのクラスに /csp/myapp アプリケーションからアクセスできるようにするとします。この場合は以下の 2 つのコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowClass", "/csp/myapp/", "%MyPkg.Class1") = 0 Set ^SYS("Security", "CSP", "AllowPrefix", "/csp/myapp/", "%MyPkg.") = 1
カテゴリ: AllowPercent
% 文字を名前の先頭に持つパッケージを汎用的に呼び出すことが重要なアプリケーションでは、AllowPercent オプションを使用することで、該当のクラスを利用できるようになります。
これまでに挙げた中にないクラスの呼び出しがアプリケーションで重要な場合、そのような呼び出しは安全ではない可能性があります。そのクラスの呼び出しが必要かどうかを判断し、導入に伴うリスクを評価することをお勧めします。これにより、そのクラスを使用可能にすることで発生する影響を把握できます。
% 文字を名前の先頭に持つすべてのパッケージをすべての Web アプリケーションで使用できるようにするには、%SYS ネームスペースで以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowPercent") = 1
これらのパッケージにどの Web アプリケーションもアクセスできないように明示的に指定するには値 0 を使用します。
特殊なケース: DeepSee
Web アプリケーションで %DeepSee を使用するには、 パッケージのすべてのクラスに対するアクセス権が必要です。特定のアプリケーションで DeepSee を使用できるようにするには、%SYS ネームスペースで以下のコマンドを使用します。
Do EnableDeepSee^%SYS.cspServer("/csp/webapp/")
web-app-name は Web アプリケーションの名前です。末尾にはスラッシュを記述します。前出のコマンドは、以下のコマンド群と同等です。
Set ^SYS("Security","CSP","AllowClass","web-app-name","%DeepSee.") = 1 Set ^SYS("Security","CSP","AllowClass","web-app-name","%CSP.UI.Portal.About")=1
web-app-name は Web アプリケーションの名前です。末尾にはスラッシュを記述します。1 行目では %DeepSee. として末尾にピリオドを記述しています。
すべてのアプリケーションで DeepSee を使用できるようにするには以下のように変更します。
Do EnableDeepSee^%SYS.cspServer(0)
例えば、Web アプリケーション /csp/webapp で DeepSee を使用できるようにするには以下のコマンドを使用します。
Do EnableDeepSee^%SYS.cspServer("/csp/webapp/")
特定の Web アプリケーションでは DeepSee を使用できないようにするには以下のコマンドを使用します。
Set ^SYS("Security", "CSP", "AllowPrefix", "web-app-name", "%DeepSee.") = 0
Web アプリケーションの設定の編集
以下のように、管理ポータルの [ウェブ・アプリケーション編集] ページで、Caché が特定の CSP アプリケーションを処理する方法について設定を作成または変更できます。
-
[システム]→[セキュリティ]→[ウェブアプリケーション] の順に選択します。
構成済みの Web アプリケーションが一覧表示されます。[タイプ] 列には、アプリケーションが、ユーザ・アプリケーション (CSP) またはシステム・アプリケーション (CSP,System) として示されます。システム・アプリケーションとは、Caché に付属する CSP ベースのユーティリティです。
-
アプリケーションを選択して [編集] をクリックした後、情報を入力または変更します。
-
編集が完了したら、新規設定を有効にするために Caché を再起動します。
[一般] タブには、アプリケーションの基本操作に必要な情報を指定するフィールドがあります。これらのフィールドの詳細は、"Caché セキュリティ管理ガイド" の “アプリケーションの編集” を参照してください。
[アプリケーション・ロール] タブを使用すると、アプリケーションの使用中にユーザに割り当てるロールを選択できます。ここで選択したアプリケーション・ロールが、ユーザに既に割り当てられている一連のロールに追加されます。
[マッチングロール] タブを使用すると、現在のロール割り当てに基づいて、アプリケーションの使用中にアプリケーション・ユーザに追加ロールを割り当てることができます。
ロールおよびカスタム・ログイン・ページの詳細は、ドキュメント "Caché セキュリティ管理ガイド" の “アプリケーション” を参照してください。
新規アプリケーションの定義
CSP サーバ上で /myapp という新規 CSP アプリケーションを定義するには、以下の手順に従ってください。
-
管理ポータルで、[システム]→[セキュリティ]→[ウェブアプリケーション] の順に選択し、[新規ウェブアプリケーション作成] をクリックします。
-
この場合は、新規のアプリケーション名 /myapp の URL を入力し、[OK] をクリックします。
-
アプリケーションの必要なプロパティを入力します。ほとんどのプロパティはオプションです ("アプリケーションの設定" のセクションにあるテーブルを参照)。最も重要な点は、以下のとおりです。
-
[許可する認証の有効/無効] — アプリケーションに接続するための有効な認証テクノロジ。
-
[ネームスペース] — このアプリケーションが実行されている Caché のネームスペース。
-
[Caché物理パス] — CSP ファイルの物理的な場所 (HTML ベースの開発を使用している場合)。
-
-
[保存] をクリックします。
-
[アプリケーション・ロール] タブをクリックして、アプリケーションの使用中にユーザに割り当てるロールを選択します。これらのアプリケーション・ロールが、ユーザに既に割り当てられている一連のロールに追加されます。
-
[マッチングロール] タブをクリックして、現在のロール割り当てに基づいて、アプリケーションの使用中にアプリケーション・ユーザに追加ロールを割り当てます。