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

ASP.NET MVC Discussion :

Authentification mixte via AD et via BDD pour un site ASP.NET MVC 4


Sujet :

ASP.NET MVC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par d�faut Authentification mixte via AD et via BDD pour un site ASP.NET MVC 4
    Bonjour,

    J'aimerai savoir s'il �tait possible d'impl�menter facilement une authentification de type "intranet" via l'AD mais aussi d'avoir la possibilit� de bypasser l'AD en renseignant un login et un mot de passe stock�s en base de donn�es (form authentification) via un �cran de login sans connexion � l'AD.
    Ceci pour une m�me application ASP.NET MVC 4.

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Par d�faut
    Bonjour,

    Possible : oui, Simple.. c'est une autre histoire.

    En fait la solution est a penser de mani�re diff�rente : Il faut transformer l'identification AD (ou AAD) en CookieAuthentication (c'est � dire l'authentification par formulaire).

    J'ai r�ussi � le faire avec AAD mais la proc�dure doit �tre sensiblement identique avec un AD on premise j'imagine.

    J'ai utilis� dans mon cas L'OpenId mais le principe reste le m�me quelque soit le mode.

    Dans Startup.Auth.cs :

    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
     
     
    app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie)
     
    app.UseCookieAuthentication(new CookieAuthenticationOptions
                {               
                    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,               
                    LoginPath = new PathString("/Account/ExternalLogin"),
                    Provider = new CookieAuthenticationProvider
                    {
     
                    }
                });
     
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
     
    app.UseOpenIdConnectAuthentication(
                  new OpenIdConnectAuthenticationOptions
                  {                  
                      AuthenticationType = OpenIdConnectAuthenticationDefaults.AuthenticationType, 
                      ClientId = ConfigHelper.ClientId,
                      Authority = ConfigHelper.Authority,
                      PostLogoutRedirectUri = ConfigHelper.PostLogoutRedirectUri,
                      AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
                      CallbackPath = new PathString("/Account/ExternalLoginCallback"), //New
                      RedirectUri = ConfigHelper.PostLogoutRedirectUri+ "/Account/ExternalLoginCallback",  
                      Notifications = new OpenIdConnectAuthenticationNotifications
                      {
                          AuthenticationFailed = context =>
                          {
                              context.HandleResponse();
                              context.Response.Redirect("/Home/Error?message=" + context.Exception.Message);
                              return Task.FromResult(0);
                          }
                      }
                  });
    Le reste est une question d'utilisation de l'attribut Authorize.

    Dans la page login les externals connexions vont prendre la valeur OpenId (un bouton) et � gauche il y aura le formulaire normal.

    Quand tu te connecte avec AD (ou ici AAD) la premi�re fois il va aller sur la page ExternalLoginConfirmation et associer ton compte AAD � un compte local (UserApplication).

    En suite il remplace l'authentification en cours par celle du local.

    l'OpenId ne sert en fait qu'a dire : ok c'est bien un utilisateur reconnu, tu peux le lier � un compte local.

Discussions similaires

  1. [D�butant] ASP.NET MVC 4 fait appel � des web service pour int�ragir avec la BDD
    Par asma2881 dans le forum ASP.NET MVC
    R�ponses: 3
    Dernier message: 27/03/2013, 21h14
  2. R�ponses: 2
    Dernier message: 01/04/2011, 16h18
  3. Identification automatique pour un site ASP.Net
    Par maitrebn dans le forum ASP.NET
    R�ponses: 6
    Dernier message: 12/05/2010, 10h23
  4. [Joomla!] Une seule bdd pour plusieurs sites
    Par Imp rusg dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 3
    Dernier message: 23/02/2009, 09h16
  5. Probl�me de debug du code C# pour un site ASP.net
    Par UNi[FR] dans le forum ASP.NET
    R�ponses: 1
    Dernier message: 07/06/2008, 11h04

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