Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
Authentification client courant
|
Authentification client courant {( domaine ; protocole )} -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
domaine | Texte |
![]() |
Nom du domaine | |||||
protocole | Texte |
![]() |
"Kerberos", "NTLM" ou chaîne vide | |||||
Résultat | Texte |
![]() |
Nom d'utilisateur de session retourné par Windows | |||||
La commande Authentification client courant envoie au serveur Active Directory de Windows une requête d'authentification du client courant et, en cas de succès, retourne le nom d'utilisateur Windows de ce client (identifiant de session). Si l'authentification échoue, une chaîne vide est retournée.
Cette commande peut être utilisée uniquement dans le contexte d'une implémentation SSO sous Windows avec 4D Server. Pour plus d'informations, veuillez vous reporter à la section Authentification unique (SSO) sous Windows.
Généralement, le client et le serveur doivent être gérés par le même serveur Active Directory. Cependant, des configurations spécifiques peuvent être prises en charge, comme décrit dans le paragraphe Configuration requise pour le SSO.
La chaîne retournée par la commande doit être passée à votre module d'identification 4D. Vous pouvez ainsi déterminer automatiquement les droits d'accès du client en fonction de son identifiant de session Windows. Si vous définissez un "Utilisateur par défaut", vous pouvez implémenter une interface dans laquelle l'utilisateur n'a pas de ressaisir son identifiant -- la boîte de dialogue d'identification de l'utilisateur de 4D Server n'apparaît pas (voir exemple).
Optionnellement, la commande peut retourner deux paramètres de type texte :
Ces paramètres peuvent être utilisés pour accepter ou rejeter les connexions si vous souhaitez filtrer les accès en fonction du domaine du client ou du protocole utilisé.
Le niveau de sécurité de l'authentification (c'est-à-dire le degré de confiance que vous pouvez avoir dans le nom d'utilisateur récupéré par la commande) dépend de la manière dont l'utilisateur a été identifié. Les valeurs retournées dans les différents paramètres de la commande Authentification client courant vous permettent de savoir quelles informations ont été utilisées pour l'identification et donc, le niveau de sécurité :
Nom d'utilisateur | domaine | protocole | Commentaire |
Vide | Vide | Vide | La commande n'a pas pu récupérer d'information d'authentification relatives à l'utilisateur connecté. |
Valeur reçue | Vide | NTLM | La valeur reçue est le nom d'utilisateur local, défini sur la machine locale. |
Valeur reçue | Valeur reçue | NTLM | Le nom d'utilisateur retourné a été authentifié via le protocole NTLM dans le domaine retourné par le paramètre domaine. Dans ce cas, vous devez contrôler le domaine afin d'augmenter le niveau de sécurité. Comme certaines architectures comportent une forêt de domaines, vous devez en particulier vérifier que le domaine dans lequel l'utilisateur a été identifié est bien le domaine souhaité. |
Valeur reçue | Valeur reçue | Kerberos | Le nom d'utilisateur retourné a été authentifié avec le protocole Kerberos dans le domaine souhaité. Cette configuration constitue le niveau de sécurité le plus élevé. |
Pour plus d'informations sur les configurations, veuillez vous reporter au paragraphe Configuration requise pour le SSO.
Dans votre base 4D Server, vous avez conçu un système de contrôle d'accès basé sur la fonctionnalité des utilisateurs et des groupes de 4D. Vous souhaitez configurer votre application de manière à ce que les utilisateurs 4D distants sous Windows puissent se connecter directement à 4D Server (sans qu'aucune boîte de dialogue de mot de passe ne s'affiche), tout en étant connectés avec leurs propres droits d'accès.
//Méthode base Sur ouverture connexion serveur
C_ENTIER LONG($0;$1;$2;$3)
$login:=Authentification client courant($domain;$protocol)
Si($login #"") //un nom d'utilisateur a bien été retourné
//appelez votre méthode d'identification personnalisée
$0:=CheckCredentials($login)
//elle doit retourner 0 en cas de succès, -1 en cas d'erreur
Sinon
$0:=-1 //rejeter la connexion
Fin de si
Note : Cet exemple constitue un scénario de base, qui doit être adapté à vos solutions. La méthode d'identification personnalisée de l'utilisateur 4D (CheckCredentials dans l'exemple ci-dessus) peut être basée sur l'une des implémentations suivantes :
Produit : 4D
Thème : Environnement système
Numéro :
1355
Nom intl. : Current client authentication
Créé : 4D v15 R5
4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)