FAQ XMLRADConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 55, dernière mise à jour : 26 octobre 2006
- Je me log mais je reviens toujours à la boite de login
- Quand j'essaye d'accéder a une application en niveau de sécurité Global, j'obtiens une erreur de boucle infinie
- Comment faire une authentification LDAP ou Activedirectory ?
- Comment se delogger lorsque l'on ferme la navigateur ou coment faire un cookie de session ?
Les domaines des chemins (domain path) des cookies sont sensibles à la casse
http://localhost/ProjectsBin/MyProject.dll/MyAction et
http://localhost/Projectsbin/MyProject.dll/MyAction
sont différents pour le domain path des cookies. Donc les cookies ne correspondent pas pour ce chemin.
Quand une application est en niveau de securité Global, il faut que certaines actions comme XMLC_FormLoin, XMLC_Login ne soit pas sous controle de cette sécurité car ce sont ces actions qui vont permettre d'entrer dans l'application.
XMLRAD fourni donc un mécanisme de ByPass permettant de ne pas appliquer la sécurité a un certains nombres d'action ou d'adresse IP.
Vérifiez que vous ayez un fichier ByPass.xml dans le répertoire Bin de votre projet.
Il doit ressembler a ceci :
<
ByPass
>
<
Actions
>
<
Action
>
<
Name
>
FormError<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_CheckChangePwd<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_ChangePwd<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_FormLogin<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_FormChangePwd<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_Login<
/
Name
>
<
/
Action
>
<
Action
>
<
Name
>
XMLC_Logout<
/
Name
>
<
/
Action
>
<
/
Actions
>
<
IPs
/
>
<
/
ByPass
>
A partir de la version 2005 R2, XMLRAD supporte l'authentification LDAP/ActiveDirectoty dans la sécurité intégrée.
Pour effectuer une authentification LDAP et non utiliser le fichier XML par défaut, il faut dans l'item Security des Resources du projet, selectionner LDAP dans le champ Security Directory de l'action menu. Ceci correspond aussi dans InitParams au paramètre XMLC_SecurityDirectory.
Dans InitParams, il y a une nouvelle section LDAP permettant de paramétrer l'authentification:
Le paramètre LDAP_UserName définit le modèle de nom d'utilisateur LDAP. exemple: CN={$XMLC_UserName},DC=XMLRAD,DC=COM. XMLC_UserName est le nom d'utilisateur saisi dans la boite de login. Si l'utilisateur saisi le nom toto dans la boite de login, le LDAP_UserName donnera: CN=toto,DC=XMLRAD,DC=COM. LDAP_UserName est alors introduit dans le Context pour être utilisé dans d'autres paramètres.
Le paramètre LDAP_UserURL est le modèle d'URL LDAP qui sera utilisé pour effectuer le Bind ou l'authentification auprès du serveur. Exemple: LDAP://localhost/{$LDAP_UserName}. le paramètre LDAP_UserName calculé précédemment peut être utilisé dans cette URL. Avec un nom d'utilisateur toto cela donnera: LDAP://localhost/CN=toto,DC=XMLRAD,DC=COM. Le mot de passe saisi dans la boite de login sera utilisé avec cette URL ainsi que le LDAP_UserName pour effectuer le Bind ou l'authentification.
Le paramètre LDAP_SearchURL indique l'URL sur laquelle XMLRAD va pouvoir effectuer la recherche des groupes d'utilisateurs définis dans l'annuaire. Exemple: LDAP://localhost/DC=XMLRAD,DC=COM.
Le paramètre LDAP_MembershipFilter indique le critère de filtre pour déterminer dans quels groupes est associé un utilisateur. Exemple: (member={$LDAP_UserName}).
Il faut ensuite faire la relation entre les groupes XMLRAD et ceux de LDAP, pour cela on va aller dans chacun des groupes et remplir le champ DirectoryGroupName en Majuscule. Exemple: ADMINS
Pour ne rester logger jusqu'a que la fenêtre du navigateur soit fermé, il faut utiliser un cookie de session, c'est à dire que le délai d'expiration soit nulle.
Pour faire un cookie de session, on peut utiliser le code suivant:
XMLRequest.AddCookie(Name, Value, Domain, Path, 0
);
XMLRequest.
AddCookie
(Name,
Value,
Domain,
Path,
0
);
XMLRequest.
AddCookie
(Name,
Value,
Domain,
Path,
0
);
xmlRequest.addCookie
(Name, Value, Domain, Path, "
"
);