セキュリティ

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 を参照)。

  1. ユーザプログラムから、ファイルハンドラリダイレクタパスワード (FHRdrPwd) モジュールを呼び出して、ユーザ ID とパスワードを Fileshare クライアントに登録します。

  2. ユーザプログラムから最初の入出力操作を行います。

  3. ファイルハンドラリダイレクタモジュールは、ファイルハンドラリダイレクタパスワードモジュール (FHRdrPwd) を呼び出して、手順 1 で登録したユーザ ID とパスワードを取得します。

  4. ファイルハンドラリダイレクタモジュールは、ユーザ ID とパスワードを Fileshare サーバに渡します。



    図 5-1: Fileshareパスワードシステム

  5. Fileshare サーバは、パスワードファイルを使用して、ユーザ ID とパスワードを検査します。

  6. Fileshare サーバがログオンアクセスを許可すると、Fileshare クライアントと Fileshare サーバとの間で接続が確立します。Fileshare サーバがログオンアクセスを許可しない場合は、Fileshare クライアントにファイル状態 9/037 (「アクセスが拒否されました。」) が返されます。

これらの各手順の詳細については、後述します。

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 パスワードシステムはアクティブではありません。 パスワードセキュリティをアクティブにするには、Fileshare サーバの構成ファイルで /pf(パスワードファイル) オプションを使用してください。次にその例を示します。

Windows
/pf password.fil
/s server1

UNIX
-pf password.fil
-s server1

このコマンドでは、Fileshare サーバ server1 に対して、Fileshare パスワードセキュリティを使用可能にし、パスワードファイル password.fil を使用するように指定します。 Fileshare サーバは、このファイルを使用して、Fileshare クライアントがこの Fileshare サーバに接続する権限があるかを決定します。

パスワードファイルを作成し、ユーザ ID エントリとパスワードエントリを追加するには、パスワードファイルのメンテナンスユーティリティを使用します。 このユーティリティの詳細については、『パスワードファイルのメンテナンス』の項を参照してください。

ユーザ独自の FHRdrPwd モジュールの作成

ユーザ 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 を参照)。

  1. ユーザプログラムから、ファイルハンドラリダイレクタパスワードモジュール (FHRdrPwd) を呼び出し、ユーザ ID とパスワードを登録します。

  2. ユーザプログラムから最初の入出力操作を行います。

  3. ファイルハンドラリダイレクタモジュールは、そのパスワードモジュール (FHRdrPwd) を呼び出して、手順 1 で登録したユーザ ID とパスワードを取得します。

  4. ファイルハンドラリダイレクタモジュールは、ユーザ ID とパスワードを Fileshare サーバに渡します。

  5. Fileshare サーバは、FSSecLog モジュールを呼び出して、ユーザ ID とパスワードを渡します。

  6. FSSecLog モジュールがログオンアクセスを許可すると、Fileshare クライアントと Fileshare サーバとの間で接続が確立します。FSSecLog モジュールがログオンアクセスを許可しない場合は、状態メッセージ 9/037 「アクセスが拒否されました。」が Fileshare クライアントに返されます。



図 5-2: ログオン検証モジュール

ユーザ独自の FSSecLog モジュールの作成

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 による処理手順は次のようになります。

  1. ユーザプログラムで、ファイルハンドラリダイレクタパスワードモジュールにユーザ ID とパスワードを登録します。 この情報は、Fileshare クライアントが Fileshare サーバに最初にログオンするときに使用します。

  2. オープン操作 (OPEN や DELETE のようなファイル操作) を指定していないファイルに対してユーザプログラムが入出力操作を行う場合には、Fileshare サーバは常にオープン用 Fileshare セキュリティ検証モジュール (FSSecOpn) を呼び出します。

ユーザ独自の オープン用 Fileshare セキュリティ検証モジュール (FSSecOpn) の作成

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-IDpassword は、両方とも大文字と小文字を区別し、最大長は 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 パスワードセキュリティが使用不能であることを示すメッセージを表示します。


関連情報
はじめに
標準的な操作
構成
データベースの完全性
高度な操作
UNIX で使用する Fileshare
通信
エラー処理
Fileshare サーバのメッセージ