ステップ 24. セキュリティラベルのオブジェクト初期化規則を定義する - オプション
オブジェクトをシステム内で利用可能にする前に、オブジェクトに適切なセキュリティラベルを設定しておくことが重要です。たとえば、意図していないユーザーに機密情報が公開されないようにするには、オブジェクトを最初にチェックインするときにセキュリティラベルを設定する必要があります。オブジェクトの作成時にセキュリティラベルが設定されていない場合、セキュリティラベルは自動的にデフォルトの Null 値になります。これによってそのオブジェクトへのアクセスは無制限になり、そのオブジェクトに対する読み取りのアクセス権を持つすべてのユーザーがそのオブジェクトを閲覧可能になります。セキュリティラベル値のデフォルトを Null 以外の値に指定するオブジェクト初期化規則の定義は管理者が行います。
作成用のユーザーインタフェースがないオブジェクトもあります。たとえば、「ドキュメントを圧縮ファイルからアップロード」操作を使用して作成されたプロモーション通知やドキュメントにはインタフェースがありません。これらのオブジェクトへのアクセスを制限する必要がある場合、そのようなオブジェクトに対し、オブジェクトの作成時に適切なセキュリティラベル値を設定することを定めたオブジェクト初期化規則を定義する必要があります。
オブジェクト初期化規則を使用して、作成ユーザーインタフェースを使用するオブジェクトタイプにデフォルトのセキュリティラベル値を設定することもできます。セキュリティラベルを設定できるオブジェクトのリストについては、<Windchill>/conf/exposedSecurityLabelObjects.xml ファイルを参照してください。<Windchill> は Windchill ソリューションのインストール場所を示します。
新規オブジェクトウィンドウでセキュリティラベル値を設定する際に、次の属性制約を使用できます。
• GetHiddenConstraint: 新規オブジェクトウィンドウでセキュリティラベルとセキュリティラベル値を非表示にします。
• GetDiscreteSetConstraint: オブジェクト初期化規則で指定された値のみをドロップダウンリストに表示します。
|
カスタムセキュリティラベルを使用する場合、GetDiscreteSetConstraint 属性の制約を持つオブジェクト初期化規則を設定すると、カスタムセキュリティラベルにユーザーが指定可能な値を制限できます。
|
• GetImmutableConstraint: 表示された値をユーザーが変更できないようにします。
• GetServerAssignedConstraint: ラベル名を表示しますが、ラベル値は表示しません。値の代わりに、「(生成済み)」というテキストが表示されます。
• GetServerPreGeneratedValue: ラベルのデフォルト値として指定した値が表示されます。
オブジェクト初期化規則の作成と編集は、
オブジェクト初期化規則管理ユーティリティで行います。以降では、オブジェクトタイプのオブジェクト初期化規則を作成または更新するときの一般的な手順について説明します。
オブジェクト初期化規則管理ユーティリティの使用の詳細については、
オブジェクトの初期化規則テーブルを参照してください。
1. 規則を定義するコンテキストの「ユーティリティ」ページからオブジェクト初期化規則管理ユーティリティを開きます。オブジェクト初期化規則はどのコンテキストレベルでも指定できます。つまり、サイトレベルコンテキストで特定のタイプのすべてのオブジェクトにデフォルトの規則を設定し、組織コンテキスト、または製品やプロジェクトなどの特定のアプリケーションコンテキストでは別の規則を指定できます。たとえば、サイトで作成されたすべてのドキュメントの Corporate Proprietary セキュリティラベルのデフォルト値を Private に設定し、特定のプロジェクト内のすべてのドキュメントの Corporate Proprietary セキュリティラベルのデフォルト値を Company Most Private に設定するオブジェクト初期化規則を指定できます。
2. そのオブジェクトタイプの規則がある場合、既存の規則をローカルマシンにダウンロードし、テキストエディタで XML ファイルを開きます。規則を新規作成する場合、既存の規則をダウンロードして新しいファイルとして保存し、新しい規則のテンプレートとして使用することをお勧めします。
3. XML ファイルを編集して、セキュリティラベルに必要なデフォルト値を追加します。1 つのコンテキストでは 1 つのオブジェクトにオブジェクト初期化規則を 1 つだけ指定でき、オブジェクト初期化規則に複数のエレメントを含めることができます。
たとえば、Export Control セキュリティラベルのデフォルト値を License Required - State に指定し、値のリストが表示されたときにこの値がデフォルトで選択されるようにするには、次の行を追加します。
<!--set default security label values-->
<AttrValue id="EXPORT_CONTROL" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>LNS</Arg>
</AttrValue>
<AttrConstraint id="EXPORT_CONTROL" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
デフォルトのセキュリティラベル値に使用するアルゴリズムは、エレメント <Arg> に定義されているセキュリティラベル値名を含む文字列を生成する必要があります。たとえば、wt.rule.algorithm.StringConstant アルゴリズムを使用できます。
エレメント AttrValue の属性 id の値は、セキュリティラベルのコンフィギュレーションファイルで定義されているセキュリティラベルの名前です。
システムで使用されているセキュリティラベルごとにエレメント AttrValue を追加できます。
Arg エレメントは、標準セキュリティラベルでは securityLabelsConfiguration.xml ファイルに指定されたセキュリティラベル値の名前、カスタムセキュリティラベルではセキュリティラベル値の外部値でなければなりません。
4. マシン上の既知の場所に XML ファイルを保存します。必要に応じて、ファイルにわかりやすい名前を付けることもできます。
5. 既存の規則を編集した場合、「オブジェクト初期化規則管理」テーブルで、規則の操作リストから「編集」を選択します。編集した XML ファイルをブラウズして選択します。
規則を新規作成する場合、「新規オブジェクト初期化規則」アイコン
をクリックします。オブジェクトの名前とタイプ識別子を入力し、編集した XML ファイルをブラウズして選択します。
6. 「OK」をクリックします。規則はただちに有効になります。メソッドサーバーを再起動する必要はありません。
例
次の例では、サンプルセキュリティラベル Corporate Proprietary のセキュリティラベル値の選択に属性制約が適用されています。サンプルラベルと使用可能な値の詳細については、
Corporate Proprietary - セキュリティラベルの例を参照してください。
• 目的の動作: セキュリティラベルをデフォルト値に設定し、ユーザーが値を変更できないようにセキュリティラベルを非表示にします。デフォルト値が指定されていない場合、Null 値 (無制限) が設定されます。
属性の制約: GetHiddenConstraint
例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetHiddenConstraint"/>
</AttrConstraint>
• 目的の動作: セキュリティラベルをデフォルト値に設定し、値を表示しますが、読み取り専用にします。
属性の制約: GetServerPreGeneratedValue および GetImmutableConstraint
例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
<Value algorithm="com.ptc.core.rule.server.impl.
GetImmutableConstraint"/>
</AttrConstraint>
• 目的の動作: オブジェクトが作成されたときに「(生成済み)」と表示して値を設定します。
属性の制約: GetServerAssignedConstraint および GetImmutableConstraint
例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.
GetImmutableConstraint"/>
</AttrConstraint>
• 目的の動作: 標準セキュリティラベルでは、ドロップダウンリストに表示される値を指定した値に制限します。カスタムセキュリティラベルでは、テキストボックスに任意の値を入力できるようにする代わりに、ドロップダウンリストに特定の値のみをリストします。
属性の制約: GetDiscreteSetConstraint
例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>NULL</Arg>
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetDiscreteSetConstraint">
<Arg>INT</Arg>
</Value>
</AttrConstraint>
• 目的の動作: 標準セキュリティラベルでは、ドロップダウンリストに Null 値 (無制限) 以外のデフォルト値を表示します。カスタムセキュリティラベルでは、テキストボックスにデフォルト値をリストします。
属性の制約: GetServerPreGeneratedValue
例:
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
• 目的の動作: 複数の値をサポートしている標準セキュリティラベルについては、デフォルト値を設定し、値を読み取り専用で表示します。標準セキュリティラベルに対して定義されている複数の値は、引数タグでは常にコンマで区切られます。
属性の制約: GetServerPreGeneratedValue および GetImmutableConstraint
例:
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>
</AttrConstraint>
• 目的の動作: 複数の値をサポートしている標準セキュリティラベルについては、ドロップダウンリストに null (無制限) 値以外のデフォルト値を表示します。標準セキュリティラベルに対して定義されている複数の値は、引数タグでは常にコンマで区切られます。
属性の制約: GetServerPreGeneratedValue
例:
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
</AttrConstraint>
• 目的の動作: 複数の値をサポートしている標準セキュリティラベルについては、(生成済み) を表示し、オブジェクトの作成時に値を設定します。標準セキュリティラベルに対して定義されている複数の値は、引数タグでは常にコンマで区切られます。
属性の制約: GetServerAssignedConstraint
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
</AttrConstraint>