Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités


  • Ancien MVP SharePoint 8 ans ...
    Des projets .Net, SharePoint 2013 ou Office 365 ??

    Contactez-nous :

Archives

SharePoint et la sécurité en développement : SPRoleAssignment, SPBasePermissions et leurs amis

J'ai souvent cette question qui revient par mail, par twitter, par MSN et même dans le train (véridique, ne sortait jamais un bouquin MOSS dans le train, on ne sait jamais si on ne tombe pas sur un codeur en face de soi) : Comment personnaliser la sécurité sous SharePoint ?

clip_image002 

Bon, la question n'est point inintéressante mais un poil complexe : c'est un vaaaaste sujet vu la dimension de SharePoint

Soit :

  • les comptes de services
  • les méthodes d'accés
  • les ACL
  • Les méthodes de connexion
  • la sécurité aux objets
  • L'impersonnation
  • ...
  • ...

Difficile de tout couvrir mais pas de soucis ...

Pour les retardataires, j'avais fait une session couvrant TOUS ces sujets lors des Techdays 2008, donc, premier conseil, jetez un oeil au WebCast

[Microsoft TechDays 2008] - Manipulation et customisation de la sécurité dans Sharepoint

>>> autre session sur le monde Office & SP : http://www.microsoft.com/france/vision/mstechdays08/WebcastMSDN.aspx?EID=c73bf836-16ca-45fd-8db4-fdd637f7fbe1

Second conseil : surtout téléchargez la présentation, il y a des micros samples d'un peu près tout dedans.

Troisiéme conseil : téléchargez le set de demo de sécurité de Ted Pattison, vous aurez un lot de feature avec leur code pour monter en compétence.


Cependant, j'aimerais faire un petit Focus (salut Erwan & Jack) sur la gestion des droits et les utilisateurs. Le principe utilisé dans SharePoint est bien plus riche que l'on croit.

Il ne s'agit pas simplement de mettre des droits à des utilisateurs sur des listes, ce serait trop simple. Pour être exact, se serait trop restrictif d'où une architecture de droit plus réfléchi.

Il existe un superbe schéma qu'il est bon de connaître associé à un passionnant article dans le MSDN :

ACL et WSS

MSDN : Authorization Object Relations

Grâce à ce dessin, vous allez enfin comprendre le fonctionnement des interfaces de gestion des droits de SharePoint.

Pour résumer, les interfaces vous affichent une version tronqué de la réalité : On ajoute pas des utilisateurs à des groupes ou on leur donne des droits, pas du tout

Il faut bien discerner 4 choses :

  1. le Scope de droit
  2. les Assignations de sécurité : SPRoleAssignment
  3. les ACL SharePoint
  4. les USERS SharePoint

 

Soit en détail :

  1. On ne peut mettre des droits que sur 3 niveaux d'objets sous SharePoint 2007 : les Sites (SPWeb), les Lists (SPList), les Items (SPFolders,SPFile, SPListItem). Les 3 composantes de l'architecture logique d'une collection de site SharePoint
     
  2. Une assignation de sécurité est un couple d'information entre un USER SharePoint et un regroupement de permission (SPRoleDefinition) : on ne peut donc donner directement des droits à un utilisateur NT
     
  3. Une ACL correspond à des profils de droit voir des regroupements : SPRoleDefinition, ils servent d'abstraction. Par exemple, ce que tous les utilisateurs appellent le droit lecteur correspond sous SharePoint à un profil Lecteur dont les droits réels sont : voir les pages du site, voir les listes, voir les items de la liste.
     
  4. Un USER sous SharePoint peut exister sous plusieurs formes, on parle souvent de SPUser. Il est soit un user Landa ou un groupe d'utilisateur dans le Membership référence de votre Web Application. Je ne parle pas de NT, car SharePoint est dépendant d'un membership ASP.Net et non de l'Active Directory (Par défaut, MOSS utilise le membership NT mais ce n'est qu'une configuration pas une obligation).

    Donc, il existe des SPUsers et des SPGroups, un SPGroup contient des SPusers (qui est soit des Users NT ou des Groupes NT si vous utilisez le membership NT)
    >>> je sais, c'est un peu compliqué mais c'est la réalité !

 

Prenons un exemple réel pour mieux comprendre :

Vous voulez ajouter un utilisateur Martin comme auteur sur un site : 2 options

  • Vous ajouter Martin au SPGroup "Membres du site XXX". En effet, ce SPGroup  a été créé à l'initialisation du site et il existe une assignation de sécurité entre le profil de droit "Membre" qui contient les permissions d'ecriture/validation et ce SPGroup
     
  • Vous ajouter Martin comme SPUser  et vous créez une assignation entre ce SPuser et le profil de droit "Membre"
     

image

D'ou le fameux choix avec les radio buttons !!!

C'est plus clair non ?
>>> Vous devez certainement mieux comprendre pourquoi on retrouve toujours cet écran en gestion des droits...

En effet,  lorsque l'on gère les sécurités sous SharePoint, on ne faire que de créer, modifier, voir supprimer des Assignations de sécurités sur une liste, ou un site, ou un item. Ni plus ni moins.

smile_regular

Ainsi, pour que les utilisateurs retrouvent leurs bon vieux réflexes d'ajout de droits "comme sous les dossiers de NT", Microsoft a introduit un micro workflow d'initialisation des site.

Un site SharePoint créé donc , automatiquement, à sa génération :

  • 5 profils de droit (Lire", "Contribuer", "Accès total", "Design" et "Lecture seulement") avec les jeux de permissions idoines
  • 3 SPGroups de gestion ("Lecteur du site", "Membres du site","Propriétaires du site")
  • 3 assignations de sécurité entre les 3 précedents SPGroups et les 3 profils de droit ("Lire","Contribuer" et "Accès total")
  • Place le créateur de site en tant que membre du SPGroup "Propriétaire du site"

La suite, vous la connaissez.

Si vous recherchez encore plus d'information, voir du code pour administrer les permissions, je pense que cet article saura vous combler:

Security Programming in SharePoint 2007

  • External Security Principals and the SPUser Object
  • Adding Authenticated and External Users
  • Working with Permission Levels
  • WSS Groups
  • Identity, Elevation, and Impersonation
  • Securable Objects
  • Wrapping Up

Et même traduit en français : http://msdn.microsoft.com/fr-fr/magazine/cc163287.aspx

Mais qui as dit qu'il n'y avait rien en documentation sur SharePoint dans le MSDN
>>> Certainement pas moi !
 

Renaud Comte aka TheMit (Pour Lucas, hiphiphip  smile_nerd )
Member of WygTeam
http://www.wygwam.com
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 :
Posted: lundi 23 juin 2008 15:35 par themit
Classé sous : , ,

Commentaires

phil a dit :

Je kiffe la photo :)

# juin 23, 2008 17:26

themit a dit :

la prochaine fois, je mets que des photos ...

un grand dessin vaut mieux ....

;)

# juin 23, 2008 18:10
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01