IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Authentification multiple X509 et Basic Auth


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut Authentification multiple X509 et Basic Auth
    Bonjour

    Je cherche à sécuriser l'accès à une application, grâce à Spring Security, de telle sorte qu'une partie de l'appli soit accessible via une authentification par certificat (type X509) et une autre partie via une authentification basique.

    Pour cela j'ai intégré 2 balise <http> à ma configuration Spring, ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    	<!-- Web security -->
    	<authentication-manager>
    		<authentication-provider ref="ldapAuthenticationProvider" />
    	</authentication-manager>
     
        <beans:bean id="authService" class="com.security.ldap.userDetailsService">
            <beans:property name="config">
                <beans:ref bean="daoAuthenticationProviderConfig" />
            </beans:property>
        </beans:bean>
     
        <http auto-config='false' pattern="/main/**fix*" use-expressions="true">
            <access-denied-handler error-page="/forbidden"/>
            <x509 subject-principal-regex="UID=(.*?),.*" user-service-ref="authService"/>
            <intercept-url pattern="/main/**fix*" access="hasRole('ROLE_USER')" />
        </http>
     
    	<http auto-config='false' pattern="/**" use-expressions="true">
    		<access-denied-handler error-page="/forbidden"/>
    		<http-basic />
    		<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
    	</http>
    Mon problème est le suivant : les 2 modes d'authentification fonctionnent bien indépendamment l'un de l'autre (c'est à dire si je n'en renseigne qu'un dans ma conf) mais dès lors que je renseigne les 2 seule la conf basic auth est prise en compte et régit les accès à toutes les URLs, y compris celle correspondant au pattern "/main/**fix*" .

    Manque-t-il quelque chose à ma configuration pour permettre les 2 modes d'authentification de coexister?
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 136
    Par défaut
    La xsd n'accepte pas 2 balise http, c'est pour ça que ça t'en prend que 1 seul sur les 2 .
    Mais il semble possible de mettre 2 authent apparemment : http://forum.spring.io/forum/spring-...-login-authent
    Le truc, c'est que tu peut pas filtrer directement via 2 config du coup.

    Ce qu'il me semble le plus simple est de jouer avec les roles.
    Si tu te log en x509 le userDetailService rajoute le role ROLE_X509
    Si tu te log en basic l'autre userDetailService rajoute le role ROLE_BASIC.
    Et tu filtre tes urls via ces roles (avec le hasRole )

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut
    Tout d'abord merci pour ta réponse

    La xsd n'accepte pas 2 balise http, c'est pour ça que ça t'en prend que 1 seul sur les 2 .
    Je suis pourtant tombé sur quelques publications sur le net indiquant que c'était possible. Celle-ci par exemple :
    http://branislavvidovic.blogspot.fr/...realms-in.html

    Je me demande si le fait que le pattern de la 2eme balise http (="/**" ) soit permissive et contiennent les cas de la 1ere ne serait pas la cause du problème (même si je pensais avoir évacuer ce problème en la mettant en 2ème...)
    Je vais essayer en la modifiant...

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Utilisez des filtres (<security:custom-filter />).

Discussions similaires

  1. [[sharepoint]] authentification multiple
    Par ragkiki dans le forum Configuration
    Réponses: 0
    Dernier message: 09/09/2009, 08h18
  2. [[sharepoint]] authentification multiple
    Par ragkiki dans le forum SharePoint
    Réponses: 0
    Dernier message: 09/09/2009, 08h18
  3. Authentification multiple sous WebLogic (Portal) 10
    Par cclermont dans le forum Weblogic
    Réponses: 0
    Dernier message: 08/12/2008, 16h47
  4. Impression multiple dans visual basic
    Par lokdos dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/02/2008, 09h36
  5. [Sécurité] Combiner BASIC Auth et SSL
    Par P4dre dans le forum Services Web
    Réponses: 5
    Dernier message: 03/10/2007, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo