diff --git a/config/module.config.php b/config/module.config.php
index 4fbfe79cb7756a20115a3d82b6625a5284c446c6..d2c37b177865cfc531b0d4a26ab42ac42aea3a1f 100644
--- a/config/module.config.php
+++ b/config/module.config.php
@@ -98,6 +98,12 @@ $bjyauthorize = array(
             'object_manager'    => 'doctrine.entitymanager.orm_default',
             'role_entity_class' => 'UnicaenAuth\Entity\Db\Role',
         ),
+        /**
+         * Fournit le rôle correspondant à l'identifiant de connexion de l'utilisateur.
+         * Cela est utile lorsque l'on veut gérer les habilitations d'un utilisateur unique
+         * sur des ressources.
+         */
+        'UnicaenAuth\Provider\Role\Username' => array(),
     ),
 
     // strategy service name for the strategy listener to be used when permission-related errors are detected
@@ -175,6 +181,7 @@ return array(
             'UnicaenAuth\Provider\Identity\Db'         => 'UnicaenAuth\Provider\Identity\DbServiceFactory',
             'UnicaenAuth\Provider\Role\Config'         => 'UnicaenAuth\Provider\Role\ConfigServiceFactory',
             'UnicaenAuth\Provider\Role\DbRole'         => 'UnicaenAuth\Provider\Role\DbRoleServiceFactory',
+            'UnicaenAuth\Provider\Role\Username'       => 'UnicaenAuth\Provider\Role\UsernameServiceFactory',
         ),
     ),
     'controllers' => array(
diff --git a/src/UnicaenAuth/Provider/Identity/Db.php b/src/UnicaenAuth/Provider/Identity/Db.php
index 65f1912a3bdf574535f085d46c0f34ec61fe145a..f89b8d5b65602251ee4b7c6a0bd4410500aac3f5 100644
--- a/src/UnicaenAuth/Provider/Identity/Db.php
+++ b/src/UnicaenAuth/Provider/Identity/Db.php
@@ -38,7 +38,8 @@ class Db extends AuthenticationIdentityProvider implements ChainableProvider
         }
             
         if ($identity instanceof User) {
-            $roles = $identity->getRoles();
+            $roles   = $identity->getRoles();
+            $roles[] = $identity->getUsername();
         }
         else {
             $roles = array();
diff --git a/src/UnicaenAuth/Provider/Identity/Ldap.php b/src/UnicaenAuth/Provider/Identity/Ldap.php
index 5f1b9fdd96aa21b14157f676b90b7794f4de815d..193350fb6dc04b89378de54f5181998f8a00ff9d 100644
--- a/src/UnicaenAuth/Provider/Identity/Ldap.php
+++ b/src/UnicaenAuth/Provider/Identity/Ldap.php
@@ -38,7 +38,8 @@ class Ldap extends AuthenticationIdentityProvider implements ChainableProvider//
         }
             
         if ($identity instanceof People) {
-            $roles = $identity->getRoles();
+            $roles   = $identity->getRoles();
+            $roles[] = $identity->getUsername();
         }
         else {
             $roles = array();
diff --git a/src/UnicaenAuth/Provider/Role/Username.php b/src/UnicaenAuth/Provider/Role/Username.php
new file mode 100644
index 0000000000000000000000000000000000000000..6ebf123d5bbc71f995fc1962ec748c2442504652
--- /dev/null
+++ b/src/UnicaenAuth/Provider/Role/Username.php
@@ -0,0 +1,64 @@
+<?php
+
+namespace UnicaenAuth\Provider\Role;
+
+use BjyAuthorize\Provider\Role\ProviderInterface;
+use Zend\Authentication\AuthenticationService;
+use ZfcUser\Entity\UserInterface;
+
+/**
+ * Fournisseur de rôle retournant le rôle correspondant à l'identifiant de connexion 
+ * de d'utilisateur (username).
+ * 
+ * Cela est utile lorsque l'on veut gérer les habilitations d'un utilisateur unique
+ * sur des ressources.
+ * 
+ * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
+ */
+class Username implements ProviderInterface
+{
+    /**
+     * @var AuthenticationService
+     */
+    protected $authService;
+    
+    /**
+     * @var array
+     */
+    protected $roles;
+    
+    /**
+     * 
+     * @param AuthenticationService $authService
+     */
+    public function __construct(AuthenticationService $authService)
+    {
+        $this->authService = $authService;
+    }
+    
+    /**
+     * @return \Zend\Permissions\Acl\Role\RoleInterface[]
+     */
+    public function getRoles()
+    {
+        if (null === $this->roles) {
+            $this->roles = array();
+            
+            if ($this->authService->hasIdentity()) {
+                $identity = $this->authService->getIdentity();
+                if (isset($identity['ldap'])) {
+                    $identity = $identity['ldap'];
+                }
+                elseif (isset($identity['db'])) {
+                    $identity = $identity['db'];
+                }
+                if ($identity instanceof UserInterface) {
+                    $role = new \UnicaenAuth\Acl\NamedRole($identity->getUsername(), 'user', "Authentifié(e)");
+                    $this->roles[] = $role;
+                }
+            }
+        }
+        
+        return $this->roles;
+    }
+}
\ No newline at end of file
diff --git a/src/UnicaenAuth/Provider/Role/UsernameServiceFactory.php b/src/UnicaenAuth/Provider/Role/UsernameServiceFactory.php
new file mode 100644
index 0000000000000000000000000000000000000000..2d9cbd50f813ec42aa73fbb2d7c4ced93193f7ee
--- /dev/null
+++ b/src/UnicaenAuth/Provider/Role/UsernameServiceFactory.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace UnicaenAuth\Provider\Role;
+
+use Zend\ServiceManager\FactoryInterface;
+use Zend\ServiceManager\ServiceLocatorInterface;
+
+/**
+ * Description of UsernameServiceFactory
+ *
+ * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
+ */
+class UsernameServiceFactory implements FactoryInterface
+{
+    /**
+     * Create service
+     *
+     * @param ServiceLocatorInterface $serviceLocator
+     * @return Username
+     */
+    public function createService(ServiceLocatorInterface $serviceLocator)
+    {
+        $authService = $serviceLocator->get('zfcuser_auth_service'); /* @var $authService \Zend\Authentication\AuthenticationService */
+        
+        return new Username($authService);
+    }
+}
\ No newline at end of file