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

Langage PHP Discussion :

Mise en place du SSO uniquement dans un sous dossier avec SSPI


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Mise en place du SSO uniquement dans un sous dossier avec SSPI
    Bonjour,
    Je ne sais pas si l'intitulé de ma discussion est celui qui correspond le mieux...

    Je vous explique mon problème.

    Je veux mettre en place une reconnaissance automatique des utilisateurs via SSO en utilisant le module apache mod_auth_sspi (http://sourceforge.net/projects/mod-auth-sspi/).
    Afin de n'identifier que certaines IP j'aimerais que l'authentification en SSO se fasse dans un sous dossier.
    On aurait ainsi :

    index.php : inclut le fichier fonctions.inc.php et fait l'authentification

    fonction/fonctions.inc.php : fournit la fonction detectRemoteUser() qui retourne le nom de l'utilisateur reconnu (ou false).
    La fonction detectRemoteUser() inclut le fichier fonction_sso.inc.php uniquement si l'utilisateur veut utiliser le SSO et si l'adresse IP de l'utilisateur est dans un tableau prédéfini d'adresse IP autorisées. Ce fichier fournit la fonction getDetectRemoteUser() qui récupère la variable contenue dans $_SERVER['REMOTE_USER'].
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function detectRemoteUser() {
        if (canUseSSO()) {
            include_once('auth_sso/fonctions_sso.php');
            $user = getDetectRemoteUser();
     
            return $user;
        } else {
            return false;
        }
    }
    fonction/auth_sso/fonction_sso.inc.php : fournit la fonction getDetectRemoteUser()
    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
     
    function getDetectRemoteUser() {
        $remote_user = false; // retour par défaut 
     
        if (isset($_SERVER['REMOTE_USER'])) { // Si l'authentification se fait avec SSPI NTLM 
            $cred = explode('\\', $_SERVER['REMOTE_USER']);
     
            if (count($cred) == 1)
                array_unshift($cred, "(Pas d'information sur le domaine)");
            list($domain, $remote_user) = $cred;
            $remote_user = strtolower($remote_user);
     
            if (is_null($remote_user) || $remote_user == '')
                $remote_user = false;
        }
        return $remote_user;
    }
    Pour cela, j'ai modifié mon httpd.conf 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    #############################
    <Directory "D:/Intranet">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.2/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
     
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride None
     
        #
        # Controls who can get stuff from this server.
        #
        Order allow,deny
        Allow from all
     
    </Directory>
     
     
    <Directory "D:/Intranet/testldap/fonction/auth_sso/">
        Options Indexes FollowSymLinks
     
        AllowOverride None
     
        Order allow,deny
        Allow from all	
     
    	#########################################################################################
    	## Ajout Mikael
     
    	AuthType SSPI
    	SSPIAuth On
    	SSPIAuthoritative On
    	SSPIDomain dc.mydomain.fr
     
    	## Set this if you want to allow access with clients that do not support NTLM, or via proxy from outside. Don't forget to require SSL in this case!
    	SSPIOfferBasic Off
     
    	SSPIBasicPreferred On
     
    	## Set this if you have only one domain and don't want the MYDOMAIN\ prefix on each user name
    	SSPIOmitDomain On
     
    	## AD user names are case-insensitive, so use this for normalization if your application's user names are case-sensitive
    	SSPIUsernameCase Lower
     
    	# Available only starting with 1.0.4 version of mod_auth_sspi. Probably helps with IE problems with POST if On (but it will generate 401 requests in error.log for each page request)
    	SSPIOfferSSPI On
     
    	SSPIPerRequestAuth On
     
    	AuthName "Veuillez vous authentifier"
     
    	Require valid-user
     
    	#########################################################################################
    </Directory>
     
    #############################
    Je pensais que cela marcherait ... hé bien non ! (Sinon je ne posterai pas de message ici )

    L'inclusion de mon fichier fonction_sso.inc.php ne fonctionne pas, et le seul moyen que j'ai trouvé afin de reconnaître mon utilisateur est de passer par une requête Ajax qui appelle un fichier script_sso.php (présent dans fonction/auth_sso/script_sso.php) affichant le nom de l'utilisateur. Je trouve cela très moyen moyen, et j'aimerai avoir une meilleure solution.

    Auriez vous des idées ?

    D'avance, merci pour votre aide.

    Mikael

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut SSPI
    Ce sujet m'intéresse fortement. As-tu trouvé une solution entre temps ? Merci d'avance pour ton aide.

Discussions similaires

  1. Mise en place d'un scm dans mon pom
    Par MLK jr dans le forum Maven
    Réponses: 2
    Dernier message: 16/06/2008, 11h42
  2. [AJAX] Mise en place d'un réponse dans Ajax.Request via JSON
    Par polothentik dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/05/2008, 09h05
  3. Réponses: 12
    Dernier message: 13/11/2007, 09h52
  4. [VBA-E]Mise en place de 2 valeurs dans une meme cellule
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/08/2006, 15h06
  5. Réponses: 2
    Dernier message: 05/04/2006, 11h43

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