Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

J’ai installé TFS 2010 et après? Contrôle d’accès: c’est pas la fête au village!

Structurellement, TFS est un application 3-tiers : le client (le Team Explorer) la souche de service (qui est à l’adresse de notre serveur) et les bases de données. Nous les développeurs, notre vision s’arrète à la couche de service, c’est à ce niveau que la sécurité est gérée. Je ne compte pas ici faire un tour exhaustif des droits et comptes de sécurité de TFS, mais un tour d’horizon de ce qui est possible de faire avec.

Sécurité au niveau du serveur et des collections de projets

la collection de projet est une segmentation du serveur en entités indépendantes (voir mon billet sur les  Collections de projets). Vous pouvez donc avoir plusieurs équipes distinctes sur le même serveur. Un bon exemple de mutualisation de ressource est la migration de Codeplex sur TFS 2010 .

Concernant les droits du coté du serveur, cela se passe sur la console d’administrateur de TFS :

image

“Group membership” permet entre autre de donner les droits administrateurs au serveur. Mais être administrateur de TFS est différent de pouvoir administrer TFS via sa console d’admin et  TFS est un ensemble de service:

  • des sites sharepoints
  • un serveur de rapport SQL Server
  • un cube
  • ….

Pour pouvoir administrer tout cela, il faut pour chaque compte avoir les bons droits. C’est le role de la liste de utilisateurs de la console d’admin de gérer cela. Lorsque j’ajoute un utilisateur (Bob) à cette liste, la liste des opérations suivantes est réalisée:image

Les opérations sont bien sur annulées lorsque l’on retire l’utilisateur de la liste.

SI l’on veut maintenant gérer la sécurité au niveau de la collection de projet, c’est aussi possible dans la console d’administration:

image

Généralement, à ce niveau, la tâche la plus courante est de définir les administrateurs de la collection de projets. Et si l’on veut définir maintenant plus finement les droits, il va falloir sortir de la console d’administration et d’aller dans le Team Explorer, et là ce n’est plus le rôle de d’administrateur de TFS, mais de celui de la collection.

 

Contrôle d’accès à la collection de projets et au projet

Nous revoilà dans le Team Explorer. Pas besoin d’avoir accès à la console du serveur pour les prochaines manipulations. Au niveau de la collection, généralement, on ajoute d’autres administrateurs:

image

Théoriquement on devrait aussi définir les utilisateurs de la collection, mais ce n’est pas la peine.TFS ajoute automatiquement les groupes d’utilisateurs de chaque projet de la collection:

image

Il suffit donc d’ajouter un utilisateur dans un projet pour qu’il soit autorisé dans la collection.Dans un projet, on ajoute généralement  les utilisateurs dans 3 groupes importants: les administateurs, les contributeurs et les lecteurs. Les administrateurs du projet permettent de modifier les artefacts du projet, les 2 autres groupes sont accès clairs. Coté confidentialité, les workitems d’un projet ne sont visibles par les utilisateurs que si possède les droits de les voir au niveau du projet. Cela est aussi valable pour les autres artefacts comme le contrôleur de source et les builds. Si un utilisateur essaye de voir une information dont il n’a pas accès, il reçoit une erreur comme si cette artefact n’existait pas (Voir http://en.wikipedia.org/wiki/Information_leakage).

Contrôle d’accès au niveau du source

Il  y a parfois des cas ou il faut descendre encore plus bas dans la sécurité: comme les droits par élément du code source. Par exemple: la branche de Fix est uniquement modifiable par l’équipe de support et la branche de release n’est qu’en lecture seule (voir le billet  Organisation des sources). Dans ce cas il suffit d’aller dans le Source Control Explorer et d’aller dans les propriétés du dossier que l’on veut gérer:

 

image

 

Le droit que l’on modifie le plus souvent est le droit de “Check-in”.On touche au droit de “Read” lorsqu’on veut garantir la confidentialité d’une partie du code. Remarque importante: lorsque l’on branche du source, on récupère aussi les droits de la branche parente. C’est une chose tout à fait logique mais on peut se faire surprendre.

Quelques astuces

La chose la plus importante lorsque l’on commence à modifier la sécurité est d’éviter les cas particuliers: il faut toujours essayer de passer par des groupes d’utilisateurs. Si possible définir les droits pour des groupes AD, comme cela tout est fait en dehors de TFS, sinon des groupes TFS et là il faut ajouter manuellement (et supprimer aussi manuellement) les utilisateurs.

Dans TFS, pour chaque droit, il y a une case “Allow” et une case "Deny”. Il faut éviter le plus souvent de cocher la case “Deny”: si un utilisateur fait parti de 2 groupes, dont un qui est en “Allow” et l’autre en "Deny”. Il sera en “Deny” sur ce droit. Surtout que si aucune des 2 cases n’est cochée, il n’y pas accès à la ressource.

Et pour terminer, Team Foundation Sidekicks est un très bon outil pour éditer les droits et régler les problèmes d’accès.

@+

Publié lundi 21 février 2011 09:00 par Miiitch
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Créer un périphérique Windows To Go 10 ! par Blog de Jérémy Jeanson le 11-21-2014, 04:54

- RDV à Genève le 12 décembre pour l’évènement “SharePoint–Office 365 : des pratiques pour une meilleure productivité !” par Le blog de Patrick [MVP Office 365] le 11-19-2014, 10:40

- [IIS] Erreurs web personnalisées par Blog de Jérémy Jeanson le 11-19-2014, 00:00

- BDD/TDD + Javascript par Fathi Bellahcene le 11-16-2014, 16:57

- Sécuriser sans stocker de mots de passe par Blog de Jérémy Jeanson le 11-15-2014, 08:58

- Où télécharger la preview de Visual Studio 2015 ? par Blog de Jérémy Jeanson le 11-13-2014, 21:33

- Les cartes sont partout ! par Le blog de Patrick [MVP Office 365] le 11-13-2014, 17:26

- [ #Office365 ] Courrier basse priorité ! par Le blog de Patrick [MVP Office 365] le 11-12-2014, 08:56

- [Oracle] Fichier oranfsodm12.dll absent du package client par Blog de Jérémy Jeanson le 11-10-2014, 20:44

- [ #Office365 ] Le chapitre 1 des Groupes est écrit, et alors ? par Le blog de Patrick [MVP Office 365] le 11-10-2014, 20:23