グループとアクセス許可のプラグインを使用したグループ、チーム、およびアクセス許可の定義
セキュリティ グループを定義すると、チーム プロジェクト内の機能領域へのアクセスを制御できます。 Visual Studio Team Foundation Server での既定のセキュリティ グループ以外にも、グループおよびアクセス許可のプラグインをカスタマイズすることで、チーム プロジェクトの初期のグループ、グループ メンバー、およびセキュリティ アクセス許可を構成できます。 このプラグインを使用すると、グループやチームの定義、グループとユーザーのグループへの追加 (メンバーとして)、グループへのアクセス許可の付与を行うことができます。
ここでは、グループとアクセス許可のプラグインのファイルで使用される groups、iterationPath、members、permissions、および teamsettings の各要素の構文構造について説明します。 これらの要素を使用する方法の詳細については、「初期のグループ、チーム、メンバー、およびアクセス許可の構成」を参照してください。
グループ プラグインの名前と場所
グループとアクセス許可のプラグインは、GroupsandPermissions.xml プラグイン ファイルで定義されます。このファイルは、Gss.xsd ファイルで定義されるスキーマ定義に従っている必要があります。 プロセス テンプレートのスキーマ ファイルは、Microsoft Web サイトの「Process Template and Work Item Schemas for Visual Studio Team Foundation (Visual Studio Team Foundation のプロセス テンプレート スキーマと作業項目スキーマ)」でダウンロードできます。
次の表に、MSF (Microsoft Solutions Framework) 用のプロセス テンプレートのファイル、フォルダー、およびプラグインの名前を示します。
ファイル名: |
GroupsandPermissions.xml |
フォルダー名: |
Groups and Permissions |
プラグイン名: |
Microsoft.ProjectCreationWizard.Groups |
注意
この XML ファイルとフォルダーの名前は変更できますが、プラグインの名前は変更できません。Visual Studio Team Foundation Server には、クライアント側のプラグイン、ポリシー、その他の変更を配置する機構は含まれていません。このような機能を配置するには、配布とインストールを行う独自のプログラムを使用する必要があります。
グループとアクセス許可のプラグインでは、1 つまたは複数のタスクとその依存関係を taskXml 要素内で指定します。 一般には、プロセスに対して、1 つのセキュリティ グループにつき 1 つのタスクを作成するよう指定します。 これらのタスクを指定する方法の詳細については、「プラグインを処理するタスクの定義」を参照してください。
グループの定義
group の新しいセキュリティ グループを指定するには、Team Foundation Server 要素を使用します。
<group name="GroupName" description="GroupDescription"></group>
Reader という名前のグループを作成する方法の例を次に示します。
<task id="GroupCreation1"
name="Create Groups and Permissions"
plugin="Microsoft.ProjectCreationWizard.Groups"
completionMessage="Groups and Permissions created.">
<taskXml>
<groups>
<group name="Readers"
description="A group for users who have read access across the project">
<permissions>
<!-- permissions -->
</permissions>
</group>
</groups>
</taskXml>
</task>
メンバーの定義
グループを member のセキュリティ グループのメンバーとして割り当てるには、Team Foundation Server 要素を使用します。
<member name="MemberName" ></member>
注意
チームである (isTeam="true") グループを、グループのメンバーにすることはできません。
TestGroup1 を TestGroup2 のメンバーとして追加する方法の例を次に示します。
<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>
</groups>
</taskXml>
</task>
チームとチーム設定の定義
既定のグループおよびアクセス許可プラグイン ファイル内で、@defaultTeam マクロは、ルート区分パスに既定のチームを作成します。 分類プラグイン ファイル内に追加の区分パスを含めることによって、この構造を変更できます。 teamsettings 要素を使用して、チームに割り当てられるイテレーションをあらかじめ構成できます。 このプラグインは、次のコード スニペットを使用します。 この例では、3 つのイテレーションが既定のチーム用に定義されます。
重要
分類プラグイン ファイルで定義されたパスに対応するイテレーション パスを割り当てる必要があります。「分類プラグインの定義」を参照してください。
<group name="@defaultTeam">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
</permissions>
<members>
<member name="@creator"/>
</members>
<teamSettings areaPath="Area">
<iterationPaths backlogPath="Iteration">
<iterationPath path="Iteration 1" />
<iterationPath path="Iteration 2" />
<iterationPath path="Iteration 3" />
</iterationPaths>
</teamSettings>
</group>
また、チーム プロジェクト内で追加のチームを定義できます。 これを行うには、グループを定義して isTeam 属性を true に設定します。 次の例に、チームとそのアクセス許可、メンバー、および最初のスプリントの割り当てを定義する方法を示します。 チーム プロジェクトに対して既定のチーム設定を指定します。
<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="Iteration 1" />
<iterationPath path="Iteration 2" />
<iterationPath path="Iteration 3" />
</iterationPaths>
</teamSettings>
</group>
アクセス許可の定義
作成した各グループにアクセス許可を指定する必要があります。 それには、permission 要素を使用します。
<permission name="PermissionName" class="ClassName" allow="true | false"/>
次の例は、Reader セキュリティ グループに対して、メンバーがチーム プロジェクトに関する情報を参照できるが変更はできないようにアクセス許可を与える方法を示しています。
<group name="Readers" description="A group for users who have read access across the project">
<permissions>
<permission name="GENERIC_READ" class="PROJECT" allow="true" />
<permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
<permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
</permissions>
</group>
グループ要素リファレンス
チーム プロジェクトの初期のグループとアクセス許可の定義に使用する要素を次の表に示します。 これらの要素は、グループおよびアクセス許可のプラグイン ファイルの taskXml コンテナー要素内に指定します。 この要素の詳細については、「プラグインを処理するタスクの定義」を参照してください。
注意
Gss.xsd スキーマ ファイルでは、property 要素または properties 要素は定義されません。プロセス テンプレートをアップロードすると、これらの要素はプロセス テンプレート マネージャーによって検証された後に Team Foundation Server に保存されます。
groups 要素および group (グループおよびアクセス許可) 要素は、groups 要素および group (プロセス テンプレート) 要素とは異なります。後者の要素のペアの詳細については、「プロセス テンプレート XML 要素のリファレンス」を参照してください。
group |
以下の定義が各属性に適用されます。
|
group は、groups および Children の省略可能な子要素です。 グループまたはチームと、そのアクセス許可およびメンバーを定義します。 |
groups |
|
groups は、グループおよびアクセス許可のプラグインの taskXml に必須の子要素です。 グループおよびアクセス許可の定義を含みます。 |
iterationPath |
|
iterationPath は iterationPaths に必須の子要素です。 チームのマイルストーンを指定します。 |
iterationPaths |
|
iterationPaths は、teamsettings の子要素で、省略可能な要素です。 チームのマイルストーンを指定します。 |
member |
既定のグループを指定する方法については、「グループ マクロと Team Foundation Server で定義されている既定のグループ」を参照してください。 |
member は members に必須の子要素です。 別のグループのメンバーとして追加するグループの名前を指定します。 グループを作成し、そのグループに Team Foundation Server の既定グループ、以前に定義したプロジェクト グループ、および Active Directory のグループとユーザーのデータを自動的に設定することができます。 |
members |
|
members は、group の子要素で、省略可能な要素です。 グループに追加されるメンバーのコレクションを指定します。 |
permission |
各属性に適用する定義は次のとおりです。
|
permission は permissions に必須の子要素です。 グループに適用されるアクセス許可を指定します。 |
permissions |
|
permissions は group に必須の子要素です。 グループに適用されるアクセス許可のコレクションを指定します。 |
teamsettings |
|
teamsettings は、group の子要素で、省略可能な要素です。 チーム プロジェクトを既定のチームとして構成し、必要に応じて iterationPath 要素でチームのマイルストーンを指定します。 |