次の方法で共有


グループとアクセス許可のプラグインを使用したグループ、チーム、およびアクセス許可の定義

セキュリティ グループを定義すると、チーム プロジェクト内の機能領域へのアクセスを制御できます。 Visual Studio Team Foundation Server での既定のセキュリティ グループ以外にも、グループおよびアクセス許可のプラグインをカスタマイズすることで、チーム プロジェクトの初期のグループ、グループ メンバー、およびセキュリティ アクセス許可を構成できます。 このプラグインを使用すると、グループやチームの定義、グループとユーザーのグループへの追加 (メンバーとして)、グループへのアクセス許可の付与を行うことができます。

ここでは、グループとアクセス許可のプラグインのファイルで使用される groups、iterationPath、memberspermissions、および 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 name="GroupName" isTeam="true | false" description="GroupDescription">
   <permissions> . . . </permissions>
   <members> . . . </members>
</group>

以下の定義が各属性に適用されます。

  • name: 必須。 グループの名前を指定します。 グループの名前は、1 ~ 255 文字にする必要があります。

  • isTeam: (省略可能)。 グループをチームとして識別します。これにより、チーム プロジェクト内の作業を整理するための小さなグループをサポートします。

  • description: グループがチームでない場合は必須です。 グループの説明を指定します。 説明は、Team Web Access のセキュリティ ページに表示されます。

group は、groups および Children の省略可能な子要素です。

グループまたはチームと、そのアクセス許可およびメンバーを定義します。

groups

<groups>
   <group> . . . </group>
</groups>

groups は、グループおよびアクセス許可のプラグインの taskXml に必須の子要素です。

グループおよびアクセス許可の定義を含みます。

iterationPath

<iterationPath path="IterationName" />

iterationPath は iterationPaths に必須の子要素です。

チームのマイルストーンを指定します。

iterationPaths

<iterationPaths backlogPath="BacklogPathName">
. . .      </iterationPaths>

iterationPaths は、teamsettings の子要素で、省略可能な要素です。

チームのマイルストーンを指定します。

member

<member name="MemberName" ></member>

既定のグループを指定する方法については、「グループ マクロと Team Foundation Server で定義されている既定のグループ」を参照してください。

member は members に必須の子要素です。

別のグループのメンバーとして追加するグループの名前を指定します。 グループを作成し、そのグループに Team Foundation Server の既定グループ、以前に定義したプロジェクト グループ、および Active Directory のグループとユーザーのデータを自動的に設定することができます。

members

<members>
   <member> . . . </member>
</members>

members は、group の子要素で、省略可能な要素です。

グループに追加されるメンバーのコレクションを指定します。

permission

<permission name="PermissionName" class="ClassName" allow="true | false" />

各属性に適用する定義は次のとおりです。

  • name: 必須。 アクセス許可の名前を指定します。 詳細については、アクセス許可として指定できるクラスと名前の組み合わせについて説明されている「初期のグループ、チーム、メンバー、およびアクセス許可の構成」の表を参照してください。

  • class: 必須。 グループのアクセス許可を付与するクラス (区分) を示します。 有効な値は次のとおりです。NAMESPACE (コレクション レベル)、PROJECT (プロジェクト レベル)、CSS_NODE (区分ノード)、および ITERATION_NODE (イテレーション ノード)。

  • allow: (省略可能)。 アクセス許可を付与するかどうか示す、true または false の値を指定します。

permission は permissions に必須の子要素です。

グループに適用されるアクセス許可を指定します。

permissions

<permissions >
   <permission> . . . </permissions>
</permissions >

permissions は group に必須の子要素です。

グループに適用されるアクセス許可のコレクションを指定します。

teamsettings

<teamSettings areaPath="Area">
. . .
</teamSettings>

teamsettings は、group の子要素で、省略可能な要素です。

チーム プロジェクトを既定のチームとして構成し、必要に応じて iterationPath 要素でチームのマイルストーンを指定します。

参照

概念

初期のグループ、チーム、メンバー、およびアクセス許可の構成

機能領域へのアクセスの制御

TFS でのユーザーまたはグループの管理

プロセスのカスタマイズ

その他の技術情報

作業項目フィールドへの規則の適用