初期のグループ、チーム、メンバー、およびアクセス許可の構成
グループおよびアクセス許可のプラグイン ファイルを使用すると、チーム プロジェクトの初期のセキュリティ設定を構成できます。 具体的には、セキュリティ グループを作成するタスク、グループを入れ子にするタスク、グループをチームとして定義するタスク、チームの初期設定を構成するタスク、グループにメンバーを割り当てるタスク、および各グループに特定のアクセス許可を許可または拒否するタスクを定義します。 これらのタスクを実行することに加え、コレクション レベル、プロジェクト レベル、およびプロジェクト分類の各領域の最初のセキュリティ設定を指定できます。
Microsoft のプロセス テンプレートでは、既定のグループに複数のアクセス許可を割り当てます。 グループおよびアクセス許可のプラグイン ファイルをカスタマイズすることで、これらの割り当てを変更できます。 このプラグインの詳細については、「グループとアクセス許可のプラグインを使用したグループ、チーム、およびアクセス許可の定義」を参照してください。
このトピックの内容
グループの定義とグループへのアクセス許可の割り当て
グループ マクロと既定のグループ
グループの入れ子とグループへのメンバーの割り当て
チームの定義
コレクション レベルのアクセス許可の割り当て
プロジェクト レベルのアクセス許可の割り当て
区分パスを制御するためのアクセス許可の割り当て
イテレーション パスを制御するためのアクセス許可の割り当て
Team Foundation ビルド、Team Foundation バージョン管理、Visual Studio Lab Management など、チーム プロジェクトの機能領域の初期のセキュリティ設定を構成する方法については、「機能領域へのアクセスの制御」を参照してください。
作業項目の種類をカスタマイズしてグループまたはユーザーにアクセスを許可または拒否する方法については、「作業項目フィールドへの規則の適用」を参照してください。
ユーザーおよびグループを管理して Visual Studio アプリケーション ライフサイクル管理 (ALM) へのアクセスを制御する方法の詳細については、「TFS でのユーザーまたはグループの管理」を参照してください。
グループの定義とグループへのアクセス許可の割り当て
group の新しいセキュリティ グループを指定し、そのグループにメンバーを追加するには、member 要素と Team Foundation Server 要素を使用します。 グループおよびそのグループのメンバーにアクセス許可を割り当てるには、グループの permission 要素を使用します。 これらの各要素は、対応するコンテナー要素である groups、members、および permissions の各要素内にカプセル化する必要があります。 これらの各要素には、次の構文構造を使用します。
<group name="Group Name" description="Description of Group"></group>
<member name="MemberName"></member>
<permission name="PermissionName" class="ClassName" allow="True | False"/>
group 要素、member 要素、およびグループの permission 要素の属性を次の表に示します。 これらの要素は、グループおよびアクセス許可プラグイン ファイルでのみ使用します。
要素 |
属性 |
説明 |
---|---|---|
group |
name |
作成するグループの名前を指定します。 |
isTeam |
グループがチームであるか (true)、チームではないか (false) を示します。 |
|
description |
他のユーザー向けにグループの目的を記述します。 |
|
member |
name |
別のグループのメンバーとして追加するグループの名前を指定します。 グループを作成し、次のいずれかの種類のメンバーを事前設定できます。
既定のグループを指定するときに使用する形式については、このトピックで後ほど取り上げる「グループ マクロと既定のグループ」をご覧ください。 |
permission |
name |
適用するアクセス許可を示します。 サポートされているアクセス許可の一覧については、このトピックの以下のセクションを参照してください。
|
class |
グループのアクセス許可を付与するクラス (区分) を示します。 有効な値は、次のとおりです。
|
|
allow |
true と false のいずれかの値を使用して、アクセス許可を許可するか拒否するかを示します。 |
|
path |
アクセス許可を適用する区分パスまたはイテレーション パスのノードを示します。 この属性は、class が CSS_NODE または ITERATION_NODE に設定されている場合のみ有効です。 |
グループ マクロと既定のグループ
Team Foundation Server で定義されている既定のグループを指定するために使用できるマクロを次の表に示します。
注意
この表に示すマクロは、グループおよびアクセス許可のプラグインでのみ指定できます。ビルド、バージョン コントロール、またはラボ管理のプラグインを使用してアクセス許可を割り当てるときにこれらのマクロを指定することはできません。
既定のグループ |
マクロ |
---|---|
プロジェクト コレクション管理者 |
[SERVER]\$$PROJECTCOLLECTIONADMINGROUP$$ [SERVER]\$$TEAMFOUNDATIONADMINGROUP$$ $$COLLECTIONADMINGROUP$$ |
プロジェクト コレクション サービス アカウント |
[SERVER]\$$PROJECTCOLLECTIONSERVICESGROUP$$ |
プロジェクト コレクション ビルド サービス アカウント |
[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$ $$COLLECTIONBUILDSERVICESGROUP$$ |
プロジェクト コレクション ビルド管理者 |
[SERVER]\$$PROJECTCOLLECTIONBUILDADMINSGROUP$$ $$COLLECTIONBUILDADMINISTRATORSGROUP$$ |
プロジェクト管理者 |
$$PROJECTADMINGROUP$$ [$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$ [$$PROJECTNAME$$]\Builders |
プロジェクト作成者 |
$$CREATOR_OWNER$$ @creator |
既定のチーム |
@defaultTeam |
例: グループの入れ子とグループへのメンバーの割り当て
TestGroup1、TestGroup2、および TestGroup3 という名前のグループを構成する方法を次の例に示します。 この例では、TestGroup1 を TestGroup2 のメンバーとして追加します。 このコードを有効にするには、TestGroup2 を定義する前に TestGroup1 を定義する必要があります。
<task id="GroupCreation1">
<taskXml>
<groups>
<group name="TestGroup1" description="Test group 1. Contains no members out of the box.">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
</permissions>
</group>
<group name="TestGroup2" description="Test group 2. Contains TestGroup1 and Project Administrators.">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
</permissions>
<members>
<member name="TestGroup1" />
<member name="$$PROJECTADMINGROUP$$" />
</members>
</group>
<group name="TestGroup3" description="Test group 3. Contains DOMAIN\USER, DOMAIN\GROUP, Project Administrators, and Project Collection Build Service Accounts.">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
</permissions>
<members>
<member name="DOMAIN\USER" />
<member name="DOMAIN\GROUP" />
<member name="[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$" />
<member name="[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$" />
</members>
</group>
</groups>
</taskXml>
</task>
チームの定義
グループの作成に加えて、グループをチームとして割り当てることができます。 チーム プロジェクトを作成すると、既定のチームも作成されます。 作業を他のチームとは別に整理する必要がある複数のチームが存在する場合、グループおよびアクセス許可プラグイン ファイル内でこれらのチームを定義することも、チーム プロジェクトを作成した後でこれらのチームを構成することもできます。 「別のチームまたはチーム階層の追加」を参照してください。
グループをチームとして構成する方法を次の例に示します。 この例では、Dream Team というグループをチームとして指定し、チーム プロジェクト作成者をチームのメンバーとして追加します。 チームについて指定するすべてのイテレーション パスは、分類プラグイン ファイルで定義されている必要があります。 「分類プラグインの定義」を参照してください。
<group name="Dream Team" isTeam="true" description="Next generation work">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
</permissions>
<members>
<member name="@creator"/>
</members>
<teamSettings areaPath="Area">
<iterationPaths backlogPath="Iteration">
<iterationPath path="Release 1\Sprint 1" />
<iterationPath path="Release 1\Sprint 2" />
<iterationPath path="Release 1\Sprint 3" />
<iterationPath path="Release 1\Sprint 4" />
<iterationPath path="Release 1\Sprint 5" />
<iterationPath path="Release 1\Sprint 6" />
</iterationPaths>
</teamSettings>
</group>
コレクション レベルのアクセス許可の割り当て
コレクション レベルのアクセス許可を割り当てるには、グループの permission 要素と NAMESPACE クラスを使用します。 これらのアクセス許可では、チーム プロジェクト全体で使用できるリソースに対するアクセスを制御します。 コレクション レベルのアクセス許可は、次のカテゴリのユーザーに対してのみ設定できます。
プロジェクト コレクション管理者などのコレクション レベルのユーザーおよびグループ
Team Foundation を実行するサーバーでコレクション レベルに追加されたプロジェクト レベルのグループ
コレクション レベルに作成および追加されたカスタム グループ
グループを指定するときに使用する形式については、このトピックで既に取り上げた「グループ マクロと既定のグループ」をご覧ください。
注意
これらのアクセス許可は、チーム エクスプローラーでサーバーを右クリックし、[セキュリティ] をクリックして設定できます。また、Team Foundation の管理コンソールを開いて使用するか、コマンド ライン ツールの TFSSecurity および tf を使用して設定することもできます。詳細については、「コレクション レベル グループ」、「TFSSecurity を使用したグループとアクセス許可の変更」、および「Permission Command」を参照してください。
チーム プロジェクトのプロジェクト管理者にコレクション レベルのアクセス許可を付与する方法を次の例に示します。
<group name="PROJECTADMINGROUP" description="Members of this group can add, modify, and delete items within the team project.">
<permissions>
<permission name="GENERIC_READ" class="NAMESPACE" allow="true" />
<permission name="WORK_ITEM_WRITE" class="NAMESPACE" allow="true" />
<permission name="MANAGE_LINK_TYPES" class="NAMESPACE" allow="true" />
<permission name="MANAGE_TEMPLATE" class="NAMESPACE" allow="true" />
<permission name="MANAGE_TEST_CONTROLLERS" class="NAMESPACE" allow="true" />
</permissions>
</group>
割り当てることができるコレクション レベルのアクセス許可を次の表に示します。
注意
既定では、コレクション レベルのアクセス許可は MSF プロセス テンプレートで割り当てられません。
アクセス許可 |
説明 |
---|---|
DIAGNOSTIC_TRACE |
[トレース設定の変更]。 Team Foundation Server の Web サービスに関するより詳細な診断情報を収集するためのトレースの設定を変更できます。 |
CREATE_PROJECTS |
[新しいプロジェクトの作成]。 チーム プロジェクト コレクションでプロジェクトを作成できます。 |
GENERIC_WRITE |
[コレクションレベル情報の編集]。 チーム プロジェクト コレクションのユーザーおよびグループに対するコレクション レベルのアクセス許可を編集できます。 このアクセス許可を持つユーザーは、次のタスクを実行できます。
さらに、このアクセス許可を持つユーザーは、バージョン コントロールのアクセス許可を変更することができ、バージョン コントロールのすべてのファイルに対する書き込みアクセスを持ちます。ただし、他のアクセス許可によってそれらのアクセスが明示的に拒否されている場合は除きます。 |
MANAGE_TEMPLATE |
[プロセス テンプレートの管理]。 チーム プロジェクト コレクションのプロセス テンプレートをダウンロード、作成、編集、およびアップロードできます。 |
MANAGE_TEST_CONTROLLERS |
[テスト コントローラーの管理]。 チーム プロジェクト コレクションのテスト コントローラーを登録および登録解除できます。 |
MANAGE_LINK_TYPES |
[作業項目リンクの種類の管理]。 作業項目のリンクの種類を追加、削除、および変更できます。 |
GENERIC_READ |
[コレクションレベル情報の表示]。 コレクション レベルのグループのメンバーシップ、およびそれらのユーザーのアクセス許可を参照できます。 |
プロジェクト レベルのアクセス許可の割り当て
プロジェクト レベルのアクセス許可は、グループおよびアクセス許可プラグイン ファイルで割り当てることができます。 これらのアクセス許可を割り当てるには、グループの permission 要素と PROJECT クラスを使用します。 これらのアクセス許可では、1 つのプロジェクトのリソースに対するアクセスを制御します。 Windows のユーザーおよびグループ、Team Foundation のグループ、グループおよびアクセス許可プラグイン ファイルで既に定義したグループにアクセスを許可できます。 グループを指定するときに使用する形式については、このトピックで既に取り上げた「グループ マクロと既定のグループ」をご覧ください。
チーム プロジェクトの貢献者グループにいくつかのアクセス許可を付与する方法を次の例に示します。
<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
<permission name="DELETE_TEST_RESULTS" class="PROJECT" allow="true" />
<permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
<permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
<permission name="MANAGE_TEST_ENVIRONMENTS" class="PROJECT" allow="true" />
<permission name="MANAGE_TEST_CONFIGURATIONS" class="PROJECT" allow="true" />
</permissions>
</group>
割り当てることができるプロジェクト レベルのアクセス許可と、MSF プロセス テンプレートで行われる既定の割り当てを次の表に示します。
アクセス許可 |
説明 |
Readers |
貢献者 |
ビルド管理者 |
---|---|---|---|---|
GENERIC_READ |
[プロジェクトレベル情報を表示します]。 プロジェクト レベルのグループのメンバーシップ、およびそれらのメンバーのアクセス許可を参照できます。 |
|||
VIEW_TEST_RESULTS |
[テストの実行を表示する]。 このノードのテスト計画を参照できます。 |
|||
MANAGE_TEST_CONFIGURATIONS |
[テスト構成の管理]。 チーム プロジェクトのテスト構成を作成および削除できます。 |
|||
MANAGE_TEST_ENVIRONMENTS |
[テスト環境の管理]。 チーム プロジェクトのテスト環境を作成および削除できます。 |
|||
PUBLISH_TEST_RESULTS |
[テストの実行を作成します]。 テスト結果を追加および削除したり、チーム プロジェクトのテストの実行を追加または変更したりできます。 |
|||
DELETE_TEST_RESULTS |
[テストの実行を削除します]。 チーム プロジェクトのスケジュールされたテストを削除できます。 |
|||
DELETE |
[チーム プロジェクトを削除します]。 このアクセス許可の対象のプロジェクトを Team Foundation Server から削除できます。 |
|||
GENERIC_WRITE |
[プロジェクトレベル情報を編集します]。 Team Foundation Server のユーザーおよびグループに対するプロジェクト レベルのアクセス許可を編集できます。 |
区分パスを制御するためのアクセス許可の割り当て
区分の定義に対するアクセスを制御するアクセス許可を割り当てるには、グループの permission 要素と CSS_NODE クラスを使用します。 これらのアクセス許可では、1 つのプロジェクトの分類構造に対するアクセスを制御します。 Windows のユーザーおよびグループ、Team Foundation のグループ、グループおよびアクセス許可プラグイン ファイルで既に定義したグループにアクセスを許可できます。 グループを指定するときに使用する形式については、このトピックで既に取り上げた「グループ マクロと既定のグループ」をご覧ください。
チーム プロジェクトの貢献者グループにいくつかのアクセス許可を付与する方法を次の例に示します。
<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
<permissions>
<permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
<permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
<permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
<permission name="MANAGE_TEST_PLANS" class="CSS_NODE" allow="true" />
</permissions>
</group>
プロジェクトの区分ノードとイテレーション ノードの階層構造に対するアクセスを制御するために割り当てることができるアクセス許可を次の表に示します。 また、MSF プロセス テンプレートで行われる既定の割り当ても示します。
注意
作業項目を追跡するための操作には、複数のアクセス許可が必要なものもあります。たとえば、ノードの削除には複数のアクセス許可が必要です。
アクセス許可 |
説明 |
Readers |
貢献者 |
ビルド管理者 |
---|---|---|---|---|
GENERIC_READ |
[このノードを表示します]。 区分ノードのセキュリティ設定を参照できます。 |
|||
WORK_ITEM_READ |
[このノードの作業項目を表示します]。 区分ノードに割り当てられている作業項目を参照できます。ただし、変更はできません。 |
|||
WORK_ITEM_WRITE |
[このノードの作業項目を編集します]。 区分ノードに割り当てられている作業項目を編集できます。 |
|||
MANAGE_TEST_PLANS |
[テスト計画の管理]。 区分ノードに割り当てられる作業項目を作成および編集できます。 テスト計画が実行されていない場合は、削除することもできます。 |
|||
CREATE_CHILDREN |
[子ノードを作成し、順序を付けます]。 区分ノードを作成できます。 このアクセス許可と GENERIC_WRITE アクセス許可の両方を持つユーザーは、子区分ノードを移動したり並べ替えたりできます。 |
|||
DELETE |
[このノードを削除します]。 区分ノードを削除できます。 このアクセス許可と、別のノードに対する GENERIC_WRITE アクセス許可の両方を持つユーザーは、区分ノードの削除と、削除したノードの既存の作業項目の再分類を実行できます。 削除されたノードに子ノードがある場合、それらのノードも削除されます。 |
|||
GENERIC_WRITE |
[このノードを編集します]。 区分ノードのアクセス許可を設定したり、区分ノードの名前を変更したりできます。 |
イテレーション パスを制御するためのアクセス許可の割り当て
イテレーション パスに対するアクセスを制御するアクセス許可を割り当てるには、グループの permission 要素と ITERATION_NODE クラスを使用します。 これらのアクセス許可では、1 つのプロジェクトのマイルストーン リリース (イテレーション) に対するアクセスを制御します。 Windows のユーザーおよびグループ、Team Foundation のグループ、グループおよびアクセス許可プラグイン ファイルで既に定義したグループにアクセスを許可できます。 グループを指定するときに使用する形式については、このトピックで既に取り上げた「グループ マクロと既定のグループ」をご覧ください。
チーム プロジェクトの貢献者グループにいくつかのアクセス許可を付与する方法を次の例に示します。
<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
<permissions>
<permission name="GENERIC_READ" class="ITERATION_NODE" allow="true" />
<permission name="GENERIC_WRITE" class="ITERATION_NODE" allow="true" />
<permission name="CREATE_CHILDREN" class="ITERATION_NODE" allow="true" />
</permissions>
</group>
プロジェクトのイテレーション ノードの階層構造に対するアクセスを制御するために割り当てることができるアクセス許可を次の表に示します。 MSF プロセス テンプレートでは ITERATION_NODE アクセス許可は指定されないため、すべてのチーム メンバーがイテレーション ノードを作成、表示、および削除できます。
注意
作業項目を追跡するための操作には、複数のアクセス許可が必要なものもあります。たとえば、ノードの削除には複数のアクセス許可が必要です。
アクセス許可 |
説明 |
---|---|
GENERIC_READ |
[このノードを表示します]。 ノードのセキュリティ設定を参照できます。 |
CREATE_CHILDREN |
[子ノードを作成し、順序を付けます]。 イテレーション ノードを作成できます。 このアクセス許可と GENERIC_WRITE アクセス許可の両方を持つユーザーは、イテレーション ノードを移動したり並べ替えたりできます。 |
DELETE |
[このノードを削除します]。 イテレーション ノードを削除できます。 このアクセス許可と、別のノードに対する GENERIC_WRITE アクセス許可の両方を持つユーザーは、イテレーション ノードの削除と、削除したノードの既存の作業項目の再分類を実行できます。 削除されたノードに子ノードがある場合、それらのノードも削除されます。 |
GENERIC_WRITE |
[このノードを編集します]。 イテレーション ノードのアクセス許可を設定したり、ノードの名前を変更したりできます。 |