그룹 및 권한 플러그 인을 사용하여 그룹, 팀 및 권한 정의
보안 그룹을 정의하여 팀 프로젝트 내의 기능 영역에 대한 액세스를 제어할 수 있습니다. 그룹 및 권한 플러그 인을 사용자 지정하여 Visual Studio Team Foundation Server의 기본 보안 그룹 외에 팀 프로젝트의 초기 그룹, 그룹 멤버 및 보안 권한을 구성할 수 있습니다. 이 플러그 인을 사용하면 그룹과 팀을 정의하고, 그룹과 사용자를 그룹 멤버로 추가하고, 그룹에 권한을 부여할 수 있습니다.
이 항목에서는 그룹 및 권한 플러그 인의 파일에서 사용되는 groups, iterationPath, members, permissions 및 teamsettings 요소의 구문 구조에 대해 설명합니다. 이러한 요소를 사용하는 방법에 대한 자세한 내용은 초기 그룹, 팀, 멤버 및 권한 구성을 참조하세요.
그룹 플러그 인의 이름 및 위치
그룹 및 권한 플러그 인은 GroupsandPermissions.xml 플러그 인 파일에 의해 정의됩니다. 이 파일은 Gss.xsd 파일에 정의된 스키마 정의를 따라야 합니다. Microsoft 웹 사이트의 Visual Studio Team Foundation용 프로세스 템플릿 및 작업 항목 스키마 페이지에서 프로세스 템플릿의 스키마 파일을 다운로드할 수 있습니다.
다음 테이블에는 MSF(Microsoft Solution Framework)용 프로세스 템플릿의 파일, 폴더 및 플러그 인 이름이 요약되어 있습니다.
파일 이름 |
GroupsandPermissions.xml |
폴더 이름 |
그룹 및 권한 |
플러그 인 이름 |
Microsoft.ProjectCreationWizard.Groups |
참고
XML 파일과 폴더의 이름은 변경할 수 있지만 플러그 인 이름은 변경할 수 없습니다.Visual Studio Team Foundation Server에서는 클라이언트 쪽 플러그 인, 정책 또는 다른 수정 사항에 대한 배포 메커니즘을 제공하지 않습니다.이러한 종류의 기능을 배포하려면 고유한 배포 및 설치 프로그램을 사용해야 합니다.
그룹 및 권한 플러그 인의 taskXml 요소 내에서 하나 이상의 작업과 해당 종속성을 지정합니다. 일반적으로는 프로세스에 대해 만들 보안 그룹당 작업 하나를 지정합니다. 작업을 지정하는 방법에 대한 자세한 내용은 플러그 인을 처리하도록 작업 정의를 참조하세요.
그룹 정의
group 요소를 사용하여 Team Foundation Server에서 새 보안 그룹을 지정합니다.
<group name="GroupName" description="GroupDescription"></group>
다음 예제에서는 Readers 그룹을 만드는 방법을 보여 줍니다.
<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"/>
다음 예제에서는 멤버가 팀 프로젝트에 대한 정보를 볼 수 있지만 수정할 수는 없도록 Readers 보안 그룹에 권한을 부여하는 방법을 보여 줍니다.
<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 요소를 사용하여 팀 중요 시점을 지정합니다. |