Skip to content

Commit e5c8878

Browse files
committed
docs windows et librairie
1 parent 154d45e commit e5c8878

File tree

5 files changed

+285
-5
lines changed

5 files changed

+285
-5
lines changed

docs/.DS_Store

0 Bytes
Binary file not shown.

docs/.vuepress/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ theme: defaultTheme({
5252
prefix: '/backends',
5353
children: [
5454
'backends',
55+
'librairie_python',
5556
'backend_AD',
5657
'backend_LDAP'
5758
]

docs/backends/backend_AD.md

Lines changed: 112 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,107 @@
11
# Backend AD
22
Ce backup sert à synchroniser les identitées avec Active Directory sur windows server >= 2019
33

4+
## Modifications necessaires sur windows serveur (>=Windows 2019)
5+
6+
### Activer ssh :
7+
8+
* verification de la fonctionnalité
9+
10+
```
11+
PS >Get-WindowsCapability -Online -Name Open*
12+
13+
14+
Name : OpenSSH.Client~~~~0.0.1.0
15+
State : Installed
16+
DisplayName : Client OpenSSH
17+
Description : Client SSH (Secure Shell) basé sur OpenSSH, pour la gestion de clés sécurisée et l’accès aux
18+
ordinateurs distants.
19+
DownloadSize : 1323493
20+
InstallSize : 5301402
21+
22+
Name : OpenSSH.Server~~~~0.0.1.0
23+
State : NotPresent
24+
DisplayName : Serveur OpenSSH
25+
Description : Serveur SSH (Secure Shell) basé sur OpenSSH, pour la gestion de clés sécurisée et l’accès à partir
26+
d'ordinateurs distants.
27+
DownloadSize : 1297677
28+
InstallSize : 4946932
29+
```
30+
* Activation :
31+
32+
```
33+
PS> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
34+
35+
36+
Path :
37+
Online : True
38+
RestartNeeded : False
39+
```
40+
41+
* verification :
42+
43+
```
44+
PS> Get-Service sshd
45+
46+
Status Name DisplayName
47+
------ ---- -----------
48+
Stopped sshd OpenSSH SSH Server
49+
50+
PS> Get-Service ssh-agent
51+
52+
Status Name DisplayName
53+
------ ---- -----------
54+
Stopped ssh-agent OpenSSH Authentication Agent
55+
56+
```
57+
58+
* demarrage des services
59+
60+
```
61+
PS > Start-Service sshd
62+
PS> Start-Service ssh-agent
63+
```
64+
65+
* vérification des services
66+
67+
```
68+
Get-Service sshd
69+
70+
Status Name DisplayName
71+
------ ---- -----------
72+
Running sshd OpenSSH SSH Server
73+
74+
75+
PS C:\Users\Administrateur> Get-Service ssh-agent
76+
77+
Status Name DisplayName
78+
------ ---- -----------
79+
Running ssh-agent OpenSSH Authentication Agent
80+
```
81+
82+
* activation au démarrage
83+
84+
```
85+
PS >Set-Service -Name ssh-agent -StartupType Automatic
86+
PS >Set-Service -Name sshd -StartupType Automatic
87+
```
88+
89+
### Changement de l'encodage par defaut en UTF-8
90+
91+
Si vous voulez les accents dans les noms des utilisateurs vous devez changer l'encodage par défaut
92+
93+
```
94+
Panneau de configuration
95+
> Horloge et région
96+
> Région
97+
> Administration
98+
> Modifier les paramètres régionaux
99+
Cochez : Beta: Utilisez le format Unicode UTF-8 pour une prise en charge ....
100+
```
101+
102+
103+
104+
4105
## Installation
5106

6107
Pour l'instant juste le paquet debian est disponible
@@ -165,4 +266,14 @@ Le powershell doit donner un code de retour (exit)
165266
* 0 tout est ok
166267
* 1 Erreur
167268

168-
L'erreur ou le message doit être écrite sur la sortie standard (Write-Host)
269+
L'erreur ou le message doit être écrite sur la sortie standard (Write-Host)
270+
271+
# deboggage
272+
273+
vous pouvez voir le script généré sur le window en passant --debug=1 au script de backend :
274+
275+
```
276+
cat /tmp/dummy.json|./upsertidentity --debug=1
277+
```
278+
le script généré dans windows se trouvera dans le répertoire utilisateur
279+

docs/backends/backends.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ Exemple :
100100
```
101101
Le backend traitera la demande et renverra sur sa sortie standard le resultat au format JSON avec 2 clés :
102102

103-
* code : 0 OK autre que 0 probleme
103+
* status : 0 OK autre que 0 probleme
104104
* message : le message pour le journal de sesame
105105

106106
Exemple :
107107
```
108-
{"code": 0, "message": "server alive"}
108+
{"status": 0, "message": "server alive"}
109109
```
110110

111111
## Structure d'un backend
@@ -193,5 +193,11 @@ exit 0
193193
./config.yml
194194
```
195195

196-
197-
196+
# Debuggage d'un backend
197+
Il est conseillé de mettre me un backend dummy (voir l exemple) pour avoir l'entrée json. Dans l exemple il creera un fichier /tmp/dummy.json pour l'insertion et la modification
198+
199+
```
200+
cd /var/lib/sesame-daemon/backends/01xx/bin
201+
cat /tmp/dummy.json|./upsertidentity.py
202+
```
203+

docs/backends/librairie_python.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# Librairie d'aide Python
2+
Une librarie de méthode pour le backend vous aidera à developper facilement un backend
3+
4+
Cette librairie backends-utils (
5+
6+
### read_config(file)
7+
Permet de charger le fichier de config
8+
9+
### config(key,default='')
10+
11+
Permet de lire une clé du fichier de configuration qui aura été au préalable chargé par **read_config()**
12+
13+
retour : la valeur de la clé
14+
15+
Exemple :
16+
17+
```python3
18+
import sys
19+
sys.path.append('../lib')
20+
import backend_utils as u
21+
22+
u.readConfig('../etc/config.conf')
23+
host=u.config('host')
24+
```
25+
26+
### readjsoninput()
27+
Permet de lire la chaine json sur l'entrée standard est en faire un dictionnaire
28+
29+
retour : Dict
30+
31+
### returncode(code,message)
32+
Permet de générer la chaine json de retour pour le daemon
33+
34+
retour : String au format json
35+
36+
Exemple
37+
38+
```
39+
import sys
40+
sys.path.append('../lib')
41+
import backend_utils as u
42+
json_message=u.returncode(0,"Tout est ok")
43+
print(json_message)
44+
```
45+
46+
la sortie donnera {"status":0,"message": "Tout est ok"}
47+
48+
### is_backend_concerned(entity)
49+
50+
entity etant le tableau dict fourni par readjsoninput()
51+
52+
retour boolean true ou false
53+
54+
ex:
55+
56+
```python3
57+
import sys
58+
sys.path.append('../lib')
59+
import backend_utils as u
60+
u.read_config('../etc/config.conf')
61+
entity=u.readjsoninput()
62+
if is_backend_concerned(entity):
63+
print(u.returncode(0,'Mon backend est concerné')
64+
else:
65+
print(u.returncode(0,'Mon backend est concerné')
66+
67+
```
68+
69+
### find_key(element, key)
70+
71+
Permet de chercher une clé dans l'arborescence d'un dictionnaire
72+
73+
retour : la valeur de la clé
74+
75+
### make_entry_array(entity)
76+
77+
Permet de construire un tableau clé =>valeur à un niveau à partir d'un dictionnaire en arbre
78+
79+
ex:
80+
81+
entree de depart :
82+
83+
```
84+
{
85+
"concernedTo": "66c22991bdc3c9a7563a9d4f",
86+
"payload": {
87+
"identity": {
88+
"action": "IDENTITY_UPDATE",
89+
"identity": {
90+
"_id": "66c22991bdc3c9a7563a9d4f",
91+
"metadata": {
92+
"createdBy": "admin",
93+
"createdAt": "2024-08-18T17:04:17.757Z",
94+
"lastUpdatedBy": "admin",
95+
"lastUpdatedAt": "2024-08-20T09:45:57.596Z"
96+
},
97+
"state": 2,
98+
"lifecycle": -1,
99+
"inetOrgPerson": {
100+
"cn": "AVANIS Alain",
101+
"displayName": "Alain Avanis",
102+
"facsimileTelephoneNumber": "",
103+
"givenName": "Alain",
104+
"labeledURI": "",
105+
"mail": "aa@mondomaine.fr",
106+
"mobile": "06 00 00 00 00",
107+
"postalAddress": "",
108+
"preferredLanguage": "",
109+
"sn": "AVANIS",
110+
"telephoneNumber": "",
111+
"title": "",
112+
"uid": "aavanis",
113+
"employeeNumber": "111111",
114+
"employeeType": "TAIGA",
115+
"departmentNumber": "",
116+
"jpegPhoto": "",
117+
"userCertificate": "",
118+
"userPassword": ""
119+
} ,
120+
"initState": 0,
121+
"fingerprint": "b65c62b466b0c401398c9da3ca489a880befc38f049e6dfacb48eded011eff11"
122+
}
123+
}
124+
}
125+
```
126+
127+
128+
donnera :
129+
130+
```
131+
{
132+
"concernedTo": "66c22991bdc3c9a7563a9d4f",
133+
"createdBy": "admin",
134+
"createdAt": "2024-08-18T17:04:17.757Z",
135+
"lastUpdatedBy": "admin",
136+
"lastUpdatedAt": "2024-08-20T09:45:57.596Z"
137+
"state": 2,
138+
"lifecycle": -1,
139+
"cn": "AVANIS Alain",
140+
"displayName": "Alain Avanis",
141+
"facsimileTelephoneNumber": "",
142+
"givenName": "Alain",
143+
"labeledURI": "",
144+
"mail": "aa@mondomain.fr",
145+
"mobile": "06 00 00 00 00",
146+
"postalAddress": "",
147+
"preferredLanguage": "",
148+
"sn": "AVANIS",
149+
...
150+
}
151+
```
152+
153+
### make_entry_array_without_empty(entity)
154+
155+
idem que make_entry_array() mais ne met pas dans le resultat les clés qui ont des valeurs vides
156+
157+
### make_objectclass(entity)
158+
159+
renvoie untableau contenant les objectsclasses LDAP
160+
161+
162+

0 commit comments

Comments
 (0)