Blog de ILINFO

Trucs et astuces

Blog ILINFO Active DIrectory MIIS LDAP ADAM PCA PRA BCP DRP

Log in

Page de test Kerberos et de délégation ASPX

by Emmanuel Dreux juin 11, 2009 22:50

Utile, cette page permet de vérifier le protocole d''authentification utilisé lors d'un accès à un serveur web IIS. Il permet de vérifer par exemple si l'accès se fait en Kerberos.

Copier simplement le contenu suivant dans un fichier et nommez le identity.aspx. Créez également un fichier web.config, et placez les 2 fichiers dans le même répertoire.

Le lien suivant permet de télécharger cet exemple ainsi qu'un exemple additionnel de test de délégation Kerberos.

La page frontal.aspx essaie de lire un fichier sur un serveur tierce en utilisant l'identité du client. Pour le faire fonctionner, créer un fichier de test sur un serveur distant, partagez le et donnez les permissions uniquement à l'utilisateur. S'il arrive à le lire à travers la page frontal.aspx, c'est que la délégation Kerberos fonctionne. Modifiez le paramètre identity impersonate pour voir les différences de comportement.

Download 

-------------------------------------------------    web.config ---------------------------------

<configuration>
  <system.web>
    <authentication mode="Windows"/>
    <authorization>
        <deny users="?" /> <!-- Deny anonymous users -->
    </authorization>
    <identity impersonate="false" />
    <compilation debug="true"/>
  </system.web>
</configuration>

----------------------------------------------        identity.aspx        -----------------------

<%@ Page language="VB" %>

<%@ Import namespace = "System.web" %>


<script language="VB" runat="server">

   Dim AuthLength
   Dim AuthOther

  public sub page_Load( Obj as Object, e as Eventargs)
     Authuser.text= HttpContext.Current.User.Identity.Name().Tostring
    ThreadId.text= System.Security.Principal.WindowsIdentity.Getcurrent().name().Tostring()
 
   ' Get the authentication method being used
   AuthMethod.text = Request.ServerVariables("AUTH_TYPE")
   AuthLength = Request.ServerVariables("HTTP_Authorization")

  ' If some other authentication method (other than Negotiate) gets used, call it "Other"
   If LTrim(RTrim(AuthMethod.text)) <> "Negotiate" Then AuthOtherMethod

   ' If Negotiate gets used, go straight to the subroutine to handle it
   If LTrim(RTrim(AuthMethod.text)) = "Negotiate" Then AuthNegotiateMethod

  End sub

Sub AuthOtherMethod()
       ' Since anonymous authentication will be blank, let's be sure we realize it's enabled to
       If LTrim(RTrim(AuthMethod.text)) = "" Then AuthMethod.text = "Anonymous"
End Sub

Sub AuthNegotiateMethod()
       ' Typically, NTLM will yield a 150 - 300 byte header, while Kerberos is more like 5000 bytes
       If LEN(AuthLength) > 1000 Then AuthType.text = "Kerberos"
       If LEN(AuthLength) < 1000 Then AuthType.text = "NTLM"
End Sub
</script>

<html>
<body>
Authentication Method : <asp:label id=AuthMethod runat=server /><br>
Protocole : <asp:label id=AuthType  runat=server /><br>
Authenticated user: <asp:label id=Authuser runat=server /><br>
Thread identity   : <asp:label id=ThreadId runat=server />

</body>
</html>

 

 

Actuellement noté 3.0 par 10 personne(s)

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , ,

Migration

Partenaires
Assurez votre plan de continuit� d'activit� avec BCPAnywhere
Votre poste de travail partout dans le monde.

Mig6 votre solution de migration de vos postes de travail vers Windows 7
Migrez de XP vers Windows 7 avec Mig6.

Auteur

Freelance, Indépendant, expert Active Directory, Domaine et Sécurité.

Expert MIIS, ILM, FIM 2010,Kerberos, NTLM, SSL, PKI et chiffrement.