ポリシー管理ユーティリティでの規則の適用
すべてのライフサイクル状態を対象に、PTC FlexPLM オブジェクトに対する規則を作成する必要があります。PTC FlexPLM は、ライフサイクル状態に固有のアクセス制御リストをサポートしません。特定のライフサイクル状態を対象に作成された規則は、矛盾する結果が生じる原因になるので、サポートされません。
サブタイプ (またはルートタイプ) をインスタンス化不可に設定する場合(PTC FlexPLM 内で選択不可にするため)、そのサブタイプを「ポリシー管理」ユーティリティで表示できるように、wt.admin.hierarchyListAdditions.wt.access.PolicyAccessControlled プロパティに追加する必要があります。
• site.xconf ファイルにエントリを追加して、コマンド xconfmanager -p を実行します。
• エントリは、次に示すフォーマットに従う必要があります。
<AddToProperty
name="wt.admin.hierarchyListAdditions.wt.access.PolicyAccessControlled"
value="fully qualified class name"/>
次に例を示します。
<AddToProperty
name="wt.admin.hierarchyListAdditions.wt.access.PolicyAccessControlled"
value="com.lcs.wc.planning.FlexPlan"/>
PTC FlexPLM でのポリシー管理に関する要件は、Windchill の「ポリシー管理」ユーティリティで許可されるものよりも厳密です。
アクセス制御リストの共通規則
これらの規則は、PTC FlexPLM と Windchill PDMLink の両方に当てはまります。
• アクセス制御リストの明示的な付与または拒否は、タイプとそのサブタイプすべてに適用されます。
例 1:
◦ 「タイプおよび属性の管理」ユーティリティでのタイプ構造:
◦ 「ポリシー管理」ユーティリティでのアクセス規則:
この例では、読み取りアクセス許可が付与されています。「色」タイプに対して作成された規則がこの 1 つのみの場合、「Retail」グループのユーザーは「色」タイプと「LCSColorSubtype1」の両方への表示アクセスが可能です (「LCSColorSubtype1」は「色」タイプから規則を継承するため)。
• 特定のプリンシパルに規則を適用した場合に、そのプリンシパルがグループならば、規則はそのグループのメンバーすべてに適用されます。サブグループ (グループのメンバーであるグループ) がある場合は、サブグループのすべてのメンバー (配下のすべてのサブグループを含む) にも規則が適用されます。
例 1 では、「Retail」グループのメンバー、または「Retail」グループのサブグループ (「Retail」のメンバーであるグループ) のメンバーであるすべてのユーザーに、「色」タイプとそのサブタイプへの表示アクセス許可が与えられます。
• 特定のタイプまたはその親に対する、特定の作成、読み取り、更新、または削除の操作に付与規則が明示的に付与されていない場合は、そのアクセスの拒否とみなされます。
例 1 では、読み取りアクセス許可のみが付与されます。作成、修正、および削除は、明示的に付与または拒否されていません。「色」タイプに対して作成された規則がこの 1 つのみである場合は、「Retail」グループのユーザーには「色」タイプと「LCSColorSubtype1」への表示アクセス許可が与えられます。「色」タイプに対する作成、修正、または削除のアクセス許可は与えられません。
• 2 つの明示的に作成された規則が同じタイプに解決される場合は、拒否規則が優先されます。明示的な拒否規則は、明示的な付与規則より優先されます。たとえば、「色」タイプと「LCSColorSubtype1」の場合、「Retail」グループには「色」タイプに対する読み取りアクセス許可が与えられます。「Retail」グループのメンバーである「GroupC」は、「LCSColorSubtype1」に対する読み取りアクセスを拒否されます。ユーザーが「GroupC」に属する場合、ユーザーはアクセスを拒否されます。
例 2:
◦ グループとユーザーのメンバーシップ: 「Retail」グループには、グループ「GroupA」と「GroupC」が含まれています。「GroupA」には、メンバーとして「userA」が含まれています。「GroupC」には、メンバーとして「groupA」と「userC」が含まれています。
◦ 「タイプおよび属性の管理」ユーティリティでのタイプ構造:
◦ 「ポリシー管理」ユーティリティでのアクセス規則:
例 2 では、「GroupC」に「色」タイプに対する表示アクセス許可が明示的に付与されています。「GroupA」のメンバーに対して表示アクセスを拒否する規則もあります。「GroupA」のメンバーには、「GroupC」のメンバーとして「色」タイプへのアクセス許可が付与されますが (「GroupA」は「GroupC」のメンバーであるため)、「色」タイプへのアクセスは拒否されます。これは、明示的な拒否規則が付与規則より優先されるからです。「GroupC」に属する、「GroupA」のメンバーではないほかのユーザーには、読み取りアクセス許可が与えられます。
サブタイプへのアクセス
Windchill PDMLink では、次の条件が当てはまる場合に、サブタイプにアクセス許可を付与できます。
• 親タイプにアクセス許可が付与されていて、そのアクセスを拒否するほかの規則がない (サブタイプまたはその親のいずれかに直接)。
• サブタイプの親タイプに対して特定のアクセス許可が付与または拒否されておらず (たとえば、null のアクセス許可)、アクセスがサブタイプに明示的に付与されている。
PTC FlexPLM では、ルートタイプにアクセス許可が付与されていて、特定のユーザーのアクセス許可を除去する、ルートタイプから (それを含む) サブタイプへの明示的な拒否アクセス許可が存在しなければ、サブタイプへのアクセスが許可されます。
• 特定のタイプに対して、特定の作成、読み取り、更新、または削除の各操作を対象とするアクセス許可が付与されていない場合は、そのタイプのどのサブタイプに対してもそのアクセス許可は付与されません。サブタイプへのアクセス許可を取得するには、すべての親タイプへのアクセス許可が必要です。
• 拒否規則が適用されると、特定のタイプと、規則が指定された対象のタイプのサブタイプすべてに対するアクセスが拒否されます。
• サブタイプに対してアクセス許可が付与されても、親タイプに明示的な拒否が適用されていれば、アクセス許可は追加されません (親タイプの親がアクセス許可を付与する場合でも)。
例 3:
• 「タイプおよび属性の管理」ユーティリティでのタイプ構造:
• 「ポリシー管理」ユーティリティでのアクセス規則:
例 3 では、「Retail」グループのユーザーに、「色」タイプに対する表示アクセス許可が明示的に付与されています。これらのユーザーは、「LCSColorSubtype1」に対する表示アクセスを明示的に拒否されています。この結果、「Retail」グループのユーザーには、「色」タイプに対する表示アクセス許可が付与されますが、「LCSColorSubtype1」または「LCSColorSubtype2」に対しては付与されません。
ルートタイプのアクセス許可
ルートタイプでアクセス許可を付与した後、拒否規則を使用してアクセスをさらに詳細に設定できます。特定のタイプに対してアクセスが拒否されると (特定のユーザーに対して適用)、すべてのサブタイプのアクセスも拒否されます。
タイプおよびグループの構成の例:
この図の左側には、部分タイプ構造が示されています。図では、タイプ構造は「Accessories」および「Footwear」タイプに対して反復されると仮定しています。
• 「ルート/Apparel/Mens」タイプに対しては、「Mens Apparel」グループのユーザーのみにアクセス許可が付与されます。
• 「ルート/Apparel/Mens」タイプに対しては、「Womens Apparel」グループのユーザーのみにアクセス許可が付与されます。
タイプツリーには「Accessories」タイプと「Footwear」タイプが含まれます。これらは「Apparel」の兄弟であり、左側の図には示されていません。これらのタイプには、関連するグループと類似したグループ規則が適用されています。この例では、図に示されているタイプのアクセス許可のみを設定し、読み取りアクセス許可のみを設定しています。
PTC FlexPLM でこれを実現するためには、2 つのオプションがあります。
• ツリー内のいずれかのタイプに対するアクセス許可を必要とするすべてのユーザーに、ルートタイプへのアクセス許可を付与します。ユーザーまたはグループがアクセスすべきでないサブタイプへのアクセスを制限する、適切な明示的拒否アクセス許可を作成します。
◦ 「Retail」グループに対して、ルートタイプへの読み取りアクセス許可を付与する規則を作成します。このアクセス許可の付与は、すべてのサブタイプに適用されます。アクセス許可の付与をここで終了した場合は、「Retail」グループのすべてのユーザーに対して、すべてのタイプのアクセスが開放されます。
◦ 「Accessories」グループに、「ルート/Apparel」タイプへの読み取りアクセス許可を拒否する規則を作成します。
◦ 「Footwear」グループに、「ルート/Apparel」タイプへの読み取りアクセス許可を拒否する規則を作成します。
◦ 「Mens Apparel」グループに、「ルート/Apparel/Womens」タイプへの読み取りアクセス許可を拒否する規則を作成します。
◦ 「Womens Apparel」グループに、「ルート/Apparel/Mens」タイプへの読み取りアクセス許可を拒否する規則を作成します。
• ツリー内のタイプまたはサブタイプのいずれかへのアクセス許可が必要なすべてのユーザーに対して、ルートタイプでの付与規則を作成します。該当するそれぞれのサブタイプへのアクセス許可を付与するユーザー数を減らすには、「逆拒否」規則を作成します。
◦ 「Retail」グループに対して、ルートタイプへの読み取りアクセス許可を付与する規則を作成します。このアクセス許可の付与は、すべてのサブタイプに適用されます。アクセス許可の付与をここで終了した場合は、「Retail」グループのすべてのユーザーに対して、すべてのタイプのアクセスが開放されます。
◦ 「Apparel」グループを除くすべてのユーザーに対して、「ルート/Apparel」タイプへのアクセスを拒否する規則を作成します。
◦ 「Mens Apparel」グループを除くすべてのユーザーに対して、「ルート/Apparel/Mens」タイプへのアクセスを拒否する規則を作成します。
◦ 「Womens Apparel」グループを除くすべてのユーザーに対して、「ルート/Apparel/Womens」タイプへのアクセスを拒否する規則を作成します。
| • どちらのオプションも、構造内の任意のタイプへのアクセスを必要とするすべてのグループが含まれている親グループから始まります。 ◦ この例では「Retail」グループを使用しますが、厳密に必要ではありません。 ◦ ルートへのアクセス許可が付与された後、それぞれのサブタイプでアクセス許可を持つユーザーのリストが拒否規則によって絞り込まれます。その他の付与規則はまったくありません。 • どちらのオプションも、グループ組織を活用して、作成する必要がある規則の数を最小にしています。このようにすることは厳密に必要ではありません。 ◦ 規則を作成する際には、1 つのプリンシパルのみ選択できます。明示的拒否規則を作成または使用する際に、適切なユーザー組織がなければ、個々の規則を追加してポリシーを管理することになり、煩雑です。 ◦ 最初のオプションでは、「Footwear」グループを使用して、「Footwear」へのアクセスを拒否する規則を作成できます。このグループが存在しなければ、2 つの規則が作成されていました。1 つは「Mens Footwear」グループへのアクセスを拒否するもので、もう 1 つは「Womens Footwear」グループへのアクセスを明示的に拒否するものです。組織が少なければ、より多くの規則を作成する必要があります。 • 2 つのオプションは、グループを交差するユーザーの扱いが異なります。 ◦ 最初のオプションは、特定のグループに属するユーザーに対してアクセスを明示的に拒否します。ユーザーが「Mens Accessories」グループと「Mens Apparel」グループに属していて、「Mens Accessories」グループに属するユーザーに対してアクセスが拒否された場合、ユーザーは「Apparel」グループに属していますが、そのユーザーのアクセスは拒否されます。 ◦ 2 番目のオプションは、特定のグループに含まれないユーザーに対してアクセスを拒否します。ユーザーがそのグループに属している場合は、引き続きアクセスが可能です。ユーザーが「Mens Accessories」グループと「Mens Apparel」グループの両方に属していて、「Mens Apparel」グループを除くすべてのグループのアクセスが拒否されている場合、ユーザーが「Mens Accessories」グループに属していても、このユーザーへのアクセスは拒否されません。 |
明示的な拒否の例
• グループとユーザーのメンバーシップ:
◦ 「Retail」グループには、メンバーとして「GroupA」と「GroupB」が含まれます。
◦ 「GroupA」には、メンバーとして「userA」が含まれています。
◦ 「GroupB」には、メンバーとして「userB」が含まれます。
• 「タイプおよび属性の管理」ユーティリティでのタイプ構造:
• 「ポリシー管理」ユーティリティでのアクセス規則:
この例では、「Retail」グループのユーザー (「userA」と「userB」) に、「色」タイプ (LCSColor) に対する表示アクセス許可が付与されます。「GroupA」は、「LCSColorSubtype1」に対する表示アクセスを明示的に拒否されています。「UserB」は、「色」タイプ、「LCSColorSubtype1」、および「LCSColorSubtype2」のオブジェクトを表示できます。「UserA」は、「色」タイプのオブジェクトを表示できますが、「LCSColorSubtype1」または「LCSColorSubtype2」のオブジェクトは表示できません。
逆拒否の例
• グループとユーザーのメンバーシップ:
◦ 「Retail」グループには、メンバーとして「GroupA」、「GroupC」、および「GroupD」が含まれています。
◦ 「GroupA」には、メンバーとして「userA」が含まれています。
◦ 「GroupC」には、メンバーとして「GroupA」と「userC」が含まれています。
◦ 「GroupD」には、メンバーとして「userD」が含まれています。
• 「タイプおよび属性の管理」ユーティリティでのタイプ構造:
• 「ポリシー管理」ユーティリティでのアクセス規則:
この例では、「Retail」グループ (サブグループを含む) のすべてのユーザーに、「色」タイプ (LCSColor) に対する表示アクセス許可が付与されています。また、「GroupC」のメンバーでないすべてのユーザーに対して、「LCSColorSubtype1」へのアクセス許可が拒否されています。これにより、「userA」、「userC」、および「userD」が「色」タイプの色を表示できるようになります。「userD」は「GroupC」のメンバーではないため、「userD」は「LCSColorSubtype1」へのアクセスを拒否され、「userA」と「userC」は引き続き表示アクセスが可能です。
「Retail」グループに対するアクセス制御リストの作成
PTC FlexPLM 内のすべてのユーザーに対してアクセス許可を付与または拒否するには、「Retail」グループに対してアクセス制御リストを作成します (すべての PTC FlexPLM ユーザーがこのグループのメンバーである必要があるため)。
• たとえば、PTC FlexPLM 内のすべてのユーザーに対して「色」タイプへの読み取りアクセス許可を付与する場合は、「Retail」グループへの読み取りアクセス許可を付与する規則を作成します。
• PTC FlexPLM 内の一部のユーザーに対してアクセス許可を付与しない場合は、「Retail」のサブグループに対して規則を作成します。これにより、PTC FlexPLM ユーザーにアクセス許可を付与する一方で、対象ユーザーのセットを適切なユーザーのみに制約できます。
たとえば、「Retail」グループのメンバーとして「Color Users」というグループがあるとします。読み取りアクセス許可を付与するアクセス制御リストは、「Color Users」グループを対象とします。これにより、これらのユーザーのみが「色」の情報を表示できるようになります。
• ルートタイプへのアクセス許可を付与するとともに、規則で明示的に示されている内容より多くのアクセス許可をほかの規則が提供しないようにする場合は、付与する必要があるアクセス許可を付与する規則を作成し、ほかのすべてのユーザーに対してアクセスを拒否する別の規則を作成します。
たとえば、WTObject 上のすべてのユーザーにフルコントロールを付与する規則を作成できます。
| これは、決してしてはならないことの一例です。これにより、明示的に拒否されていないかぎり、システム内のすべてのユーザーがフルアクセス可能になります。 |
このシナリオで、「色」のユーザーのみが色にアクセスできるようにする規則を作成する場合は、2 つの規則を作成します。
◦ 最初の規則は、WTObject に対する規則が除去された場合であっても、付与された許可が残るようにするものです。したがって、「Color Users」グループに読み取りアクセス許可を付与する規則を作成します。
◦ また、ほかのユーザーが「色」タイプにアクセスできないようにするために (すべての規則に対する WTObject の付与によって)、「Color Users」グループを除くすべてのユーザーに対して読み取りアクセス許可を拒否する規則を作成します。
◦ これらの規則を組み合わせることにより、「Color Users」グループ以外のユーザーが、ほかにどのような許可を付与されていても、「色」タイプにアクセスできないようになります。