高度なカスタマイズ > ビジネスロジックのカスタマイズ > セキュリティラベルのカスタマイズ > セキュリティラベルのカスタマイズ
  
セキュリティラベルのカスタマイズ
Windchill ではカスタムセキュリティラベルと標準セキュリティラベルの 2 つのタイプのセキュリティラベルを使用できます。標準セキュリティラベルとカスタムセキュリティラベルは必ず Null (制限なし) ラベル値を持ち、その他に 1 つ以上のラベル値を持つことができます。Null 以外のラベル値を定義することで、そのラベル値のアクセス権が付与されたユーザーだけにアクセスを許可できます。アクセス権が付与されたユーザーを "承認された参加者" と呼びます。すべてのユーザーに対してアクセス権を付与するセキュリティラベル値を、単なる情報マークとして使用できます。
標準セキュリティラベルには、null と null 以外の値からなる事前定義セットが標準セキュリティラベルの設定時に設定されます。標準セキュリティラベルをオブジェクトに適用する場合、ユーザーは null またはこれらの事前に定義されている null 以外の値のいずれかをドロップダウンリストから選択します。各オブジェクトには設定されている標準セキュリティラベルごとに値を 1 つだけ適用できます。
カスタムセキュリティラベルには値が事前に定義されていません。カスタムセキュリティラベルをオブジェクトに適用する場合、ユーザーはテキストフィールドにカスタムセキュリティラベルの値を入力するか、テキストフィールドを空白のままにすることで null の値を指定します。カスタム値のセットが多すぎるか複雑すぎて事前に定義できなかったり、Windchill の外で作成されていたりすることがあります。テキストフィールド内の外部表示値と Windchill に保管されている内部値の間でカスタムセキュリティラベル値を変換する方法をカスタマイズできます。さらに、カスタムセキュリティラベルまたは標準セキュリティラベルの各セキュリティラベル値から承認された参加者を決定する方法や、各セキュリティラベル値の修正が許可される参加者の決定方法をカスタマイズできます。
これらのカスタマイズにより、セキュリティラベル値で規定されるアクセス権が参加者に対して付与されているかどうかを判断するためのユーザーデータが含まれている可能性のある別のシステムに Windchill システムをリンクできます。たとえば、各会社との取引に異なる機密保持契約 (NDA) を結んでほかの会社と協働できます。NDA に同意したユーザーは、その NDA 内の参加者を表す Windchill グループに自動的に追加されます。複数の会社間の取引もあるため、共同開発製品のすべての Windchill データへの完全なアクセス権を得るため、ユーザーはすべての NDA グループのメンバーになる必要があります。
セキュリティラベルを使用してこのシナリオを進めるには、標準セキュリティラベルによって提供される設定済みの値のリストではなく複数の NDA グループを表すことが可能な値を許可するカスタムセキュリティラベルを実装できます。カスタムエバリュエータを使用して、参加者が、オブジェクトにアクセスするために必要な各グループのメンバーであるかどうかを調べることもできます。たとえば、自社および会社 A と会社 B との間で共同開発製品が設定されているとします。ユーザーが共同開発製品内のオブジェクトにアクセスするためには、会社 A の NDA グループと会社 B の NDA グループの両方のメンバーである必要があります。製品内のオブジェクトには、値 CompanyA、CompanyB を持つ Third Party Proprietary というカスタムセキュリティラベルが適用されています。カスタムセキュリティラベル値は、セキュリティラベル値を修正可能なユーザーが、ユーザーインタフェースに表示されるテキストボックスにテキスト文字列として入力します。カスタムセキュリティラベルはオブジェクト初期化規則を使用して設定することもできます。
* 
このセキュリティラベルは値 CompanyA、CompanyB、および CompanyA-CompanyB が事前に定義された標準ラベルとして定義することも可能です。ただし、取引先の会社の数が多く、取引先の会社が頻繁に変わる場合、特定のオブジェクトに適用可能な会社と NDA の組み合わせをすべて事前に定義しておくことは現実的ではありません。
Third Party Proprietary カスタムセキュリティラベルの承認された参加者はカスタムエバリュエータクラスを使用して決定されます。Third Party Proprietary ラベルが適用されているオブジェクトへのアクセスをユーザーが試みると、カスタムエバリュエータクラスはそのユーザーがそのセキュリティラベル値に関連付けられている適切なグループのメンバーであるかどうかを判別し、そのユーザーがそのセキュリティラベルで規定されるアクセス権を付与されてそのオブジェクトに続けてアクセス可能であるかどうかを示す true または false の値を返します。
カスタムエバリュエータクラスを使用して、オブジェクトに適用されているセキュリティラベル値を修正可能な参加者を決定することもできます。自社と会社 A との間の契約に精通していないユーザーには、オブジェクトに対する Third Party Proprietary セキュリティラベルの設定を修正させたくない場合があります。オブジェクトのライフサイクル状態に基づいて、オブジェクトのセキュリティラベル値をユーザーが変更できないようにすることができます。たとえば、リリース済み状態のオブジェクトでは値の修正を制限するカスタムエバリュエータを作成できます。カスタムセキュリティラベルまたは標準セキュリティラベルに対してカスタムエバリュエータクラスを使用することで、特定のセキュリティラベルの値を修正可能な参加者を指定できます。
次のカスタマイズによって、セキュリティラベルの動作を変更できます。
securityLabelsConfiguration.xml ファイルにカスタムセキュリティラベルを追加する。
カスタムトランスレータクラスを使用して、外部カスタムセキュリティラベル値と内部カスタムセキュリティラベル値との間で変換する。
カスタムエバリュエータクラスを使用して、そのセキュリティラベル値の承認された参加者と、セキュリティラベル値を修正可能な参加者を指定する。
* 
カスタムエバリュエータクラスは標準セキュリティラベルとカスタムセキュリティラベルの両方に使用できます。
* 
カスタムエバリュエータクラスとカスタムトランスレータクラスを実装する際、カスタムクラスのメソッドが Windchill によって頻繁に呼び出されるため、パフォーマンスが低下する可能性があります。外部システムに対する呼び出しを設定する場合などには、以降のメソッド呼び出しでのパフォーマンスが向上するように、返された値をキャッシュに保存することなどを検討してください。
セキュリティラベルの詳細については次のトピックを参照してください。
セキュリティラベル
セキュリティラベルの設定