Documentation
¶
Overview ¶
Package ldap fournit un client LDAPS pour interagir avec Active Directory.
Opérations supportées :
- Connexion sécurisée LDAPS (port 636, TLS)
- Création d'utilisateur (sAMAccountName, userPrincipalName, displayName)
- Définition du mot de passe (unicodePwd en UTF-16LE entre guillemets)
- Activation du compte (userAccountControl = 512)
- Désactivation du compte (userAccountControl = 514)
- Suppression d'utilisateur
- Recherche d'utilisateur
Contrainte : la définition du mot de passe via unicodePwd nécessite impérativement une connexion LDAPS (port 636) — LDAP simple ne fonctionne pas.
Chaque méthode retourne des erreurs explicites pour permettre le rollback lors du flux de création atomique (invitation).
Index ¶
- Constants
- type Client
- func (c *Client) AddUserToGroup(userDN, groupRef string) error
- func (c *Client) Close()
- func (c *Client) CreateUser(username, displayName, email, password, role string) (string, error)
- func (c *Client) DeleteUser(userDN string) error
- func (c *Client) DisableUser(userDN string) error
- func (c *Client) EnableUser(userDN string) error
- func (c *Client) FindUser(username string) (*UserEntry, error)
- func (c *Client) GetGroupMembers(groupDN string) ([]UserEntry, error)
- func (c *Client) IsUserAdmin(username string, user *UserEntry) (bool, error)
- func (c *Client) ResetPassword(userDN, newPassword string) error
- func (c *Client) ResolveUserAccess(username string) (*UserEntry, bool, error)
- func (c *Client) TestConnection() error
- func (c *Client) UpdateUserContact(userDN, email, phone string) error
- type UserEntry
Constants ¶
const ( // UAC_NORMAL_ACCOUNT = 512 : compte utilisateur normal activé. UAC_NORMAL_ACCOUNT = 512 // UAC_DISABLED_ACCOUNT = 514 : compte utilisateur désactivé (512 + 2). UAC_DISABLED_ACCOUNT = 514 // Roles de provisioning LDAP utilises pour l'affectation automatique de groupe. ProvisionRoleUser = "user" ProvisionRoleInviter = "inviter" ProvisionRoleAdmin = "admin" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client encapsule la connexion LDAPS à Active Directory.
func New ¶
func New(cfg config.LDAPConfig) *Client
New crée un nouveau client LDAP à partir de la configuration.
func (*Client) AddUserToGroup ¶
AddUserToGroup ajoute un utilisateur à un groupe AD spécifique. groupRef peut être un DN complet (CN=...,DC=...) ou un nom simple de groupe.
func (*Client) Close ¶
func (c *Client) Close()
Close ferme proprement la connexion LDAP persistante.
func (*Client) CreateUser ¶
CreateUser crée un nouvel utilisateur dans l'Active Directory.
Paramètres :
- username : nom de connexion (sAMAccountName)
- displayName : nom affiché
- email : adresse email (optionnel, chaîne vide si absent)
- password : mot de passe en clair (sera encodé en UTF-16LE)
Le compte est créé EN ACTIVÉ (userAccountControl = 512).
Retourne le DN (Distinguished Name) de l'utilisateur créé. En cas d'erreur, aucun nettoyage n'est nécessaire côté LDAP (l'ADD est atomique).
func (*Client) DeleteUser ¶
DeleteUser supprime un utilisateur de l'AD par son DN.
Utilisé lors du rollback ou de la suppression admin.
func (*Client) DisableUser ¶
DisableUser désactive un compte AD (userAccountControl = 514).
func (*Client) EnableUser ¶
EnableUser active un compte AD (userAccountControl = 512).
func (*Client) FindUser ¶
FindUser recherche un utilisateur LDAP via les attributs login compatibles en appliquant le filtre de recherche LDAP configure. Retourne nil si l'utilisateur n'est pas trouvé (pas d'erreur).
func (*Client) GetGroupMembers ¶
GetGroupMembers récupère la liste de tous les utilisateurs membres d'un groupe LDAP.
func (*Client) IsUserAdmin ¶
IsUserAdmin valide l'acces administrateur via LDAP Admin Filter. Si aucun filtre admin n'est configure, retourne false sans erreur.
func (*Client) ResetPassword ¶
ResetPassword réinitialise le mot de passe d'un utilisateur dans l'AD.
Le mot de passe est encodé en UTF-16LE entre guillemets, comme requis par l'attribut unicodePwd d'Active Directory. Cette opération NÉCESSITE une connexion LDAPS (port 636).
func (*Client) ResolveUserAccess ¶
ResolveUserAccess applique le filtre de recherche LDAP et retourne aussi si l'utilisateur est administrateur via le filtre administrateur LDAP.
func (*Client) TestConnection ¶
TestConnection vérifie la connectivité réseau + bind LDAP.
func (*Client) UpdateUserContact ¶
UpdateUserContact met a jour les attributs de contact LDAP pour un utilisateur. Les attributs cibles sont:
- telephoneNumber/mobile (si un numero est fourni)
type UserEntry ¶
type UserEntry struct {
DN string
Username string // Attribut identifiant resolu (sAMAccountName/uid/...)
UID string
UsernameAttribute string
DisplayName string
Email string
UPN string // userPrincipalName
UAC string // userAccountControl
IsDisabled bool
}
UserEntry contient les attributs pertinents d'un utilisateur AD.