Skip to content

Commit fce4d97

Browse files
Ajout de la documentation pour la création et la modification d'identité dans le système.
1 parent 67c87ec commit fce4d97

File tree

2 files changed

+149
-1
lines changed

2 files changed

+149
-1
lines changed

docs/user/IdentitiesCreation.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
2+
# Création et Modification d'Identité dans le Système
3+
4+
5+
## Sommaire
6+
7+
- [Création et Modification d'Identité dans le Système](#création-et-modification-didentité-dans-le-système)
8+
- [Sommaire](#sommaire)
9+
- [Création d'Identité](#création-didentité)
10+
- [Endpoint pour la Création d'Identité](#endpoint-pour-la-création-didentité)
11+
- [Corps de la Requête (Body)](#corps-de-la-requête-body)
12+
- [Informations de Base (`inetOrgPerson`)](#informations-de-base-inetorgperson)
13+
- [Champs obligatoires :](#champs-obligatoires-)
14+
- [Champs facultatifs :](#champs-facultatifs-)
15+
- [Champs Additionnels](#champs-additionnels)
16+
- [Exemple de Corps de Requête](#exemple-de-corps-de-requête)
17+
- [Exemple de requete avec cUrl](#exemple-de-requete-avec-curl)
18+
- [États (`IdentityState`)](#états-identitystate)
19+
- [Gestion Automatique du `lifecycle`](#gestion-automatique-du-lifecycle)
20+
- [Réponse Attendue](#réponse-attendue)
21+
- [Modification de l'identité](#modification-de-lidentité)
22+
23+
24+
## Création d'Identité
25+
26+
Pour créer une identité dans le système, suivez les instructions ci-dessous. Ces instructions sont destinées à des utilisateurs ayant une certaine connaissance technique, notamment en matière de requêtes HTTP.
27+
28+
### Endpoint pour la Création d'Identité
29+
30+
**URL:** `/management/identities` : Adresse de l'endpoint pour la création d'identité.
31+
32+
**Méthode:** `POST` : Verbe HTTP utilisé pour créer une nouvelle ressource.
33+
34+
**Header Requis** : `Content-Type: application/json` : Indique que le corps de la requête est au format JSON.
35+
36+
### Corps de la Requête (Body)
37+
38+
Lors de la création d'une identité, le corps de la requête doit inclure les informations de base de l'identité (`inetOrgPerson`), ainsi que tout champ additionnel nécessaire selon l'`objectClass` spécifique. Notez que l'objet `inetOrgPerson` est validé en dur et non via un fichier YAML.
39+
40+
#### Informations de Base (`inetOrgPerson`)
41+
42+
Les informations de base de l'identité sont définies dans l'objet `inetOrgPerson`. Les champs requis sont `cn` (Nom Commun), `sn` (Nom de Famille), et `uid` (Identifiant Unique). Ces champs sont validés en dur.
43+
44+
##### Champs obligatoires :
45+
- `cn`
46+
- `sn`
47+
- `uid`
48+
49+
##### Champs facultatifs :
50+
- `displayName`
51+
- `facsimileTelephoneNumber`
52+
- `givenName`
53+
- `labeledURI`
54+
- `mail`
55+
- `mobile`
56+
- `postalAddress`
57+
- `preferredLanguage`
58+
- `telephoneNumber`
59+
- `title`
60+
- `userCertificate`
61+
- `userPassword`
62+
63+
### Champs Additionnels
64+
65+
Pour les champs additionnels, assurez-vous que les valeurs sont conformes aux attentes du système. Voici comment il se structure :
66+
67+
```json
68+
{
69+
"additionalFields": {
70+
"objectClasses": [],
71+
"attributes": {}
72+
}
73+
}
74+
```
75+
76+
- `objectClasses` : Un tableau contenant les noms des `objectClasses` concernées. Par exemple, si vous attendez des informations supann, vous devez inclure une valeur `supann` en chaine de charactères dans ce tableau.
77+
78+
- `attributes` : Un objet contenant les attributs spécifiques à chaque `objectClass`. Par exemple, si vous attendez des informations supann, vous devez inclure un objet `supann` contenant les attributs spécifiques à cette `objectClass`.
79+
80+
ATTENTION : Les champs additionnels sont validés via des fichiers de configuration YAML spécifiques à chaque `objectClass`. Assurez-vous que les valeurs envoyées sont conformes à ces fichiers de configuration pour garantir le succès de la création de l'identité. Ces fichiers de configuration sont définis dans la documentation [Validation d'identité](https://libertech-fr.github.io/sesame-orchestrator/additional-documentation/documentation-utilisateur/documentation-du-systeme-de-validation-des-schemas-compl%C3%A9mentaires-de-l'identit%C3%A9.html) et doivent être nommés selon le nom de l'`objectClass` qu'ils définissent, par exemple `supann.yml` pour l'`objectClass` `supann`.
81+
82+
### Exemple de Corps de Requête
83+
84+
Voici un exemple de corps de requête pour la création d'une identité avec les informations minimales requises et un état (`state`) défini à `-1` pour indiquer une création :
85+
86+
```json
87+
{
88+
"state": -1,
89+
"inetOrgPerson": {
90+
"cn": "Nom Commun",
91+
"sn": "Nom de Famille",
92+
"uid": "Identifiant Unique"
93+
},
94+
"additionalFields": {
95+
"objectClasses": ["supann"],
96+
"attributes": {
97+
"supann": {
98+
"supannEmpId": "123456",
99+
"supannCivilite": "M.",
100+
"supannBirthName": "Dupont",
101+
"supannBirthDate": "1980-12-15"
102+
}
103+
}
104+
}
105+
}
106+
```
107+
108+
### Exemple de requete avec cUrl
109+
110+
```bash
111+
curl -X POST "http://<adresse-du-serveur>/identities" \
112+
-H "Content-Type: application/json" \
113+
-d '{
114+
"state": -1,
115+
"inetOrgPerson": {
116+
"cn": "Nom Commun",
117+
"sn": "Nom de Famille",
118+
"uid": "Identifiant Unique"
119+
},
120+
"additionalFields": {
121+
"objectClasses": ["supann"],
122+
"attributes": {
123+
"supann": {
124+
"supannEmpId": "123456",
125+
"supannCivilite": "M.",
126+
"supannBirthName": "Dupont",
127+
"supannBirthDate": "1980-12-15"
128+
}
129+
}
130+
}
131+
}'
132+
```
133+
134+
### États (`IdentityState`)
135+
136+
Le state doit être défini à `-1` pour indiquer une création. Par la suite, le système gère automatiquement l'état de l'identité en fonction des actions de validations ou de syncronisation effectuées sur celle-ci.
137+
138+
### Gestion Automatique du `lifecycle`
139+
140+
Le cycle de vie de l'identité (`lifecycle`) est géré automatiquement par le système. Vous n'avez pas besoin de le spécifier dans votre requête.
141+
142+
## Réponse Attendue
143+
144+
En cas de succès, le système renvoie un statut `201 Created` avec les détails de l'identité créée. Si des informations supplémentaires sont requises, le statut peut être `202 Accepted` avec un message indiquant que des champs additionnels sont manquants ou invalides.
145+
146+
# Modification de l'identité
147+
148+
A venir.

docs/user/IdentitiesValidation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# Documentation du Système de Validation d'Identité
2+
# Validation d'Identité
33

44
## Vue d'ensemble
55

0 commit comments

Comments
 (0)