• Aucun résultat trouvé

Gestion des identités numérique –Authentification–

Notre principal objectif dans la gestion des identités numérique est de permettre à chaque

en-treprise de préserver son mécanisme d’authentification préféré et de pouvoir, d’un côté vérifier

l’au-thenticité d’identité d’utilisateurs externes, et d’un autre côté permettre à ses utilisateurs internes de

pouvoir s’authentifier auprès d’autres entreprises n’utilisant pas forcément le même mécanisme

d’au-thentification. Pour ce faire, nous nous sommes basés sur l’outilLemonLDAP-NG(cf. section 4.2.3.2,

8.2. Gestion des identités numérique –Authentification–

Chapitre Architecture et gestion des identités numériques).

8.2.1 Résumé de solution proposée

LemonLDAP-NG est installé en tant que service web au niveau de chaque entreprise et chaque

communauté faisant partie du RSE. En effet, une forme de fédération qui consiste à déléguer la

vérification de l’identité d’un acteur au gestionnaire d’authentification de la communauté est mise

en place entre ce dernier et ceux des entreprises.

Le processus d’authentification se base sur les modulesLLdap-NGsuivants. LePortail LLdapfait

office de client SSO. Le moduleAuthProxysert à transférer d’unPortaild’authentification à un autre

les jetons/certificats d’identité pour vérification vis-à-vis de la baseLDAPdistante.

Grâce à ces deux composants logiciels, le gestionnaire d’authentification d’une communauté peut

vérifier l’authenticité du certificat/jeton d’identité d’un acteur donné après la réception d’une réponse

sous forme decookiede la part du fournisseur d’identités de l’entreprise du sujet.

Techniquement, nous nous sommes basés en premier lieu sur une architecture Credential-based[32].

Dans ce type d’architecture, les Credentials sont utilisés par un acteur afin de prouver son identité

auprès d’un fournisseur de services. Cependant, nous avons étendu l’architecture Credentials-based

avec une interaction entre le fournisseur d’identités (entreprise) et le fournisseur de services

(com-munauté) afin de vérifier que l’identité de l’acteur qui présente lesCredentialsn’a pas été usurpée.

La procédure de vérification des Credentials se fait du côté du fournisseur d’identités une fois que

ces derniers lui sont transférés par un fournisseur de services. Cette procédure de vérification de

Credentialsest basée sur deux types d’identités, à savoir privée (interne) et publique (externe). Une

fois lesCredentialsvérifiés et validés, le fournisseur d’identités de l’utilisateur répond au fournisseur

de services par un jeton sous forme de cookie. Dans le cas où l’authentification échoue (utilisateur

non authentifié), le cookie sera vide.

8.2.2 Implantation

Pour tester le prototype nous avons opté pour le mécanisme d’authentification Login/Password

avec des comptes utilisateurs prédéfinis dansLemonLDAP-NG.

• Nous avons commencé par installer touts les pré-requis logiciels nécessaires au bon

fonction-nement de LemonLDAP-NG :

Chapitre 8. Implantation des composantes de sécurité

apt-get install apache2 libapache2-mod-perl2 libapache-session-perl libnet-ldap-perl

libcache-cache-perl libdbi-perl perl-modules libwww-perl libcache-cache-perl

libxml-simple-perl libsoap-lite-perl libhtml-template-perl libregexp-assemble-perl libjs-jquery

libxml-libxml-perl libcrypt-rijndael-perl libio-string-perl libxml-libxslt-perl

libconfig-inifiles-perl libjson-perl libstring-random-perl libemail-date-format-perl libmime-lite-perl

libcrypt-openssl-rsa-perl libdigest-hmac-perl libclone-perl libauthen-sasl-perl

libnet-cidr-lite-perl libcrypt-openssl-x509-perl libauthcas-perl libtest-pod-perl libtest-mockobject-perl

libauthen-captcha-perl libnet-openid-consumer-perl libnet-openid-server-perl

libunicode-string-perl libconvert-pem-perl libmouse-perl,

• ensuite, nous avons installé LemonLDAP-NG

http://lemonldap-ng.org/documentation/quickstart

• enfin, nous avons configuré l’accès SOAP à LemonLDAP-NG

http://lemonldap-ng.org/documentation/latest/soapsessionbackend

.

Le nom de la méthode qui nous permet de récupérer le Cookie estgetCookiesse trouve dans la

classeAuthenticationPortTypeProxydans le packageLemonldap. Nous avons obtenu ce package grâce

au fichier de description de service portal.wsdl fourni par LemonLDAP-NG. La méthode getCookie

prend en paramètres un nom d’utilisateur et un mot de passe, et si ces paramètres sont valides elle

retourne un Cookie non null, sinon la valeur du Cookie sera null.

Le clientRESTqui se charge d’interroger LemonLDAP-NG et récupérer le Cookie est illustré dans

la figure8.3. Ce client établit un appel REST via une requête HTTP sur le service d’authentification

AuthenticationService. Au niveau du service d’authentificationAuthenticationServicequi est basé sur

le package LemonLDAP-NG nous avons défini la méthodeauthenticationillustrée dans la figure8.2.

Cette méthode permet d’établir une connexion avec LemonLDAP-NG et récupérer la valeur du

Co-okie

60

. Cette méthode nous l’avons exposé pour qu’elle soit accessible par un appel en GET (REST)

depuis le service d’application ou celui du contrôle d’accès.

Dépendances

La liste des dépendances nécessaires pour l’utilisation de LemonLDAP-NG sousmavenest la

sui-vante :

apache-jakarta-commons-discovery

— axis-client

— commons-logging-1.2

— mail-1.4.7

— wsdl4j-1.5.2

— javax.mail-1.5.2

60. La vérification d’authentification de l’utilisateur se fait au niveau du serviceAuthenticationServicegrâce à la

va-riable booléenneisAuthenticatedUsed, par conséquent, au niveau du client on pourrait récupérer directement la valeur de

isAuthenticatedUsedpour vérifié si l’utilisateur est bien authentifié (ou pas) dans le cas où on voudrait pas faire un test supplémentaire

8.2. Gestion des identités numérique –Authentification–

F

IGURE

8.2 – Méthode de l’authentification

F

IGURE

8.3 – Client authentification

— activation-1.1

— javaee-api-7.0

Afin de faciliter l’installation et le test de LemonLDAP-NG, des comptes de démonstration on été

mis en place. Pour la gestion des comptes utilisateurs, une documentation plus détaillée expliquant

la procédure à suivre sur

Chapitre 8. Implantation des composantes de sécurité