Definir grupos, equipos y permisos mediante el complemento Grupos y permisos

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

Importante

Este artículo se aplica a la personalización de proyectos para los modelos de proceso XML locales. Para obtener información general sobre los modelos de proceso, consulte Personalización de la experiencia de seguimiento de trabajo.

Puede definir grupos de seguridad para controlar el acceso a las áreas funcionales dentro de un proyecto. Además de los gruposde seguridad predeterminados, puede configurar los grupos iniciales, los miembros del grupo y los permisos de seguridad de un proyecto personalizando el complemento Grupos y permisos. Con este complemento puede definir grupos, equipos, agregar grupos y usuarios como miembros a grupos y conceder permisos a los grupos.

En este tema se describe la estructura de sintaxis de los elementos groups ,iterationPath, members, permissionsy teamsettings que se usan en el archivo para el complemento Grupos y permisos. Para obtener más información sobre cómo usar estos elementos, vea Configurar grupos, equipos, miembros y permisos iniciales.

Nombre y ubicación del complemento Grupos

El complemento Groups and Permissions se define mediante el archivo de complemento GroupsandPermissions.xml, que debe ajustarse a la definición de esquema establecida en el archivo Gss.xsd.

Los nombres de archivo, carpeta y complemento son:

Nombre de archivo:GroupsandPermissions.xml
Nombre de carpeta:grupos y permisos
Nombre del complemento:| Microsoft.ProjectCreationWizard.Groups

Nota

Puede cambiar los nombres del archivo XML y de la carpeta pero no el del complemento. TFS no incluye un mecanismo para la implementación de complementos del lado cliente, directivas u otras modificaciones. Si desea implementar este tipo de funcionalidad, debe utilizar su propio programa de instalación y distribución.

En el complemento Grupos y permisos, especifique una o varias tareas y sus dependencias dentro del taskXml elemento . Generalmente se especifica una tarea por cada grupo de seguridad que se cree para el proceso. Para obtener más información sobre cómo especificar tareas, vea Definir las tareas para procesar un complemento.

Definir grupos

Use el elemento group para especificar un nuevo grupo de seguridad en Team Foundation Server.

<group name="GroupName" description="GroupDescription"></group>  

En el ejemplo siguiente se muestra cómo crear un grupo denominado 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>  

Definir miembros

Use el elemento miembro para asignar un grupo como miembro de un grupo de seguridad en Team Foundation Server.

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

Nota

Un grupo que sea un equipo (isTeam="true") no puede ser miembro de un grupo. Además, el elemento contenedor permissions debe preceder al elemento contenedor members.

En el ejemplo siguiente se muestra cómo agregar TestGroup1 como miembro de 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>  

Definir equipos y configuraciones de equipo

Dentro del archivo de complemento Grupos y permisos predeterminado, la macro crea el equipo predeterminado en la ruta @defaultTeam de acceso del área raíz. Puede cambiar esta estructura mediante la inclusión de rutas de acceso adicionales en el archivo de complemento Classification. Mediante el uso del elemento teamsettings, puede configurar previamente las iteraciones asignadas a un equipo. El complemento usa el siguiente fragmento de código. En este ejemplo se definen tres iteraciones del equipo predeterminado.

Importante

Asigne las rutas de acceso de iteración correspondientes a las rutas definidas en el archivo de complemento Classification. Consulte Definición de áreas iniciales, iteraciones y Project de asignación.

<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>  

También puede definir equipos adicionales dentro de un proyecto. Para ello, defina un grupo y asigne el isTeam atributo a true . En el ejemplo siguiente se muestra cómo definir un equipo y sus permisos, miembros y asignaciones iniciales del sprint. Especifique la configuración predeterminada del equipo para un proyecto.

<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>   

Definir permisos

Debe especificar permisos para cada grupo que cree. Use el elemento permission para este propósito.

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

En el ejemplo siguiente se muestra cómo conceder permisos al grupo de seguridad Lector para que los miembros puedan ver información sobre un proyecto, pero no pueden modificar esa información.

