1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
Annexe technique 6 - Configuration de la fédération {#annexe-tech-6-configuration-syndication}
===================================================
Auteurs
: Étienne Loks
Date
: 2023-02-16
Copyright
: CC-BY 3.0
Ishtar Version
: v4.0
La fédération de données entre instances Ishtar est une fonctionnalité
puissante mais assez complexe à mettre en place. La documentation
ci-dessous détaille pas à pas les différentes étapes pour mettre en
place cela.
Selon que l'on soit l'instance qui partage des données ou celle qui
consulte des données les enjeux sont différents :
L'instance qui partage des données (dite « source ») doit paramétrer :
- les types de données à partager ;
- les sous-ensembles de ces données à partager ;
- les attributs que l'on souhaite exposer / cacher ;
- à qui l'on va partager les données (nécessitant la création d'un
compte système avec un jeton d'accès et le paramétrage de l'adresse
IP du serveur vers lequel les données vont être envoyées).
L'instance source est configurée en administration via les entrées « API
-Accès distant ».
L'instance qui consulte les données (dite « destination ») doit
paramétrer :
- le serveur « source » qui fournit les données, son adresse web
d'Ishtar et un jeton d'accès ;
- la correspondance entre les listes de vocabulaire contrôlé de son
instance et les listes de vocabulaire contrôlé de l'instance source.
Cette correspondance est nécessaire pour traduire les recherches par
critères de manière pertinente.
L'instance destination est configurée en administration via les entrées
« API - Recherche ».
Pour illustrer une fédération de données, nous allons prendre l'exemple
suivant :
L'instance Charente-Maritime veut partager un ensemble de données avec
l'instance Nouvelle-Aquitaine.
Le serveur dit « source » est celui de Charente-Maritime.
Le serveur dit « destination » est celui de Nouvelle-Aquitaine.
Configuration du serveur source
-------------------------------
Cette configuration est à faire si vous souhaitez donner un accès en
lecture à vos données depuis une autre instance Ishtar. Dans notre
exemple, il s'agit du serveur Charente-Maritime.
Préalablement à cette configuration vous avez besoin de l'adresse IP du
serveur de l'autre instance Ishtar.
### Création d'un utilisateur système
Contrairement à la création d'utilisateur classique, on crée un
utilisateur système. Celui-ci n'aura pas accès à l'instance Ishtar
directement. Créer cet utilisateur en interface « Administration de base
de données » : « Authentification et autorisation \> Utilisateurs \>
Ajout ». Utiliser un identifiant qui n'existe pas encore en base de
données, exemple « federation-nouvelle-aquitaine ». Le mot de passe ne
sera pas utilisé : en choisir un particulièrement complexe.

### Associer un jeton d'authentification à un utilisateur système
Associer ensuite à ce compte un jeton d'authentification. Depuis
l'interface « Administration de base de données » : « Accueil \> Jeton
d'authentification \> Jetons \> Ajout ». Le compte est retrouvé via
l'icône loupe.
Une fois le jeton créé, aller à la liste des jetons puis mettre de côté
la clé du jeton.

Par exemple sur la capture d'écran, la clé est
`a14b32f31029216da11621ba5ddb0431997ca61d`. Une fois la configuration
terminée, cette clé sera à transmettre à l'administrateur de l\'instance
Ishtar destination.
### Associer l'adresse IP du serveur destination à l'utilisateur système
Depuis « Ishtar - Commun \> API - Accès distant - Utilisateurs \> Ajout
», on associe l'utilisateur système à l'adresse IP du serveur.

Pour notre exemple, le serveur de Nouvelle-Aquitaine a l'adresse
`8.8.8.8`.
### Ouvrir l'accès à un ou plusieurs types de contenu
Pour chaque type de contenu que l'on souhaite ouvrir (Opération, Unité
d'Enregistrement, Mobilier, ...), ajouter une entrée via : « Ishtar
-Commun \> API - Accès distant - Modèles de recherche \> Ajout ».

