Skip to content

lutece-platform/lutece-auth-plugin-oauth2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alerte Line of code Coverage

Plugin Oauth2

Introduction

Ce plugin permet d'acceder à des ressources via le protocole oauth2. Grâce à l'authentification par le biais d'un fournisseur d'identités Oauth2,un fournisseur de service peut ensuite accéder à des ressources liées à l'utilisateur (et avec son consentement).

Ce plugin propose aux fournisseurs de service une API Java DataClient qui permet de créer des services d'accès aux données. Pour plus d'informations surl'utilisation de cette API, reportez-vous à la documentation du Wiki .

Ce plugin est également utilisé par le Module MyLutece Oauth2 qui permet de faire une authentification Lutece basée sur le protocole oauth2.

Installation

Configuration

Configurer le fichier de context du plugin (WEB-INF/conf/plugins/oauth2_context.xml).

Pour la configuration client, utilisez une configuration du type

           
    <bean id="oauth2.client" class="fr.paris.lutece.plugins.oauth2.business.AuthClientConf">
        <property name="clientId" value=" **** à renseigner **** "/>
        <property name="clientSecret" value=" **** à renseigner **** "/>
        <property name="redirectUri" value=" **** à renseigner **** "/>
    </bean>       

Pour la configuration serveur, si le serveur OAuth supporte OpenID Connect, alors seul le paramètre issuer est requis, en utilisant la class de configuration fr.paris.lutece.plugins.oauth2.business.OIDCAuthServerConf


    <bean id="oauth2.server" class="fr.paris.lutece.plugins.oauth2.business.OIDCAuthServerConf">
        <property name="issuer" value="${oauth2.issuer} "/>
    </bean> 

La variable oauth2.issuer peut être définie dans un fichier de properties afin d'être adaptée aux différents environnements.

Une configuration directe est également possible, en utilisant la classe fr.paris.lutece.plugins.oauth2.business.AuthServerConf :

  • Les adresses des WebServices la plate-forme Oauth2 cible (end points)
  • Si le serveur utilise JWT et que les tokens sont signés, alors le paramètre IDTokenSignatureAlgorithmNames soit être renseigné. Si les tokens nesont pas signés, alors le paramètre IDTokenSignatureAlgorithmNames ne doit pas être renseigné
  • Si le paramètre jwksEndpointUri est renseigné, les clefs de signature des token sont téléchargées depuis cette adresse, qui doit pointer vers un fichier JWKS.
  • L'adresse du Callback du plugin (NB : Cette adresse doit être enregistrée et associée à votre ID Client auprès du service Oauth2 utilisé. doit ensuite être paramétré avec les informationsdu service client (id, secret et callback) :
           
     
    <bean id="oauth2.server" class="fr.paris.lutece.plugins.oauth2.business.AuthServerConf">
        <property name="issuer" value=" **** à renseigner **** "/>
        <property name="authorizationEndpointUri"
                                  value=" **** à renseigner **** "/>
        <property name="tokenEndpointUri" value=" **** à renseigner **** "/>
        <property name="logoutEndpointUri" value=" **** à renseigner **** "/>
        <property name="enableJwtParser" value="****true si le serveur utilise JWT ****" />
        <property name="IDTokenSignatureAlgorithmNames">
            <set><value>HS512<value></set>
        </property>
        <property name="jwksEndpointUri" value=" **** à renseigner **** "/>
    </bean>  
    
    <bean id="oauth2.callbackHandler" class="fr.paris.lutece.plugins.oauth2.web.CallbackHandler" >
       <property name="authServerConf" ref="oauth2.server">
       <property name="authClientConf" ref="oauth2.client">
       <property name="jWTParser" ref="oauth2.jWTParser"">
    </bean>      
    
    <!-- DataClient UserInfo -->
   <bean id="oauth2.logUserInfoDataClient" class="fr.paris.lutece.plugins.oauth2.dataclient.LogUserInfoDataClient">
         <property name="name" value="logUserInfo" />
         <property name="dataServerUri" value="https://fcp.integ01.dev-oauth2.fr/api/v1/userinfo"/>
         <property name="tokenMethod" value="HEADER"/>
         <property name="scope">
             <set value-type="java.lang.String">
                 <value>openid </value>
                 <value>profile </value>
                 <value>email </value>
                 <value>address </value>
                 <value>phone </value>
             </set>
         </property>
         <!-- Optional eIDAS management -->
         <!--
         <property name="acrValuesSet">
             <set value-type="java.lang.String">
                 <value>eidas2 </value>
             </set>
         </property>
        -->
     </bean>

     <!--     <bean id="oauth2.jwtParser" class="fr.paris.lutece.plugins.oauth2.oidc.jwt.MitreJWTParser" /> -->
     <bean id="oauth2.jwtParser" class="fr.paris.lutece.plugins.oauth2.jwt.JjwtJWTParser" />
        


Dépannage

  • L'activation des logs en mode debug se fait en ajoutant la ligne suivante dans le fichier WEB-INF/conf/config.properties dans la rubrique LOGGERS :

							log4j.logger.lutece.oauth2=DEBUG, Console
							

Maven documentation and reports

generated by xdoc2md - do not edit directly.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 6