Général:FAQ GestionUtilisateurs

De WikiFr_dbSQWare
Révision datée du 17 février 2025 à 13:59 par Ymauger (discussion | contributions) (Explication des différents types d'utilisateur)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Généralités


Attention.png
Warning:
Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !.


Dans ce chapitre, on considèrera que SQWareWeb a été installé sur dbsqware@sqwarebox ...

Limites de cette section

Ce chapitre ne traite que de la gestion des utilisateurs de l'interface web de dbsqware, et que le module SQWareWeb est sur un socle déjà paramétré et fonctionnel.

MODOP général ajout d'un utilisateur


Explication des différents types d'utilisateur

Dans dbsqware vous pouvez créer et ajouter des utilisateurs de différents types :

  • des utilisateurs locaux
  • des utilisateurs externes, Active Directory ou ldap
  • des utilisateurs API
  • des utilisateurs API Maj


Note.png
Note:
Pensez à vous connecter sur l'interface web dbsqware avec un compte ayant les privilèges admin pour faire les manipulations proposées.


Ajout d'un utilisateur local

Ce sont des utilisateurs internes à dbSQWare et donc l'authentification est faite par la machine dbSQWare.


Pour Ajouter un utilisateur local capable de se connecter : il faut aller sur l'interface web de dbsqware dans Administration (menu 1) Access (menu 2) Logins (menu 3).

En haut à droite vous cliquez sur le bouton Add.

Add_button

Le formulaire suivant s'ouvre :

Formulaire

Lors de la création de l'utilisateurs, remplir le formulaire de la façon suivante :

  • dans Authentification : choisir internal
  • dans User Name : mettre le login que vous voulez pour votre utilisateur
  • dans surname et firstname : mettre les informations nécessaires pour différencier les utilisateurs.
  • choisir YES comme bouton sous SQWareWeb
  • dans comments : commentaires optionnels
  • saisir le mot de passe pour ce compte (une fois connecté l'utilisateur peut le changer)


Ajout d'un utilisateur Active Directory

Il y aura quelques informations et configurations nécessaires à cette configuration :

  • votre machine dbsqware doit pouvoir identifier les DC (Domain Controler) de votre domaine
    • soit en utilisant 1 DC ou plus en tant que server DNS
    • soit en utilisant comme serveur DNS un DNS ayant les enregistrements SRV pointant sur vos DC
  • votre machine dbsqware et vos DC doivent avoir une connectivité réseau sur les ports ldap utilisés dans votre infra (389 par défaut)
  • les utilisateurs doivent exister sur votre domaine


Identification du contrôleur de domaine

Il faut spécifier à dbSQWare comment trouver le contrôleur de domaine et le nom de domaine de vos utilisateurs.

Sur la machine dbSQWare avec le compte dbsqware modifier le fichier /home/dbsqware/dbSQWare/SQWareWeb/custom/authentication_custom.php pour modifier si besoin les variables $lvsqw_ldaphost, $lvsqw_ldapport et $lvsqw_ldapbind.

#From dbsqware@vmsqwarebox

dbsqware@vmsqwarebox:/home/dbsqware/dbSQWare/SQWareWeb/custom $ vi authentication_custom.php
...
function gfsqw_connection_external_ad($lasqw_parameters)
{
$lvsqw_error = false;
$lvsqw_errorMSG = "";
$lvsqw_userName = $lasqw_parameters[0];
$lvsqw_password = $lasqw_parameters[1];

// Server connection

// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\
// Variables : $lvsqw_ldaphost
// $lvsqw_ldapport
// To be adapted according to the company / Fr: A adapter selon l'entreprise
// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

$lvsqw_ldaphost = "srvaddsw01.domain.tld"; // /!\ EXAMPLE /!\
$lvsqw_ldapport = 389; // /!\ EXAMPLE /!\


$lvsqw_ldapconnect = ldap_connect($lvsqw_ldaphost, $lvsqw_ldapport);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_REFERRALS, 0);

if($lvsqw_ldapconnect){

// Authentication

// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\
// Example with '@dbsqware.ad' / Fr: Exemple avec '@dbsqware.ad'
// To be adapted according to the company / Fr: A adapter selon l'entreprise
// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

$lvsqw_ldapbind = ldap_bind($lvsqw_ldapconnect, $lvsqw_userName.'@domain.tld', $lvsqw_password); // /!\ EXAMPLE /!\

...


Attention.png
Warning:
Ne modifier que les informations en bleu si nécessaire..


Ajout des utilisateurs sur l'interface web dbSQWare

Bien que l'authentification sera faite par votre contrôleur de domaine il faut déclarer à dbSQWare quels sont les comptes qui pourront se connecter.

Pour autoriser un utilisateur du domaine Active Directory à ce connecter à SQWareWeb : il faut aller sur l'interface web de dbSQWare dans Administration (menu 1) Access (menu 2) Logins (menu 3).

En haut à droite vous cliquez sur le bouton Add.

Add_button


Lors de la création de l'utilisateur, remplir le formulaire de la façon suivante :

  • dans Authentification : choisir external_ad
  • dans User Name : mettre le login AD de votre utilisateur
  • dans surname et firstname : mettre les informations nécessaires pour différencier les utilisateurs.
  • choisir YES comme bouton sous SQWareWeb
  • dans comments : commentaires optionnels

formulaire


Ajout d'un utilisateur LDAP

Il y aura quelques informations et configurations nécessaires à cette configuration :

  • votre machine dbSQWare doit pouvoir identifier le serveur ldap de votre domaine
    • soit en utilisant ce serveur en tant que serveur DNS
    • soit en utilisant comme serveur DNS un DNS ayant les enregistrements SRV pointant sur ce serveur ldap
  • votre machine dbSQWare et votre serveur ldap doivent avoir une connectivité réseau sur les ports ldap utilisés dans votre infra.
  • les utilisateurs doivent exister sur votre domaine


Identification du serveur ldap

Il faut spécifier à dbSQWare comment trouver le serveur ldap et le nom de domaine de vos utilisateurs.

Pour cela avec l'utilisateur dbsqware vous devez remplacer tout le contenu du fichier /home/dbsqware/dbSQWare/SQWareWeb/custom/authentication_custom.php par :

<?php
//########################################################################################
// SQWareWeb module of dbSQWare
// dbSQWare is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS for a PARTICULAR PURPOSE. See the
// CGU/CGA for more details.
// You should have received a copy of the CGU/CGA
// along with this program. If not, see <http://www.dbsqware.com/licenses/>.
// For information : contact@dbsqware.com or www.dbsqware.com
//########################################################################################
//# @Copyright 2010-2025, dbSQWare (www.dbsqware.com)
error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_WARNING & ~E_STRICT);

// Function : Login via AD
// -------------------------

// $lasqw_parameters ==> Array with 2 elements :
// - username
// - password

function gfsqw_connection_external_ad($lasqw_parameters)
{
$lvsqw_error = false;
$lvsqw_errorMSG = "";
$lvsqw_userName = $lasqw_parameters[0];
$lvsqw_password = $lasqw_parameters[1];

$lvsqw_userLogin = "uid=" . $lvsqw_userName . ",ou=people,dc=example,dc=com" ; // For LDAP server, if needed change dn informations with yours

// Server connection

// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\
// Variables : $lvsqw_ldaphost $lvsqw_unixldaphost
// $lvsqw_ldapport $lvsqw_unixldapport
// To be adapted according to the company / Fr: A adapter selon l'entreprise
// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

$lvsqw_ldaphost = "srv-adds01"; // /!\ EXAMPLE for Active directory /!\
$lvsqw_ldapport = 389; // /!\ EXAMPLE for Active Directory/!\

$lvsqw_unixldaphost = "ldaps://srv-ldap01"; // /!\ EXAMPLE for LDAP unix /!\
$lvsqw_unixldapport = 636; // /!\ EXAMPLE for LDAP unix /!\

$lvsqw_ldapconnect = ldap_connect($lvsqw_ldaphost, $lvsqw_ldapport);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_REFERRALS, 0);

if($lvsqw_ldapconnect){

// Authentication

// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\
// Example with '@dbsqware.ad' / Fr: Exemple avec '@dbsqware.ad'
// To be adapted according to the company / Fr: A adapter selon l'entreprise
// /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\ /!\

$lvsqw_ldapbind = ldap_bind($lvsqw_ldapconnect, $lvsqw_userName.'@dbsqware.ad', $lvsqw_password); // /!\ EXAMPLE /!\

if(!($lvsqw_ldapbind)) {

ldap_close($lvsqw_ldapconnect);

ldap_set_option(NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, 0);

$lvsqw_ldapconnect = ldap_connect($lvsqw_unixldaphost, $lvsqw_unixldapport);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_REFERRALS, 0);

if($lvsqw_ldapconnect){

$lvsqw_ldapbind = ldap_bind($lvsqw_ldapconnect, $lvsqw_userLogin, $lvsqw_password);

if(!($lvsqw_ldapbind)) {
$lvsqw_error = true;
$lvsqw_errorMSG = ldap_error($lvsqw_ldapconnect);
}
}
ldap_close($lvsqw_ldapconnect);
}
}
else {
ldap_close($lvsqw_ldapconnect);

ldap_set_option(NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, 0);

$lvsqw_unixldapconnect = ldap_connect($lvsqw_unixldaphost, $lvsqw_unixldapport);
ldap_set_option($lvsqw_unixldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($lvsqw_unixldapconnect, LDAP_OPT_REFERRALS, 0);
if ($lvsqw_unixldapconnect){

$lvsqw_ldapbind = ldap_bind($lvsqw_unixldapconnect, $lvsqw_userLogin, $lvsqw_password);

if(!($lvsqw_ldapbind)) {
$lvsqw_error = true;
$lvsqw_errorMSG = ldap_error($lvsqw_ldapconnect);
}
}
ldap_close($lvsqw_ldapconnect);
$lvsqw_error = true;
$lvsqw_errorMSG = "Unable to connect to LDAP server";
}
return array($lvsqw_error, $lvsqw_errorMSG);
}

?>


Cette version du fichier vous permet d'avoir à la fois un domaine Active Directory et un domaine LDAP pour l'authentification externe de vos utilisateurs.

Attention.png
Warning:
Ne modifier que les informations en bleu si nécessaire..


Ajout des utilisateurs sur l'interface web dbSQWare

Bien que l'authentification sera faite par votre serveur ldap il faut déclarer à dbSQWare quels sont les comptes qui pourront se connecter.

Pour autoriser un utilisateur du domaine ldap à ce connecter à SQWareWeb : il faut aller sur l'interface web de dbSQWare dans Administration (menu 1) Access (menu 2) Logins (menu 3).

En haut à droite vous cliquez sur le bouton Add.

Add_button


Lors de la création de l'utilisateur, remplir le formulaire de la façon suivante :

  • dans Authentification : choisir external_ad
  • dans User Name : mettre le login ldap de votre utilisateur
  • dans surname et firstname : mettre les informations nécessaires pour différencier les utilisateurs.
  • choisir YES comme bouton sous SQWareWeb
  • dans comments : commentaires optionnels

formulaire


MODOP général ajout de privilèges à utilisateur

Si vous venez d'ajouter un utilisateur, il peut se connecter mais il n'a pas encore de privilèges.
new_user


Si on le connecte à l'interface, aucune option n'est disponible, ni aucun lien. no_priv

Pour donner des droits à l'utilisateur : il faut aller sur l'interface web de dbSQWare dans Administration (menu 1) Access (menu 2) LoginsPrivs (menu 3).

En haut à droite vous cliquez sur le bouton Add.

Add_button


Lors de l'ajout de privilèges :

  • dans Grantee User Name : choisir votre nouvel utilisateur
  • dans Grantee Group Name : choisir le groupe qui correspond aux privilèges que vous voulez donner à cet utilisateur
  • dans comments : commentaires optionnels

LOGINSPRIVS


Une fois connecté votre utilisateur aura les droits sélectionnés

PRIVS_TRUE