On sélectionne notre utilisateur système, le type de contenu, ainsi
qu'éventuellement une requête filtrante. Cette requête correspond à une
chaîne de caractères correspondant à recherche. Seuls les éléments
correspondants à cette requête seront partagés. Si l'on ne renseigne pas
cette requête filtrante tous les éléments seront renvoyés.
### Filtrer la fiche de contenu
Il est possible de cacher certains champs sur la fiche que l'on partage.
Pour chaque champ que l'on souhaite cacher, ajouter une entrée via «
Ishtar - Commun \> API - Accès distant - Filtres de fiche \> Ajout ». Le
formulaire doit rempli en deux fois. On se contente d'abord de choisir
le type de contenu que l'on veut filtrer.

Valider avec le bouton « Enregistrer et continuer les modifications ».
Une fois ce premier enregistrement, l'aide disponible sous le champ «
Clé » liste les différentes clés correspondant au contenu que l'on
souhaite filtrer.

Sur cet exemple, on souhaite filtrer l'affichage de l'image principale.
Note : si l'on souhaite qu'aucune image ne soit affichée, il faut
ajouter chaque champ « image ».
Configuration du serveur destination
------------------------------------
Cette configuration est à faire si vous souhaitez accéder à des données
d'une autre instance Ishtar depuis votre propre instance. Dans notre
exemple, il s'agit du serveur Nouvelle-Aquitaine.
Préalablement à cette configuration vous avez besoin du jeton
d'authentification donné par le serveur source ainsi que l'adresse web
pour accéder à celui-ci.
### Créer la source externe
Cette source externe se crée en interface « Administration de base de
données » : « Ishtar - Commun \> API - Recherche - Sources externes \>
Ajout ».

Sur le formulaire reprendre l'adresse web du serveur source ainsi que le
jeton d'authentification qui vous a été fourni. Le nom renseigné doit
être explicite, il apparaîtra sur les écrans de recherche de
l'interface. On renseigne explicitement chaque utilisateur qui aura
accès à cette source externe.
### Synchroniser les listes de vocabulaire contrôlées depuis la source
Une fois la source externe créée il est nécessaire de récupérer les
listes de vocabulaire contrôlées de cette source (le serveur source).
Pour cela, on se rend sur la page listant les sources externes : «
Ishtar -Commun \> API - Recherche - Sources externes ». Sélectionner la
source externe concernée, l'action « Mettre à jour les types depuis la
source » et valider (le bouton « Aller »).

Cette action peut prendre un certain temps. Si des changements sont
faits sur les listes de vocabulaire contrôlé sur la source cette étape
ainsi que les suivantes sont à effectuer de nouveau.
### Mettre à jour les correspondances
Pour chaque liste de vocabulaire contrôlée, des correspondances sont
faites automatiquement entre les termes identiques. Lorsque deux
instances partagent la même langue et ont des cas d'utilisation
semblable, une bonne partie des listes de vocabulaire sont mises en
correspondance automatiquement. Afin de visualiser les correspondances
et de compléter les correspondances manquantes, on génère un document de
correspondance. Celui-ci se présente sous la forme d'un document tableur
LibreOffice. Pour cela, on reste sur la page listant les sources
externes : « Ishtar - Commun \> API - Recherche - Sources externes ».
Sélectionner la source externe concernée et l'action « Générer le
document de correspondance », valider (bouton « Aller »).

Ouvrir le document généré avec LibreOffice et parcourir les différents
onglets pour effectuer les éventuelles correspondances manquantes. Là où
des cellules sur la troisième colonne « Local » sont vides, choisir
l'élément manquant dans la liste.

Une fois ces modifications faites, enregistrer le document et le déposer
sur le serveur sur la source externe concernée.

Enregistrer la source externe puis sélectionner la source externe
concernée et l'action « Mettre à jour les associations depuis un
document de correspondance », valider.

|