PlonePAS en ZMI

Un petit tour en ZMI vous permettra de mieux comprendre tout ceci...


../_images/plonepas-zmi-1.png

La vue principale d'un PlonePAS expose l'ensemble des plugins - ici ne sont exposés que les plugins installés par défaut sur un site Plone 4 - ainsi que l'objet plugins, chef d'orchestre des règles de fonctionnement de PlonePAS. Intéressons-nous à ce dernier en premier. [1]

Catégories de plugins

Ouvrons maintenant l'objet acl_users/plugins qui est le "chef d'orchestre" de l'utilisation des plugin.


../_images/plugin-registry.png

Cette vue vous propose les différentes catégories de plugins de PlonePAS. Comme vous pouvez le constater, chaque catégorie de plugin est expliquée brièvement.

Une petite traduction commentée :

Anonymoususerfactory Plugins

Les plugins de ce type sont des factories d'utilisateurs anonymes. Plone en standard n'en utilise pas, sachant qu'il ne propose pas de fonctionnalité nécessitant un objet évolué, contrairement aux utilisateurs authentifiés.

Interface : Products.PluggableAuthService.interfaces.plugins.IAnonymousUserFactoryPlugin

Authentication Plugins

Les plugins de ce type sont responsable de vérifier la validité d'une accréditation, généralement un couple identité, mot de passe.

Interface : Products.PluggableAuthService.interfaces.plugins.IAuthenticationPlugin

Challenge Plugins

Ces plugins sont chargés de retourner directement ou indirectement une ressource à partir de laquelle l'utilisateur pourra fournir ses accréditations - par exemple la page d'authentification. Ce genre de plugin est sollicité lorsqu'un utilisateur anonyme tente d'accéder directement ou indirectement à une ressource protégée.

Interface : Products.PluggableAuthService.interfaces.plugins.IChallengePlugin

Challenge Protocol Chooser Plugins

Ces plugins sont chargés de fournir une liste de protocoles (HTTP, FTP, ...) pour lesquels un challenge d'authentification peut être lancé. Vous n'aurez généralement pas besoin de changer le paramétrage du chooser standard fourni avec Plone, encore moins de réaliser votre propre plugin de ce type.

Interface : Products.PluggableAuthService.interfaces.plugins.IChallengeProtocolChooser

Reset Credentials Plugins

Les plugins de ce type sont chargés de supprimer le jeton d'authentification de l'utilisateur. Ils sont sollicités lorsque l'utilisateur de déconnecte du site. Comme le jeton d'authentification est récupéré par un plugin de type Extraction Plugins, et est placé par un plugin de type Update Credentials Plugins, ces trois rôles sont généralement assurés par le même plugin qui est donc un multiplugin.

Interface : Products.PluggableAuthService.interfaces.plugins.ICredentialsResetPlugin

Update Credentials Plugins

Les plugins de ce type sont chargés de fournir au client le jeton d'authentification, après une authentification réussie à travers un Authentication Plugins ou un changement de mot de passe.

Interface : Products.PluggableAuthService.interfaces.plugins.ICredentialsUpdatePlugin

Extraction Plugins

Les plugins de ce type ont pour rôle d'extraire l'accréditation du request. C'est-à-dire le jeton d'authentification de l'utilisateur authentifié. Dans le cas du protocole HTTP, celui-ci est généralement placé dans un header (typiquement WWW-Authenticate) ou dans un cookie. C'est typiquement ce type de plugin que vous devrez réaliser pour intégrer votre site Plone dans une infrastructure SSO.

Interface : Products.PluggableAuthService.interfaces.plugins.IExtractionPlugin

Group_Enumeration Plugins

Les plugins de ce type permettent de retrouver des informations sur des groupes en fonction de critères de recherche.

Interface : Products.PluggableAuthService.interfaces.plugins.IGroupEnumerationPlugin

Group_Introspection Plugins

Les plugins de ce type sont sollicités pour fournir des informations avancées sur les groupes (informations étendues d'un groupe, membres d'un groupe, liste de groupes, ...). En général, ce genre de plugin est un multiplugin qui est également un Group_Enumeration Plugins

Interface : Products.PlonePAS.interfaces.group.IGroupIntrospection

Group_Management Plugins

Les plugins de ce type gèrent des groupes dits "mutables", c'est à dire dont les caractéristiques et les membres sont gérés à travers Zope et Plone comme c'est le cas du gestionnaire de groupes fourni en standard par Plone. Un multiplugin de ce type est généralement également de type Groups Plugins.

