초기 그룹, 팀, 멤버 및 권한 구성

그룹 및 권한의 플러그 인 파일을 사용하여 팀 프로젝트의 초기 보안 설정을 구성할 수 있습니다. 이를 위해 보안 그룹을 만들고, 그룹을 중첩하고, 그룹을 팀으로 정의하고, 초기 팀 설정을 구성하고, 그룹에 멤버를 할당하고, 각 그룹에 대해 특정 권한을 허용하거나 거부하는 작업을 정의합니다. 이러한 작업을 수행하는 것 외에도 컬렉션 수준, 프로젝트 수준 및 프로젝트 분류 영역에 대한 초기 보안 설정을 지정할 수 있습니다.

Microsoft 프로세스 템플릿은 기본 그룹에 여러 권한을 할당합니다. 그룹 및 권한의 플러그 인 파일을 사용자 지정함으로써 이러한 할당을 수정할 수 있습니다. 이 플러그 인에 대한 자세한 내용은 그룹 및 권한 플러그 인을 사용하여 그룹, 팀 및 권한 정의을 참조하세요.

항목 내용

  • 권한 정의 및 그룹에 권한 할당

  • 그룹 매크로 및 기본 그룹

  • 그룹 중첩 및 그룹에 멤버 할당

  • 팀 정의

  • 컬렉션 수준 권한 할당

  • 프로젝트 수준 권한 할당

  • 영역 경로 제어 권한 할당

  • 반복 경로 제어 권한 할당

Team Foundation Build, Team Foundation 버전 제어, Visual Studio Lab Management 등 팀 프로젝트의 기능 영역에 대한 초기 보안 설정을 구성하는 방법에 대한 자세한 내용은 기능 영역에 대한 액세스 제어을 참조하세요.

그룹 또는 사용자에게 액세스를 허용하거나 거부하도록 작업 항목 유형을 사용자 지정하는 방법에 대한 자세한 내용은 작업 항목 필드에 규칙 적용을 참조하세요.

사용자와 그룹, 그리고 Visual Studio ALM(Application Lifecycle Management)에 대한 액세스 제어를 관리하는 방법에 대한 자세한 내용은 TFS에서 사용자 또는 그룹 관리을 참조하세요.

권한 정의 및 그룹에 권한 할당

groupmember 요소를 사용하여 Team Foundation Server에서 새 보안 그룹을 지정하고 해당 그룹에 멤버를 추가할 수 있습니다. 그룹 permission 요소를 사용하여 그룹, 그리고 해당 그룹의 멤버에 권한을 할당할 수 있습니다. 해당 컨테이너 요소 내에서 각 요소(groups, memberspermissions)를 캡슐화해야 합니다. 이러한 각 요소에 대해 다음의 구문 구조를 사용합니다.

<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

다른 그룹의 멤버로 추가하고 있는 그룹의 이름을 지정합니다. 그룹을 만들고 다음과 같은 유형의 멤버로 미리 채울 수 있습니다.

  • Team Foundation Server에 정의된 기본 그룹

  • groupsandpermissions.xml 파일에서 이미 만들어져 있는 프로젝트 그룹(예: [$$PROJECTNAME$$]\Contributors)

  • Active Directory에 정의된 그룹 및 사용자(다음과 같은 형식을 사용하여 지정함)

    • DOMAIN\USERNAME

    • DOMAIN\GROUPNAME

기본 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목의 뒷부분에 있는 그룹 매크로 및 기본 그룹을 참조하세요.

permission

name

적용되고 있는 권한을 식별합니다. 지원되는 권한의 목록에 대해서는 이 항목의 뒷부분에 있는 다음 섹션을 참조하세요.

  • 컬렉션 수준 권한 할당

  • 프로젝트 수준 권한 할당

  • 영역 경로 제어 권한 할당

  • 반복 경로 제어 권한 할당

class

