초기 그룹, 멤버 및 권한 구성
그룹 및 권한의 플러그 인 파일을 사용하여 팀 프로젝트의 초기 보안 설정을 구성할 수 있습니다. 이렇게 하려면 보안 그룹을 만들고, 그룹을 중첩시키고, 그룹에 멤버를 할당하고, 각 그룹에 대해 특정 권한을 허용하거나 거부하는 작업을 정의합니다. 이러한 작업을 수행하는 것 외에도 컬렉션 수준, 프로젝트 수준, 프로젝트 분류 및 이벤트 구독 영역에 대한 초기 보안 설정을 지정할 수 있습니다.
MSF(Microsoft Solutions Framework)용 프로세스 템플릿에서는 기본 그룹에 몇 가지 권한을 할당합니다. 그룹 및 권한의 플러그 인 파일을 사용자 지정하여 이러한 할당을 수정할 수 있습니다. 이 플러그 인에 대한 자세한 내용은 그룹 및 권한 플러그 인을 참조하십시오.
항목 내용
그룹, 멤버 및 그룹 권한 요소를 사용하여 그룹 정의 및 그룹 보안 설정
Team Foundation Server에 정의된 기본 그룹 및 그룹 매크로
그룹 중첩 및 그룹의 멤버 할당 예제
컬렉션 수준 권한 할당
프로젝트 수준 권한 할당
영역 경로 제어 권한 할당
반복 경로 제어 권한 할당
이벤트 구독 관리 권한 할당
Team Foundation Build, Team Foundation 버전 제어 및 Visual Studio Lab Management 같은 팀 프로젝트의 기능 영역에 대한 초기 보안 설정을 구성하는 방법에 대한 자세한 내용은 기능 영역에 대한 액세스 제어를 참조하십시오.
작업 항목 형식을 사용자 지정하여 그룹 또는 사용자에게 액세스 권한을 허용하거나 거부하는 방법에 대한 자세한 내용은 작업 항목을 만들거나 수정하는 권한 관리를 참조하십시오.
사용자 및 그룹을 관리하고 Visual Studio ALM(Application Lifecycle Management)에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 사용자, 그룹 및 권한 구성을 참조하십시오.
그룹, 멤버 및 그룹 권한 요소를 사용하여 그룹 정의 및 그룹 보안 설정
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 |
만들려는 그룹의 이름을 지정합니다. |
description |
다른 사용자에게 그룹의 용도를 설명합니다. |
|
member |
name |
다른 그룹의 멤버로 추가할 그룹의 이름을 지정합니다. 그룹을 만들고 다음 유형의 멤버로 그룹을 미리 채울 수 있습니다.
기본 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 뒷부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오. |
permission |
name |
적용되는 사용 권한을 식별합니다. 지원되는 사용 권한의 목록은 이 항목 뒷부분의 다음 단원을 참조하십시오.
|
class |
그룹 권한이 부여되는 클래스 또는 영역을 식별합니다. 유효한 값은 다음과 같습니다.
|
|
allow |
true 또는 false 값을 사용하여 권한이 허용되는지 거부되는지를 나타냅니다. |
|
path |
권한이 적용되는 영역 경로 또는 반복 경로의 노드를 식별합니다. 이 특성은 class가 CSS_NODE 또는 ITERATION_NODE로 설정되어 있을 때만 유효합니다. |
Team Foundation Server에 정의된 기본 그룹 및 그룹 매크로
다음 표에서는 Team Foundation Server에 정의된 기본 그룹을 지정하는 데 사용할 수 있는 매크로를 보여 줍니다.
참고
다음 표의 매크로는 그룹 및 권한용 플러그 인에서만 지정할 수 있습니다. 빌드, 버전 제어 또는 랩 관리용 플러그 인을 사용하여 권한을 할당할 때는 이러한 매크로를 지정할 수 없습니다.
기본 그룹 |
매크로 |
---|---|
Project Collection Administrators |
[SERVER]\$$PROJECTCOLLECTIONADMINGROUP$$ [SERVER]\$$TEAMFOUNDATIONADMINGROUP$$ |
Project Collection Service Accounts |
[SERVER]\$$PROJECTCOLLECTIONSERVICESGROUP$$ |
Project Collection Build Service Accounts |
[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$ |
Project Collection Build Administrators |
[SERVER]\$$PROJECTCOLLECTIONBUILDADMINSGROUP$$ |
Project Administrators |
$$PROJECTADMINGROUP$$ [$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$ |
그룹 중첩 및 그룹의 멤버 할당 예제
다음 예제에서는 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>
컬렉션 수준 권한 할당
그룹 permission 요소와 NAMESPACE 클래스를 사용하여 컬렉션 수준 권한을 할당할 수 있습니다. 이러한 권한은 여러 팀 프로젝트에서 사용할 수 있는 리소스에 대한 액세스를 제어합니다. 컬렉션 수준 권한은 다음 사용자 범주에 대해서만 설정할 수 있습니다.
컬렉션 수준 사용자 및 그룹(예: Project Collection Administrators)
Team Foundation을 실행하는 서버에서 컬렉션 수준에 추가된 프로젝트 수준 그룹
컬렉션 수준에서 만들어 추가하는 사용자 지정 그룹
그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오.
참고
팀 탐색기에서 서버를 마우스 오른쪽 단추로 클릭한 다음 보안을 클릭하거나, Team Foundation용 관리 콘솔을 열어 사용하거나, TFSSecurity 및 tf 명령줄 도구를 사용하여 이러한 권한을 설정할 수 있습니다. 자세한 내용은 컬렉션 수준 그룹, TFSSecurity를 사용하여 그룹 및 사용 권한 변경 및 Permission 명령을 참조하십시오.
다음 예제에서는 팀 프로젝트의 프로젝트 관리자에게 컬렉션 수준 권한을 부여하는 방법을 보여 줍니다.
<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 |
컬렉션 수준 정보 편집: 팀 프로젝트 컬렉션의 사용자 및 그룹에 대한 컬렉션 수준 권한을 편집할 수 있습니다. 이 권한이 있는 사용자는 다음 작업을 수행할 수 있습니다.
또한 이 권한이 있는 사용자는 버전 제어를 위한 권한을 수정할 수 있으며, 다른 권한에 의해 명시적으로 거부되지 않는 한 버전 제어의 모든 파일에 대한 쓰기 권한을 갖습니다. |
MANAGE_TEMPLATE |
프로세스 템플릿 관리: 프로세스 템플릿을 다운로드, 작성 및 편집하고 팀 프로젝트 컬렉션으로 업로드할 수 있습니다. |
MANAGE_TEST_CONTROLLERS |
테스트 컨트롤러 관리: 팀 프로젝트 컬렉션의 테스트 컨트롤러를 등록 및 등록 취소할 수 있습니다. |
MANAGE_LINK_TYPES |
작업 항목 링크 형식 관리: 작업 항목의 링크 형식을 추가, 제거 및 변경할 수 있습니다. |
GENERIC_READ |
컬렉션 수준 정보 보기: 컬렉션 수준 그룹의 멤버 자격과 해당 사용자의 권한을 볼 수 있습니다. |
프로젝트 수준 권한 할당
그룹 및 권한 플러그 인 파일에서 프로젝트 수준 권한을 할당할 수 있습니다. 이러한 권한은 그룹 permission 요소와 PROJECT 클래스를 사용하여 할당합니다. 이러한 권한은 단일 프로젝트의 리소스에 대한 액세스를 제어합니다. Windows의 사용자 및 그룹, Team Foundation의 그룹, 그리고 이전에 그룹 및 권한 플러그 인 파일에서 정의한 그룹에 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오.
참고
팀 프로젝트를 만든 후 팀 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 팀 프로젝트 설정을 클릭한 다음 보안을 클릭하여 이러한 권한을 설정할 수 있습니다. TFSSecurity 명령줄 도구를 사용하여 이러한 권한을 설정할 수도 있습니다. 자세한 내용은 권한 관리를 참조하십시오.
다음 예제에서는 팀 프로젝트의 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 |
Contributors |
Builders |
---|---|---|---|---|
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의 그룹, 그리고 이전에 그룹 및 권한 플러그 인 파일에서 정의한 그룹에 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오.
참고
팀 프로젝트를 만든 후 팀 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 영역 및 반복, 영역 탭, 보안을 차례로 클릭하여 이러한 권한을 설정할 수 있습니다. 계층 구조 내의 여러 수준에 있는 노드에 권한을 할당할 수 있습니다. TFSSecurity 명령줄 도구를 사용하여 이러한 권한을 설정할 수도 있습니다. 자세한 내용은 권한 관리를 참조하십시오.
다음 예제에서는 팀 프로젝트의 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 |
Contributors |
Builders |
---|---|---|---|---|
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의 그룹, 그리고 이전에 그룹 및 권한 플러그 인 파일에서 정의한 그룹에 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오.
참고
팀 프로젝트를 만든 후 팀 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 영역 및 반복, 반복 탭, 보안을 차례로 클릭하여 이러한 권한을 설정할 수 있습니다. 계층 구조 내의 여러 수준에 있는 노드에 권한을 할당할 수 있습니다. TFSSecurity 명령줄 도구를 사용하여 이러한 권한을 설정할 수도 있습니다. 자세한 내용은 권한 관리를 참조하십시오.
다음 예제에서는 팀 프로젝트의 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" />
</group>
다음 표에서는 프로젝트 반복 노드의 계층 구조에 대한 액세스를 제어하기 위해 할당할 수 있는 권한을 설명합니다. MSF 프로세스 템플릿에서는 ITERATION_NODE 권한을 지정하지 않으므로 모든 팀 멤버가 반복 노드를 만들고 보고 편집할 수 있습니다.
참고
작업 항목을 추적하기 위한 작업을 수행하려면 여러 가지 권한이 있어야 합니다. 예를 들어 노드를 삭제하려면 여러 가지 권한이 필요합니다.
권한 |
설명 |
---|---|
GENERIC_READ |
이 노드 보기: 노드의 보안 설정을 볼 수 있습니다. |
CREATE_CHILDREN |
자식 노드 만들기 및 순서 지정: 반복 노드를 만들 수 있습니다. 이 권한과 GENERIC_WRITE 권한이 모두 있는 사용자는 모든 반복 노드를 이동하거나 순서를 변경할 수 있습니다. |
DELETE |
이 노드 삭제: 반복 노드를 삭제할 수 있습니다. 이 권한과 다른 노드에 대한 GENERIC_WRITE 권한이 모두 있는 사용자는 반복 노드를 삭제하고 해당 노드의 기존 작업 항목을 다시 분류할 수 있습니다. 삭제하려는 노드에 자식 노드가 있으면 해당 자식 노드도 함께 삭제됩니다. |
GENERIC_WRITE |
이 노드 편집: 반복 노드에 대한 권한을 설정하고 노드 이름을 바꿀 수 있습니다. |
이벤트 구독 관리 권한 할당
그룹 permission 요소와 EVENT_SUBSCRIPTION 클래스를 사용하여 프로젝트 경고에 대한 액세스를 제어하는 권한을 할당할 수 있습니다. 이러한 권한은 팀 프로젝트의 이벤트 서비스에 대한 액세스를 제어합니다. Windows의 사용자 및 그룹, Team Foundation의 그룹, 그리고 이전에 그룹 및 권한 플러그 인 파일에서 정의한 그룹에 액세스 권한을 부여할 수 있습니다. 그룹을 지정할 때 사용할 형식에 대한 자세한 내용은 이 항목 앞부분의 Team Foundation Server에 정의된 기본 그룹을 참조하십시오.
다음 예제에서는 팀 프로젝트의 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="EVENT_SUBSCRIPTION" allow="true" />
<permission name="GENERIC_WRITE" class=" EVENT_SUBSCRIPTION" allow="true" />
<permission name="UNSUBSCRIBE" class=" EVENT_SUBSCRIPTION" allow="true" />
</permissions>
</group>
다음 표에서는 이벤트 구독에 대한 액세스를 제어하기 위해 할당할 수 있는 권한을 설명합니다.
참고
기본적으로 MSF 프로세스 템플릿에서는 이벤트 구독 권한이 할당되지 않습니다. 모든 팀 멤버가 프로젝트 경로를 보고 구독 및 구독 취소할 수 있습니다.
권한 |
설명 |
---|---|
GENERIC_READ |
경로를 볼 수 있습니다. |
GENERIC_WRITE |
경고 설정을 변경할 수 있습니다. |
UNSUBSCRIBE |
경고를 구독 취소할 수 있습니다. |