Fork me on GitHub

Plugin Identity Store

Introduction

Ce plugin permet de constituer un référentiel d'identités. Couplé à un système d'authentification, il offre un service de Fournisseur d'Identités (FI).

Une identité est composée d'attributs. L'accès aux attributs se fait via une API REST. Chaque attribut peut être lu, écrit ou certifié par une application cliente de l'API si elle dispose des autorisations adéquates.

Les applications clientes sont aussi dénommées Fournisseurs de Service (FS).

Ce plugin offre une interface web pour permettre aux administrateurs de configurer le référentiel d'identités et les autorisations des fournisseurs de services.

API REST

Le plugin fournit une API REST permettant de gérer les identités. Plusieurs versions de l'API peuvent être appelées :

  • Version 2 : the URL to use is /identity/rest/identitystore/v2/identity. Cette version utilise les objets des packages fr.paris.lutece.plugins.identitystore.v1.* de la library-identitybusiness.
  • Version 3 : the URL to use is /identity/rest/identitystore/v3/identity. Cette version utilise les objets des packages fr.paris.lutece.plugins.identitystore.v2.* de la library-identitybusiness.

La Version 2 ne peut être utilisée que pour récupérer une identité à partir de son CUID ou GUID. Seulement la version 3 offre une utilisation complète de l'API (CRUD et recherche).

Environment

L'exécution de l'IDS nécessite une instance d'[Elasticsearch (8+)](https://www.elastic.co/fr/downloads/elasticsearch). Aucune configuration particulière nécessaire, télécharger et exécuter.

L'IDS utilise [PostgreSQL 10+](https://www.postgresql.org/) comme database relationnelle pour stocker ses données.

Configuration

Un configuration particulière peut-être trouvée dans le ficher identitystore_context.xml file. Il s'agit de l'utilisation d'une (https://docs.spring.io/spring-framework/docs/3.2.0.M1/reference/html/scheduling.html)[spring task] pour schéduler le job de ré-indexation full des identités dans Elasticsearch avec un CRON (ne peut pas être fait pour le moment avec un Daemon Lutèce).

    <!-- Schedule full E/S identities reindexing -->
    <bean id="identitystore.fullIndexer" class="fr.paris.lutece.plugins.identitystore.service.indexer.elastic.index.task.FullIndexTask" ></bean>
    <task:scheduler id="identitystore.fullIndexerScheduler" />
    <task:scheduled-tasks scheduler="identitystore.fullIndexerScheduler">
    <task:scheduled ref="identitystore.fullIndexer" method="run" cron="${identitystore.index.full.cron}"/>
    </task:scheduled-tasks>
                        
Avec
  • identitystore.fullIndexer le bean réalisant la ré-indéxation des identités
  • identitystore.fullIndexerSchedulerr le spring scheduler qui cadence le job identitystore.fullIndexer
  • method="run" le nom de la méthode du bean identitystore.fullIndexer qui sera appelée par le scheduler
  • identitystore.index.full.cron définit l'expression CRON et doit être présente dans le fichier identitystore.properties

Usage

Le plugin expose des méthodes web pour gérer les identités. Consulter la page /jsp/site/Portal.jsp?page=swaggerui pour plus d'informations à propos de ces méthodes (à venir..).