그룹 권한이 부여된 클래스 또는 영역을 식별합니다. 유효한 값은 다음과 같습니다.

  • NAMESPACE: 컬렉션 수준 권한을 지정합니다.

  • PROJECT: 프로젝트 수준 권한을 지정합니다.

  • CSS_NODE: 팀 프로젝트에 대한 영역 경로를 보고 관리하기 위한 권한을 지정합니다.

  • ITERATION_NODE: 팀 프로젝트에 대한 반복 경로를 보고 관리하기 위한 권한을 지정합니다.

allow

true 또는 false 값을 사용하여 권한이 허용되는지 아니면 거부되는지를 나타냅니다.

path

권한이 적용되고 있는 영역 경로 또는 반복 경로의 노드를 식별합니다. 이 특성은 class가 CSS_NODE 또는 ITERATION_NODE로 설정되었을 때만 유효합니다.

그룹 매크로 및 기본 그룹

다음 표에는 Team Foundation Server에 정의된 기본 그룹을 지정하는 데 사용할 수 있는 매크로가 나와 있습니다.

참고

그룹 및 권한의 플러그 인 파일에서만 다음 표에 있는 매크로를 지정할 수 있습니다.빌드, 버전 제어 또는 랩 관리를 위한 플러그 인을 사용하여 권한을 할당할 때는 이 매크로를 지정할 수 없습니다.

기본 그룹

매크로

Project Collection Administrators

[SERVER]\$$PROJECTCOLLECTIONADMINGROUP$$

[SERVER]\$$TEAMFOUNDATIONADMINGROUP$$

$$COLLECTIONADMINGROUP$$

Project Collection Service Accounts

[SERVER]\$$PROJECTCOLLECTIONSERVICESGROUP$$

Project Collection Build Service Accounts