Interface : Products.PlonePAS.interfaces.group.IGroupManagement

Groups Plugins

Les plugins de ce type fournissent les noms des groupes auxquels appartient un principal.

Interface : Products.PluggableAuthService.interfaces.plugins.IGroupsPlugin

Local_Roles Plugins

Les plugins de ce type fournissent les rôles dont dispose un principal dans un contexte donné.

Interface : Products.PlonePAS.interfaces.plugins.ILocalRolesPlugin

Properties Plugins

Les plugins de ce types sont chargés de fournir des propriétés à un principal (exemple: nom comlet, adresse mail, etc.). Ces propriétés sont fournies sous forme de. Lors de la collection des propriétés d'un principal, les propriétés fournies par l'ensemble des Properties Plugins activés sont cumulées.

Interface : Products.PluggableAuthService.interfaces.plugins.IPropertiesPlugin

À noter que les plugins de ce type peuvent également implémenter l'interface Products.PlonePAS.interfaces.plugins.IMutablePropertiesPlugin lorsqu'ils offrent à Plone la possibilité de modifier les propriétés de l'utilisateur.

Request_Type_Sniffer Plugins

Les plugins de ce type ont pour rôle de déterminer le type de requête de l'application cliente (WebDav, XML-RPC, FTP ou navigateur). Sauf en cas de besoins "spéciaux" pour un type de client particulier, vous n'aurez jamais à réaliser de plugin de ce type, ni même à modifier le paramétrage du plugin de ce type installé en standard.

Interface : Products.PluggableAuthService.interfaces.plugins.IRequestTypeSniffer

Role_Assigner Plugins

Les plugins de ce type permettent d'ajouter ou de supprimer de façon persistente un rôle à un principal.

Interface : Products.PluggableAuthService.interfaces.plugins.IRoleAssignerPlugin

Role_Enumeration Plugins

Les plugins de ce type permettent d'obtenir une liste de rôles (sous forme de mapping incluant des informations supplémentaires) répondant à des critères de recherche.

Interface : Products.PluggableAuthService.interfaces.plugins.IRoleEnumerationPlugin

Roles Plugins

Les plugins de ce type permettent d'assigner des rôles à un principal. L'ensemble des plugins activés sont sollicités lors de chaque transaction pour déterminer les rôles dont dispose un utilisateur.

Interface : Products.PluggableAuthService.interfaces.plugins.IRolesPlugin

Update Plugins

Cette interface n'est utilisée nulle part.

Interface : Products.PluggableAuthService.interfaces.plugins.IUpdatePlugin

User_Adder Plugins

Les plugins implémentant cette interface ont l'aptitude d'ajouter des utilisateurs de façon persistente. Attention, on utilise plus souvent l'interface User_Management Plugins plus complète qui hérite de la présente interface.

Interface : Products.PluggableAuthService.interfaces.plugins.IUserAdderPlugin

User_Enumeration Plugins

Les plugins implémentant cette interface sont utilisés pour énumérer les utilisateurs selon des critères particuliers. Par exemple pour rechercher les utilisateurs dont le nom contient "dup".

Interface : Products.PluggableAuthService.interfaces.plugins.IUserEnumerationPlugin

Userfactory Plugins

Les plugins implémentant cette interface sont susceptibles de construire des objets de type "utilisateur". Ce type d'objet, conforme aux utilisateurs Zope standard (sécurité, etc.) fournit également les propriétés de l'utilisateur (adresse mail, nom complet, ...). Dans le cadre de l'utilisation dans Plone, un plugin de ce type est déjà fourni, et sauf exception spécifique, il sera très rarement nécessaire de fournir un plugin spécialisé.

Interface : Products.PluggableAuthService.interfaces.plugins.IUserFactoryPlugin

User_Introspection Plugins

Les plugins implémentant cette interface permettent de lister sous différentes formes tous les utilisateurs qu'ils "contiennent". Généralement, les plugins de ce type sont également des Authentication Plugins.

Interface : Products.PlonePAS.interfaces.plugins.IUserIntrospection

User_Management Plugins

Les plugins implémentant cette interface fournissent les outils pour changer le mot de passe d'un utilisateur et pour supprimer un utilisateur.

Interface : Products.PlonePAS.interfaces.plugins.IUserManagement

Validation Plugins

Les plugins implémentant cette interface valident les modifications de propriétés d'un utilisateur.

Interface : Products.PluggableAuthService.interfaces.plugins.IValidationPlugin

[1]Ceci est un oxymore, je le sais.

blog comments powered by Disqus