<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>  

Referencia del elemento groups

En la tabla siguiente se describen los elementos que se usan para definir los grupos y permisos iniciales para un proyecto. Estos elementos se especifican dentro de un elemento contenedor en el archivo de complemento Grupos taskXml y permisos. Para obtener información sobre este elemento, vea Definir las tareas para procesar un complemento.

Advertencia

El archivo de esquema Gss.xsd no define los property elementos properties o . Al cargar la plantilla de proceso, el Administrador de plantillas de procesos valida estos elementos antes de almacenarlos.

Los groups elementos y group (Groups y Permission) son distintos de groups los elementos y group (Process Template). Para obtener información sobre el último par de elementos, vea Referencia de elementos XML de plantilla de proceso.

Elemento Descripción y sintaxis
group Elemento secundario opcional de grupos y elementos secundarios. Define un grupo o un equipo, así como sus permisos y miembros.
<group name="GroupName" isTeam="true &#124; false" description="GroupDescription"> <permissions> . . . </permissions> <members> . . . </members> </group>
Las siguientes definiciones se aplican a cada atributo:
- name: obligatorio. Especifica el nombre del grupo. El nombre del grupo debe tener entre 1 y 255 caracteres.
- isTeam: opcional. Identifica el grupo como un equipo, que admite grupos pequeños para organizar su trabajo dentro de un proyecto.
- description: se requiere cuando el grupo no es un equipo. Especifica una descripción del grupo. La descripción se muestra en las páginas de seguridad de Team Web Access.
grupos Elemento secundario requerido de taskXml para el complemento Groups and Permissions. Contiene las definiciones de grupos y permisos.
<groups>
<group> . . . </group>
</groups>
iterationPath Elemento secundario requerido de iterationPaths. Especifica un hito de equipo.
<iterationPath path="IterationName" />
iterationPaths Elemento secundario opcional de teamsettings. Especifica hitos de equipo.
<iterationPaths backlogPath="BacklogPathName">
. . .
</iterationPaths>
Miembro Elemento secundario requerido de los miembros. Especifica el nombre de un grupo que está agregando como miembro de otro grupo. Puede crear grupos y rellenarlos automáticamente con grupos predeterminados de TFS, grupos de proyectos definidos previamente y grupos y usuarios en Active Directory.
<member name="MemberName" >
</member>
Para obtener información sobre cómo especificar grupos predeterminados, vea Agrupar macros y grupos predeterminados.
members Elemento secundario opcional de group y especifica la colección de miembros que se agregarán al grupo. El elemento contenedor members debe seguir el elemento de contenedor permissions.
<members>
<member> . . . </member>
</members>
permission Elemento secundario requerido de permisos. Especifica el permiso que se aplica al grupo.
<permission name="PermissionName" class="ClassName" allow="true &#124; false" />
Donde las siguientes definiciones se aplican para cada atributo:
- name: obligatorio. Especifica el nombre del permiso. Para obtener más información, vea la tabla de Configuración de grupos iniciales, equipos, miembros y permisos que describe cada combinación de clase y nombre que puede especificar como permiso.
- class: obligatorio. Identifica la clase, o el área, donde se concede el permiso de grupo. Los valores siguientes son válidos: NAMESPACE (nivel de colección), PROJECT (nivel de proyecto), CSS_NODE (nodo de área) y ITERATION_NODE (nodo de iteración).
- allow: opcional. Especifica un valor true o false que indica si se permite el permiso.
permisos Elemento secundario requerido de group y especifica la colección de permisos que se aplicarán al grupo. El elemento contenedor permissions debe preceder al elemento contenedor members.
<permissions>
<permission> . . . </permissions>
</permissions>
teamsettings Elemento secundario opcional del grupo. Configura el proyecto como equipo predeterminado y, opcionalmente, especifica hitos de equipo con el elemento iterationPath.
<teamSettings areaPath="Area">
. . .
</teamSettings>