[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$

$$COLLECTIONBUILDSERVICESGROUP$$

Project Collection Build Administrators

[SERVER]\$$PROJECTCOLLECTIONBUILDADMINSGROUP$$

$$COLLECTIONBUILDADMINISTRATORSGROUP$$

Project Administrators

$$PROJECTADMINGROUP$$

[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$

[$$PROJECTNAME$$]\Builders

Project creator

$$CREATOR_OWNER$$

@creator

Default team

@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 클래스를 사용하여 컬렉션 수준 권한을 할당할 수 있습니다. 이 권한은 팀 프로젝트 간에 사용할 수 있는 리소스에 대한 액세스를 제어합니다. 다음 범주의 사용자에 대해서만 컬렉션 수준 권한을 설정할 수 있습니다.

  • 컬렉션 수준 사용자 및 그룹(예: Project Collection Administrators)

  • Team Foundation을 실행하는 서버에서 컬렉션 수준에 추가된 프로젝트 수준 그룹

  • 컬렉션 수준에서 만들어 추가하는 사용자 지정 그룹

그룹을 지정할 때 사용할 형식은 이 항목 앞부분의 그룹 매크로 및 기본 그룹을 참조하세요.

참고

팀 탐색기에서 서버를 마우스 오른쪽 단추로 클릭한 후에 보안을 클릭하거나, Team Foundation의 관리 콘솔을 열어서 사용하거나, TFSSecuritytf 명령줄 도구를 사용하여 이 권한을 설정할 수 있습니다.자세한 내용은 Collection-Level Groups, 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용 웹 서비스에 대한 보다 자세한 진단 정보를 수집하기 위해 추적 설정을 변경할 수 있습니다.

CREATE_PROJECTS

새 프로젝트 만들기. 팀 프로젝트 컬렉션에서 프로젝트를 만들 수 있습니다.

GENERIC_WRITE

컬렉션 수준 정보 편집. 팀 프로젝트 컬렉션에서 사용자 및 그룹에 대한 컬렉션 수준 권한을 편집할 수 있습니다. 이 권한이 있는 사용자는 다음 작업을 수행할 수 있습니다.

  • Team Foundation Server에 있는 컬렉션에서 컬렉션 수준 응용 프로그램 그룹을 추가하거나, 제거하거나, 이름을 바꿉니다.

    참고

    Project Collection Administrators 같은 기본 컬렉션 수준 그룹은 제거할 수 없습니다.

  • Team Foundation Server에 있는 Windows 사용자 또는 다른 응용 프로그램 그룹에서 사용자 또는 그룹을 추가하거나 제거합니다(서비스 수준에서).

  • 사용자 및 그룹에 대한 컬렉션 수준 권한을 변경합니다.

또한 이 권한을 가지고 있는 사용자는 버전 제어 권한을 수정할 수 있으며, 다른 권한에 의해 명시적으로 액세스가 거부되는 경우를 제외하고는 버전 제어에서 모든 파일에 대한 쓰기 권한을 갖습니다.

MANAGE_TEMPLATE

프로세스 템플릿 관리. 프로세스 템플릿을 다운로드하고, 만들고, 편집하고, 팀 프로젝트 컬렉션에 업로드할 수 있습니다.

MANAGE_TEST_CONTROLLERS

테스트 컨트롤러 관리. 팀 프로젝트 컬렉션의 테스트 컨트롤러를 등록 및 등록 취소할 수 있습니다.

MANAGE_LINK_TYPES

작업 항목 링크 형식 관리. 작업 항목의 링크 유형을 추가, 제거 및 변경할 수 있습니다.

GENERIC_READ

컬렉션 수준 정보 보기. 컬렉션 수준 그룹 멤버 자격 및 해당 사용자의 권한을 볼 수 있습니다.

프로젝트 수준 권한 할당

그룹 및 권한 플러그 인 파일에서 프로젝트 수준 권한을 할당할 수 있습니다. 그룹 permission 요소 및 PROJECT 클래스를 사용하여 이 권한을 할당합니다. 이 권한은 단일 프로젝트의 리소스에 대한 액세스를 제어합니다. Windows의 사용자 및 그룹, Team Foundation의 그룹 그리고 그룹 및 권한 플러그 인 파일에서 정의해 놓은 그룹에 대해 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식은 이 항목 앞부분의 그룹 매크로 및 기본 그룹을 참조하세요.

다음 예제에서는 팀 프로젝트의 Contributors 그룹에 여러 권한을 부여하는 방법을 보여 줍니다.

<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 클래스를 사용하여 영역 정의에 대한 액세스를 제어하는 권한을 할당할 수 있습니다. 이 권한은 단일 프로젝트의 분류 구조에 대한 액세스를 제어합니다. Windows의 사용자 및 그룹, Team Foundation의 그룹 그리고 그룹 및 권한 플러그 인 파일에서 정의해 놓은 그룹에 대해 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 그룹 매크로 및 기본 그룹을 참조하세요.

다음 예제에서는 팀 프로젝트의 Contributors 그룹에 여러 권한을 부여하는 방법을 보여 줍니다.

<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 클래스를 사용하여 반복 경로에 대한 액세스를 제어하는 권한을 할당할 수 있습니다. 이 권한은 단일 프로젝트의 중요 시점 릴리스 또는 반복에 대한 액세스를 제어합니다. Windows의 사용자 및 그룹, Team Foundation의 그룹 그리고 그룹 및 권한 플러그 인 파일에서 정의해 놓은 그룹에 대해 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 그룹 매크로 및 기본 그룹을 참조하세요.

다음 예제에서는 팀 프로젝트의 Contributors 그룹에 여러 권한을 부여하는 방법을 보여 줍니다.

<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

이 노드 편집. 반복 노드의 권한을 설정하고 노드의 이름을 바꿀 수 있습니다.

참고 항목

개념

그룹 및 권한 플러그 인을 사용하여 그룹, 팀 및 권한 정의

기능 영역에 대한 액세스 제어

TFS에서 사용자 또는 그룹 관리

Team Foundation Server에 대한 사용 권한 참조