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 パスワードセキュリティが使用不能であることを示すメッセージを表示します。