インスタンス・レベルのセキュリティの妥当性の追加

Visual LANSA

インスタンス・レベルのセキュリティの妥当性の追加


IIP avCheckInstanceAuthを修正してフレームワークにインスタンス・レベルのセキュリティを追加できます。例えば、デモ・システムのEmployeesビジネス・オブジェクトを例に取ると、選択した従業員によって同一ユーザーが別のコマンドの権限を持つことができます。これでセキュリティを強化したり、フレームワークのセキュリティを使用しているサイトの標準に最適化することができます。また、特定のユーザーや特定のビジネス・オブジェクトに対するフィルターやコマンド・ハンドラーの作用を変えることもできます。

IIPルーチンはビジネス・オブジェクトの識別子とコマンドの識別子(どちらの場合も識別子はユーザー・オブジェクト名/タイプのパラメータで、ビジネス・オブジェクトまたはコマンドの識別子タブ・シートから確認できます)、ユーザー・プロファイル、ビジネス・オブジェクト・インスタンスの識別キーを受け取ります。

(avCheckInstanceAuthがフィルターから呼ばれた場合は例外です。この場合、コマンドの識別子は指定されません。)

詳細は、UF_SYSTM、メソッドavCheckInstanceAuthを参照してください。

IIPルーチンはこのユーザー・プロファイルやビジネス・オブジェクト、コマンド、ビジネス・オブジェクト・インスタンスのセキュリティ・レコードをFETCHするようなものに変換できます。このセキュリティ・レコードを元にOKまたはERを返します。

IIPルーチンは結果をOKまたはERとして返します。フレームワーク・オブジェクトをデザイン・モード以外で実行しているとき、フレームワークは各ビジネス・オブジェクト・インスタンスについてIIPルーチンを評価し、そのビジネス・オブジェクト・インスタンスやユーザーに適したコマンドを自動的に表示/非表示します。

avCheckInstanceAuth IIPルーチンのセキュリティはフレームワーク・セキュリティで追加可能です。フレームワーク・セキュリティの設定でユーザーのオブジェクト(アプリケーション/ビジネス・オブジェクト/コマンド・リファレンス)に対する権限がない場合、またはIIPルーチンでユーザーにそのビジネス・オブジェクトのインスタンスのコマンドに対する権限がない場合、コマンドはそのユーザーに表示されません。

フィルターやコマンド・ハンドラーのコードから任意にavCheckInstanceAuthにアクセスして、返された「追加情報パラメータ」にしたがって、そのフィルターやコマンド・ハンドラーの作用を変更することはできます。

avCheckInstanceAuthをフィルターから呼び出した場合、ビジネス・オブジェクト(どのコマンドでも)のインスタンスは検証されます。返されたコードと追加情報パラメータにしたがって、フィルターは、例えばデータベースから選択されたどのデータをインスタンス・リストに追加するかなどを決定することができます。

avCheckInstanceAuthをコマンド・ハンドラーから呼び出した場合、特定のビジネス・オブジェクト・インスタンスのコマンド・リファレンス(フレームワーク/アプリケーション/ビジネス・オブジェクト-コマンドの組み合わせ)が検証されます。このビジネス・オブジェクト・インスタンスに有効なコマンドの場合、このコマンド・リファレンスとビジネス・オブジェクト・インスタンスに対してIIPルーチンはOKを返す必要がありますが、追加情報パラメータを付加することもできます。コマンド・ハンドラーは(インスタンスごとに)このパラメータを使用して、何名かのユーザーにはすべてのフィールドを編集する許可を与え、他のユーザーには編集できるフィールド数を減らす、あるいは閲覧のみにすることができます。