Authentification

Authentifier les utilisateurs auprès d'un annuaire d'entreprise

LDAP par défaut

Cette partie concerne la configuration d’un annuaire par défaut pour une instance FlowerDocs.

Cette partie n’est pas à suivre dans le cas d’une configuration de l’annuaire à travers l’interface d’administration.

Accès

Pour configurer l’accès à l’annuaire d’entreprise, il nécessaire d’identifier le type nécessaire :

  • simple : LDAP simple de type Apache Directory Server ou OpenLDAP
  • ad : Microsoft Active Directory
  • ad-ds : Microsoft ADLDS
  • embedded : Apache Directory Server embarqué sur le port 3389

Le type d’annuaire peut ensuite être défini par application WEB :

  • Pour la GUI grâce à la propriété : gui.ldap.type
  • Pour le Core grâce à la propriété : ws.ldap.type

Exemple : Configuration d’un serveur embarqué

gui.ldap.type=embedded
ws.ldap.type=simple

Pour configurer l’accès à l’annuaire LDAP, il est nécessaire de renseigner la propriété ldap.

Propriété Valeur par défaut Description
ldap.bind.url ldap://localhost:389 Adresse de l’annuaire
ldap.bind.root Noeud de base dans la structure LDAP
ldap.base.dn Base de recherche des utilisateurs

Nota : Dans le cas où l’annuaire LDAP est embarqué, il est nécessaire d’ajouter la propriété ldap.bind.root correspondant au noeud de base dans la strucutre LDAP.

Compte d’accès

Un compte de type admnistrateur doit être configuré permettant d’effectuer des actions :

  • recherche d’utilisateur
  • récupération d’utilisateur
  • authentification
  • etc.
Propriété Description
ldap.bind.dn Distinguished Name de l’utilistateur
ldap.bind.password Mot de passe de l’utilistateur

Attributs / mapping

Afin de récupérer (ou authentifier) des utilisateurs contre l’annuaire configuré, il faut également définir :

Propriété Description
ldap.attr.id Attribut permettant de récupérer l’identifiant d’un utilisateur

Exemples :

  • MS Active Directory : sAMAcountName
  • MS Active Directory LDS : uid
  • Apache Directory Server : uid

D’autres attributs utilisés pour le mapping d’utilisateur peuvent être définis :

Propriété Description
ldap.attr.display.name Attribut permettant de récupérer l’identifiant d’un utilisateur
ldap.attr.password Attribut permettant de récupérer le mot de passe d’un utilisateur

Administration du LDAP

Création d’un utilisateur

Depuis l’interface d’administration, il est possible de créer des utilisateurs avec un mot de passe par défaut. Pour celà, le mot de passe ne doit pas être obligatoire.

Propriété Description
ldap.default.password Mot de passe par défaut si aucun n’est défini lors de la création
ldap.user.password.mandatory Booléen définissant le critère obligatoire du champs mot de passe

La création d’utilisateur ou de groupe ne peut être effectuée qu’à la racine du noeud d’accès au LDAP.

Exemple : Pour un MS Active Directory: <domaine>/<base DN>

Batch

Pour créer plusieurs utilisateurs en une seule requête, il est possible d’envoyer la requête :

  • Méthode : POST

    <UserBatch xmlns:ns2="http://flower.com/docs/domain/security" xmlns:ns3="http://flower.com/docs/domain/common">
    <users>
        <ns3:id>user_id</ns3:id>
        <ns2:displayName>My Display name</ns2:displayName>
        <ns2:credentialsExpired>false</ns2:credentialsExpired>
    </users>
    </UserBatch>
    

Exemples de configuration

LDAP embarqué

ldap.bind.url=ldap://localhost:3389
ldap.bind.root=dc=arondor,dc=com
ldap.base.dn=ou=employees
ldap.attr.id=uid
ldap.bind.dn=uid=fadmin,ou=Administrators,ou=employees,dc=arondor,dc=com
ldap.bind.password=okidoki

ADLDS

ldap.bind.url=ldap://ldap.company.com:389
ldap.bind.root=dc=arondor,dc=dev
ldap.bind.dn=CN=fadmin,OU=Demo,OU=FlowerDocs,DC=arondor,DC=dev
ldap.bind.password=okidoki
ldap.base.dn=OU=Demo,OU=FlowerDocs
ldap.attr.id=CN
ldap.attr.display.name=displayName

OpenLDAP

OpenLDAP requiert que le base DN utilisé

ldap.bind.url=ldap://ldap.company.com:389
ldap.bind.root=
ldap.base.dn=dc=arondor,dc=dev
ldap.attr.id=CN
ldap.bind.dn=CN=admin,DC=arondor,DC=dev
ldap.bind.password=okidoki
ldap.attr.display.name=displayName

Référentiel interne

FlowerDocs peut se baser sur un référentiel interne d’utilisateurs. Ce référentiel est configuré via Spring.

Le contexte Spring par défaut embarque un référentiel contenant un seul et unique utilisateur. Ses paramètres de configuration sont les suivants :

  • Activer / Désactiver : security.realm.users.enabled avec false ou true (par défaut)
  • Login : security.realm.users.username dont la valeur par défaut est fsa
  • Mot de passe : security.realm.users.password

Ce référentiel par défaut peut être changé en utilisant la propriété security.realm.users.config pour définir le chemin vers un fichier de configuration Spring.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context.xsd">

	<bean id="internalRealmAuthenticationProvider" 
	  class="com.flower.docs.security.ldap.InternalRealmAuthenticationProvider">
	  <property name="enabled" value="#{new Boolean('${security.realm.users.enabled:false}')}" />
	  <property name="users">
		  <list>
			<bean class="com.flower.docs.domain.security.AuthenticatedUser">
			  <property name="username" value="${security.realm.users.username:fsa}" />
			  <property name="password" value="${security.realm.users.password:0000}" />
			</bean>
		  </list>
	  </property>
	</bean>
</beans>

Compte utilisateur système

Un compte utilisateur système est défini pour l’ensemble de l’application FlowerDocs.

Il peut être configuré grâce aux paramètres suivants.

Propriété Valeur par défaut Description
system.admin.username system Identifiant de l’utilisateur système
system.admin.password okidoki Mot de passe de l’utilisateur système