Fileshare は、Fileshare サーバへのアクセスを制限できるセキュリティ機能を備えています。 Fileshare サーバが制御する特定のデータファイルへのアクセスを制限することもできます。 これらの制限を実現するには、次の項目を指定します。
注:Mainframe Express では、Fileshare がサポートされるのは Mainframe Express の構成要素で使用する場合のみです。 そのため、Fileshare を使用する書き込みアプリケーションに関する次の情報の一部は、Mainframe Express ユーザには該当しません。
パスワードシステムを使用可能にして Fileshare サーバを起動した場合には、すべての Fileshare クライアントは、Fileshare サーバに接続する前に、有効なユーザ ID を指定する必要があります。 デフォルトでは、Fileshare サーバの起動時に Fileshare のパスワードシステムは使用可能でありません。
Fileshare パスワードシステムを使用するには、ユーザ ID とパスワードをファイルハンドラリダイレクタモジュールに渡すようにプログラムし、プログラムが使用するユーザ ID とパスワードを記述したパスワードファイルを Fileshare サーバマシンに作成する必要があります。
次に、Fileshare パスワードシステムを使用可能にするには、/pf
オプションを使用して、Fileshare サーバにパスワードファイルの名前を指定する必要があります。
Fileshare パスワードシステムを使用可能にすると、ユーザプログラムと Fileshare による処理手順は次のようになります (図 5-1 を参照)。
図 5-1: Fileshareパスワードシステム
これらの各手順の詳細については、後述します。
Fileshare セキュリティがアクティブな場合は、最初の入出力操作を実行する前に、ユーザプログラムでユーザ ID とパスワードを指定する必要があります。
セキュリティがアクティブでない場合でも、プログラムで Fileshare クライアントにユーザ ID とパスワードを指定することは可能です。 このように設定しておくと、セキュリティがアクティブであるかどうかにかかわらず、プログラムを変更しないで Fileshare を使用できます。
ユーザ ID とパスワードを登録するには、次のように、プログラムでモジュール FHRdrPwd を呼び出す必要があります。
call "fhrdrpwd" using function-code, user-ID, user-password end-call
パラメータの内容は、次のとおりです。
01 function-code pic x comp-x. 01 user-ID pic x(20). 01 user-password pic x(20).
ユーザ ID とパスワードを登録するための関数コードは 1 です。
ユーザ ID とパスワードを登録する方法の一例を、次に示します。
working-storage section. 01 function-code pic x comp-x. 01 user-name pic x(20). 01 user-password pic x(20). ... procedure division. ... move 1 to function-code move "UserID" to user-name move "Password" to user-password call "fhrdrpwd" using function-code, user-name, user-password end-call ... open output testfile ...
Fileshare システムが指定する FHRdrPwd モジュールをユーザ独自の FHRdrPwd モジュールに置き換えることができます。 そのため、アプリケーションプログラム以外からユーザ ID とパスワードを取得することが可能になります。 詳細については、『ユーザ独自の FHRdrPwd モジュールの作成』を参照してください。
デフォルトでは、Fileshare サーバの起動時に、Fileshare パスワードシステムはアクティブではありません。 パスワードセキュリティをアクティブにするには、Fileshare サーバの構成ファイルで /pf
(パスワードファイル) オプションを使用してください。次にその例を示します。
Windows
/pf password.fil
/s server1
UNIX
-pf password.fil
-s server1
このコマンドでは、Fileshare サーバ server1
に対して、Fileshare パスワードセキュリティを使用可能にし、パスワードファイル password.fil を使用するように指定します。 Fileshare サーバは、このファイルを使用して、Fileshare クライアントがこの Fileshare サーバに接続する権限があるかを決定します。
パスワードファイルを作成し、ユーザ ID エントリとパスワードエントリを追加するには、パスワードファイルのメンテナンスユーティリティを使用します。 このユーティリティの詳細については、『パスワードファイルのメンテナンス』の項を参照してください。
ユーザ ID とパスワードを登録するには、プログラムでファイルハンドラリダイレクタパスワードモジュールを呼び出し、ユーザ ID とパスワードを指定する必要があります。 この呼び出しをユーザプログラムでハードコーディングしない場合は、Fileshare が提供するファイルハンドラリダイレクタパスワードモジュールを、別の方法で (たとえば、画面のプロンプトなど) ユーザ ID とパスワードを取得するモジュールに置き換えることができます。 新しいモジュールもファイルハンドラリダイレクタパスワードモジュールインターフェイスに準拠する必要があります。具体的には、次のように指定します。
関数コード
|
アクション |
---|---|
= 1: | 指定されたユーザ ID とパスワードを登録します。 |
= 0: | ユーザ ID とパスワードを返します。 ファイルハンドラリダイレクタモジュールは、Fileshare サーバに接続しようとする場合には、この呼び出しを使用してユーザ ID とパスワードを取得します。 |
新しいファイルハンドラリダイレクタパスワードモジュールを .gnt 形式にコンパイルして、次のようにします。
オブジェクトモジュールを作成し、必要に応じて、実行可能アプリケーションにリンクします。
Fileshare パスワードシステムがアクティブでない場合、Fileshare サーバは、Fileshare セキュリティログオン検証モジュール (FSSecLog) を呼び出して、ログオン要求を検証します。
Fileshare で提供される FSSecLog モジュールは、どの Fileshare クライアントにも Fileshare サーバへのログオンを許可します。 Fileshare サーバにログオンできる Fileshare クライアントを制限する必要がある場合には、呼び出す Fileshare サーバに対して、ユーザ独自の、または、別の FSSecLOG モジュールを使用する必要があります。
たとえば、必要に応じて、ユーザ独自のモジュールをオペレーティングシステムのセキュリティと統合できます。
この場合には、ユーザプログラムと Fileshare の処理手順は、次のようになります (図 5-2 を参照)。
図 5-2: ログオン検証モジュール
Fileshare サーバは、Fileshare クライアントからのログオン要求を検証するために、FSSecLog モジュール (ログオン用 Fileshare セキュリティ検証モジュール) を呼び出して、ユーザ ID とパスワードを検証します。 FSSecLog モジュールをユーザ独自のモジュールに置き換えると、ログオン要求をユーザ独自の条件で検証できます。 ただし、作成した新しいモジュールは、次に示す FSSecLog インターフェイスに準拠している必要があります。
call "fsseclog" using user-ID password return-status
user-ID password return-status |
pic x(20). pic x(20). pic x comp-x. |
user-ID |
Fileshare クライアントのユーザ ID |
password |
Fileshare クライアントのパスワード |
user-ID |
変更されません |
password |
変更されません |
return-status |
Fileshare サーバに対する Fileshare クライアントからのログオンを許可する場合は、戻り状態を 0 に設定します。 0 以外の戻り状態は、Fileshare クライアントのログオンが許可されず Fileshare クライアントにエラーを返すことを示します。 |
Windows
作成したユーザ独自の fsseclog モジュールは、Fileshare サーバにリンクできます。 詳細については、『高度な操作』の章にある『Windows での Fileshare サーバのリンク』を参照してください。
UNIX
.gnt 形式で作成したユーザ独自の fsseclog モジュールは、COBOL システムディレクトリに提供されている fsseclog モジュールと置き換えることができます。
Fileshare サーバは、Fileshare クライアントからファイルオープン要求を受け取るたびに、FSSecOpn モジュール (オープン用 Fileshare セキュリティ検証モジュール) を呼び出します。
Fileshare で提供するオープン用 Fileshare セキュリティ検証モジュールは、どの Fileshare クライアントもデータファイルへのアクセスを許可します。 特定のファイルへのアクセスを制限する必要がある場合は、呼び出す Fileshare サーバに対して、ユーザ独自の、または、別のオープン用 Fileshare セキュリティ検証モジュールを使用する必要があります。
オープン用 Fileshare セキュリティ検証モジュールがファイルアクセスを許可すると、操作を完了できます。このモジュールがファイルアクセスを許可しない場合は、ファイル状態 9/037 「アクセスが拒否されました。」が Fileshare クライアントに返され、その操作は完了できません。
注:このファイルアクセスのセキュリティ検査は、Fileshare パスワードシステムとユーザが作成したログオン検証モジュールとは関係なく行われます。
ユーザプログラムと Fileshare による処理手順は次のようになります。
Fileshare クライアントからのオープン要求を検証するために、Fileshare サーバはオープン用 Fileshare セキュリティ検証モジュール(FSSecOpn)を呼び出します。
Fileshare で提供するオープン用 Fileshare セキュリティ検証モジュールをユーザ独自の FSSecOpn モジュールに置き換えると、ユーザ独自の条件でオープン要求を検証できます。 ただし、作成した新しいモジュールは、次に示すオープン用 Fileshare セキュリティ検証モジュールインターフェイスに準拠している必要があります。
call "fssecopn" using filename filename-length operation-code user-ID return-status
filename |
pic x(n). |
filename-length |
pic x(2) comp-x. |
operation-code |
pic x(2) comp-x. |
user-ID |
pic x(20). |
return-status |
pic x comp-x. |
filename |
Fileshare クライアントが開くデータファイルの名前 |
filename-length
|
filename の長さ |
operation-code |
入出力操作を指定する操作コード。 これらのコードは、呼び出し可能ファイルハンドラで使用します。呼び出し可能ファイルハンドラの詳細については、Net Express オンラインヘルプを参照してください。 |
user-ID |
オープン要求を出す Fileshare クライアントのユーザ ID |
return-status |
オープン要求を許可する場合は戻り状態を 0 に設定します。 0 以外の戻り状態は、Fileshare クライアントのデータファイルに対するオープン要求が許可されず、Fileshare クライアントにエラーを返すことを示します。 |
Windows
作成したユーザ独自の fssecopn モジュールは、Fileshare サーバとリンクできます。 詳細については、『高度な操作』の章にある『Windows での Fileshare サーバのリンク』を参照してください。
UNIX
.gnt 形式で作成したユーザ独自の fssecopn モジュールは、COBOL システムディレクトリに提供されている fssecopn モジュールと置き換えることができます。
パスワードファイルには、Fileshare パスワードセキュリティが使用可能である場合に Fileshare サーバが使用するユーザ ID とパスワードの詳細情報が格納されます。 パスワードファイルの情報は、セキュリティのために暗号化されているので、パスワードファイルのメンテナンスユーティリティを使用しないと、パスワードファイルに対するレコードの追加や削除を行えません。
注:
パスワードファイルのエントリを追加または削除するには、次のように、/pf
(パスワードファイル) オプションを使用します。
fs /pf pass.dat [options]
パスワードファイルのメンテナンス機能を起動し、指定したオプションをパスワードファイル pass.dat に追加します。 このファイルが存在しない場合は、新しく作成されます。
また、次のオプションも使用できます。
/u user-ID /pw password
指定したユーザ ID とパスワードをパスワードファイルに追加します。 user-ID と password は、両方とも大文字と小文字を区別し、最大長は 20 文字です。
[/e]
パスワードファイルからレコードを消去します。パスワードを作成した後にレコードを削除する方法は、他にありません。
例
fs /pf pass.dat /u pkel /pw fishwife
この例では、パスワードファイルのメンテナンス機能を起動し、pass.dat というパスワードファイルを作成または更新します。さらに、ユーザ ID pkel とパスワード fishwife も追加します。
Fileshare マネージャのパスワード制限機能を使用するには、スーパーバイザパスワードを定義する必要があります。『高度な操作』の章にある『Fileshare マネージャ』の項を参照してください。
スーパーバイザパスワードを定義するには、予約済みのユーザ ID である FSVIEW を使用して、パスワードファイルのエントリを作成する必要があります。 ユーザ ID である FSVIEW は、大文字で入力する必要があるので、注意してください。
すでに、Fileshare パスワードセキュリティを使用している場合は、既存のファイルに FSVIEW を追加するのみです。
Fileshare パスワードセキュリティを使用していない場合は、FSVIEW ユーザ ID のみをエントリとしてもつパスワードファイルを作成できます。この方法により、Fileshare パスワードセキュリティを使用可能にせず、スーパーバイザパスワードを定義できます。
例
次の例では、パスワードファイル password.fil にスーパーバイザパスワード「abracadabra」を定義します。 このファイルが存在しない場合には、新しく作成されます。
fs /pf password.fil /u FSVIEW /pw abracadabra
スーパーバイザパスワードを定義した場合は、Fileshare サーバの構成ファイル、または Fileshare サーバの起動時にコマンド行で、このパスワードファイルを指定する必要があります。
注:パスワードファイルエントリが FSVIEW のみの場合には、Fileshare サーバは、パスワードファイルが指定されていても Fileshare パスワードセキュリティが使用不能であることを示すメッセージを表示します。