ldappy (1.0.7)

Published 2024-03-13 10:56:35 +04:00 by cdamour2

Installation

pip install --index-url  ldappy

About this package

Ldappy CLI est un package écrit en python qui a pour but de manipuler le ldap de l'Université de la Réunion en ligne de commande.

Ldappy-Cli

Ldappy CLI est un package écrit en python qui a pour but de manipuler un Ldap, en particulier, le ldap de l'Université de la Réunion en ligne de commande.

Pour le moment, les fonctionnalités de ldappy sont :

  • ajouter/supprimer une valeur dans l'attribut runUnivAuthorization d'un individu
  • lister les Unités Organisationnelles

Prérequis

Installation

Classique

  • Récupérer le projet ldappy.
git clone https://git.univ-reunion.fr/sda-misc/ldappy
cloning into 'ldappy' ...
---> 100%
Done
  • Installer les modules neccessaires pour l'utilisation de l'application.
$ pip install -r requirements.txt
---> 100%
Successfully installed typer, ldap3, PyYAML, tabulate
  • Configurer un accès ldap personnalisé si besoin en créant ou modifiant le fichier custom_ldap.yaml qui se trouve dans le dossier ldappy/config.

Voir section ci-dessous

  • Utiliser le fichier main-dev.py pour lancer vos commandes.
    • Exemple : python main.py --help

Création du fichier de configuration ldap

Pour pouvoir utiliser l'application, un fichier de configuration au format yml doit être créér avec les informations de connexion au Ldap. Par défaut, l'application se connectant sur LdapR sans les droits admin, donc accès uniquement en lecture.
Ce fichier de configuration doit se trouver dans le dossier ldappy/config sous le nom ldap.yml

$ tree

|-- ldappy
|   |-- config
|   |   `-- ldap.yml
...

Ci-dessous, le template du fichier de configuration ldap.yml.

// Template du fichier configuration

ldap:
  host: ldapr.univ.run
  port: 636                                        # port par défaut
  base: ''                                         # non utilisé
  ldap_user: 'cn=toto,dc=univ-reunion,dc=fr'       # utilisateur ldap
  ldap_password: 'ceciestunmotdepasse'             # mot de passe de l'utilisateur ldap

Poetry

Ldappy-Cli peut-être utiliser et installer via Poetry.

C'est un gestionnaire de package et de dépendance. C'est l'équivalent Python de npm.

Toutes les commandes sont disponibles directement sur le site de Poetry.

Wheel

Vous pouvez directement installer le package ldappy-cli via le wheel disponible dans le dossier dist.

Pour l'installation :

$ pip install ldappy-0.1.0-py3-none-any.whl

Guide d'utilisation

L'application possède deux commandes :

  • rununivauthorization : manipulation de l'attribut ldap runUnivAuthorization pour un utilisateur donné.
  • uo : recherche et listing d'Unité Organisationnelle via la branche ou=Structures,dc=univ-reunion,dc=fr.

Général

$ python main-dev.py --help                                                                                                                                                            ✔  ldappy   10:29:14 
Usage: main-dev.py [OPTIONS] COMMAND [ARGS]...

Options:
  --version
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.
  --help                          Show this message and exit.

Commands:
  config                Conf accès ldap
  rununivauthorization  Manipulation de l'attribut
  uo                    Recherche d'UO
                  Recherche d'UO

Gestion de runUnivAuthorization

$ python main.py rununivauthorization --help                                                                                                                                           ✔  ldappy   11:20:29 
Usage: main.py rununivauthorization [OPTIONS] COMMAND [ARGS]...

  Manipulation de l'attribut `runUnivAthorization` disponible dans ldap
  Ajout / Suppression de valeur

Options:
  --help  Show this message and exit.

Commands:
  add     Ajoute une valeur ou une liste de valeur dans l'attribut...
  delete  Supprime une valeur ou une liste de valeur dans l'attribut...
  info    Affiche les informations concernants l'attribut...

Unité Organisationnelle

$ python main.py uo --help                                                                                                                                                             ✔  ldappy   11:54:57 
Usage: main.py uo [OPTIONS] COMMAND [ARGS]...

  Voir et lister les UO (Unités Organisationnelles) qui sont disponible dans
  le ldap

Options:
  --help  Show this message and exit.

Commands:
  all  Liste toutes les UO sous format json

Connection ldap

$ python main-dev.py config --help                                                                                                                                                     ✔  ldappy   10:38:00 
Usage: main-dev.py config [OPTIONS] COMMAND [ARGS]...

  Configuration des accès pour se connecter au ldap

Options:
  --help  Show this message and exit.

Commands:
  custom   Crée un fichier de configuration Ldap personnalisé.
  default

RunUnivAuthorization

Pour ajouter ou supprimer une valeur à l'attribut runUnivAuthorization pour un utilisateur, il faut connaitre soit son dn dans le ldap ou alors son matricule SIHAM.

Plus d'informations sur l'attribut sont disponibles dans le fichier ldappy/docs/authorization.md

Exemple

  • Ajouter la valeur "toto:*" à l'utilisateur "uid=ind12345"
$ python ldappy rununivauthorization add "toto:*" -u "uid=ind12345,ou=People,dc=univ-reunion,dc=fr"
La valeur "toto:*" a été ajouté à `runUnivAuthorization` pour l'utilisateur "uid=ind12345"
  • Ajouter la valeur "tata" à l'utilisateur dont le numéro SIHAM correspond à RUN00012345
$ python ldappy rununivauthorization add "toto:*" -u "RUN00012345" --flag matricule
La valeur "tata" a été ajouté à `runUnivAuthorization` pour l'utilisateur "RUN00012345"

Structure

La commande uo est liée aux structures Unité Organisationnelle (UO). Pour le moment, la commande ne permet que de lister les UO.

Exemple

$ python ldappy uo all
[
  {
    "attributes": {
      "description": [
        "Université"
      ],
      "supannCodeEntite": [
        "HU00000000"
      ]
    },
    "dn": "supannCodeEntite=HU00000000,ou=Structures,dc=univ-reunion,dc=fr"
  },
  ...

Requirements

Requires Python: >=3.9,<4.0
Details
PyPI
2024-03-13 10:56:35 +04:00
24
cdamour2
48 KiB
Assets (2)
Versions (7) View all
1.0.7 2024-03-13
1.0.6 2024-02-21
1.0.5 2024-02-20
1.0.3 2023-10-30
1.0.2 2023-09-27