Skip to content

Commit 2134aa1

Browse files
committed
fix: toc link
1 parent d3ba715 commit 2134aa1

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

pages/arch/authentication/initial-implementation.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ up: ../authentication/
2121
- [Objectifs](#objectifs)
2222
- [Première mise en œuvre simplifiée](#première-mise-en-œuvre-simplifiée)
2323
- [Simplifications](#simplifications)
24+
- [Diagramme de séquence](#diagramme-de-séquence)
2425
- [Données nécessaires pour les différents microservices](#données-nécessaires-pour-les-différents-microservices)
2526
- [Microservices impliqués](#microservices-impliqués)
2627
- [Modélisation actuelle dans avenirs-portfolio-api](#modélisation-actuelle-dans-avenirs-portfolio-api)
@@ -29,16 +30,18 @@ up: ../authentication/
2930
- [Microservice de sécurité : avenirs-portfolio-security](#microservice-de-sécurité--avenirs-portfolio-security)
3031
- [Microservice métier du portfolio : avenirs-portfolio-api](#microservice-métier-du-portfolio--avenirs-portfolio-api)
3132
- [Architecture possible pour le processus d'alimentation (informatif, non arrêté)](#architecture-possible-pour-le-processus-dalimentation-informatif-non-arrêté)
33+
- [Schéma du processus d'alimentation](#schéma-du-processus-dalimentation)
3234
- [Intégration avec l'API Manager](#intégration-avec-lapi-manager)
3335
- [Principe](#principe)
3436
- [Bénéfices de la démarche](#bénéfices-de-la-démarche)
35-
- [Remarque](#remarque)
37+
- [Remarques](#remarques)
38+
- [Diagramme de séquence](#diagramme-de-séquence-2)
3639
- [Adaptations du filtre de sécurité au payload transmis par l'API Manager](#adaptations-du-filtre-de-sécurité-au-payload-transmis-par-lapi-manager)
3740
- [Evolutions](#evolutions)
3841

3942
<br/>
4043

41-
## Objectifs (#table-des-matières)
44+
## Objectifs[](#table-des-matières)
4245
- Mise en place d'une authentification locale basée sur OIDC de bout en bout faisant intervenir :
4346
- Le front (client).
4447
- CAS en tant qu'OIDC provider : authentifie et fournit un access token.
@@ -51,14 +54,15 @@ up: ../authentication/
5154

5255
La démarche adoptée est de commencer par une version minimaliste, puis d'améliorer par raffinements successifs.
5356

54-
## Première mise en œuvre simplifiée
57+
## Première mise en œuvre simplifiée[](#table-des-matières)
5558

5659
### Simplifications
5760

5861
- On considère uniquement l'obtention initiale de l'access token.
5962
- Le client réalise directement la demande d'authentification auprès de CAS, l'étape de landing page est ignorée pour cette première mise en œuvre.
6063
- On utilise directement l'access token fourni par l'utilisateur.
6164

65+
### Diagramme de séquence
6266

6367
{% include img.html
6468
src="assets/images/authentication_first_step.png"
@@ -68,7 +72,7 @@ La démarche adoptée est de commencer par une version minimaliste, puis d'amél
6872
%}
6973

7074

71-
## Données nécessaires pour les différents microservices
75+
## Données nécessaires pour les différents microservices[](#table-des-matières)
7276

7377
### Microservices impliqués
7478

@@ -98,7 +102,7 @@ Trois microservices sont impliqués :
98102
L'avantage de cet eppn est qu'il garantit une unicité globale, il est constitué de la concaténation identifiant unique utilisateur + identifiant unique établissement. Exemple : uid@domain-etablissement.fr
99103

100104

101-
## Refactoring du modèle de données
105+
## Refactoring du modèle de données[](#table-des-matières)
102106

103107
#### Microservice d'interopérabilité : avenirs-portfolio-interoperability.
104108

@@ -137,15 +141,16 @@ L'avantage de cet eppn est qu'il garantit une unicité globale, il est constitu
137141
caption="Modélisation des users dans avenirs-portfolio-api" %}
138142
<br/>
139143

140-
## Architecture possible pour le processus d'alimentation (informatif, non arrêté)
144+
## Architecture possible pour le processus d'alimentation (informatif, non arrêté)[](#table-des-matières)
141145

142146
**Remarque :** le processus d'alimentation n'a pas été complètement implémenté, la réflexion est toujours en cours.
143147

148+
### Schéma du processus d'alimentation
144149
{% include img.html src="assets/images/auth_init_provisioning.svg" alt="Processus d'alimentation" caption="Architecture possible pour le processus d'alimentation" %}
145150

146151
<br/>
147152

148-
## Intégration avec l'API Manager
153+
## Intégration avec l'API Manager[](#table-des-matières)
149154

150155
### Principe
151156
On utilise un plugin Apisix de type serverless en LUA qui va :
@@ -160,25 +165,25 @@ On utilise un plugin Apisix de type serverless en LUA qui va :
160165
- Découpler les microservices.
161166
- Garantir que la requête traitée par les microservices provient de l'API Manager.
162167

163-
### Remarque
168+
### Remarques
164169
Il s'agit d'une simplification pour tester l'authentification. Pour le contrôle d'accès, le plugin devra également extraire :
165170
- La méthode HTTP et le end-point pour déterminer l'action utilisateur.
166171
- La ressource cible.
167172
- Possiblement d'autres informations comme l'univers actif.
168173

169-
174+
### Diagramme de séquence
170175
{% include img.html src="assets/images/apim_auth_first_steps.png" alt="Intégration avec l'API Manager" caption="Intégration avec l'API Manager" %}
171176

172177

173-
## Adaptations du filtre de sécurité au payload transmis par l'API Manager
178+
## Adaptations du filtre de sécurité au payload transmis par l'API Manager[](#table-des-matières)
174179

175180
Le filtre de sécurité est mutualisé [dans la librairie common](https://github.com/avenirs-esr/avenirs-portfolio-common/blob/219dd0a2b59cb13290bbd68963e87f8785669c57/src/main/java/fr/avenirsesr/portfolio/common/security/infrastructure/filter/DevAuthenticationFilter.java){:target="_blank"}.
176181

177182
Les adaptations devraient être relativement simples :
178183
- Adapter [UserSecurityPayload](https://github.com/avenirs-esr/avenirs-portfolio-common/blob/219dd0a2b59cb13290bbd68963e87f8785669c57/src/main/java/fr/avenirsesr/portfolio/common/security/infrastructure/adapter/model/UserSecurityPayload.java){:target="_blank"} pour l'aligner sur le payload transmis par l'API Manager : eppn, category, etc.
179184
- Adapter le [filtre de sécurité](https://github.com/avenirs-esr/avenirs-portfolio-common/blob/219dd0a2b59cb13290bbd68963e87f8785669c57/src/main/java/fr/avenirsesr/portfolio/common/security/infrastructure/filter/HmacAuthenticationFilter.java#L62){:target="_blank"} pour transmettre le payload au microservice.
180185

181-
## Evolutions
186+
## Evolutions[](#table-des-matières)
182187

183188
- Ajouter la landing page d'authentification.
184189
- Déterminer s'il faut gérer un access token spécifique au portfolio ou s'il vaut mieux utiliser directement celui du provider OIDC.

0 commit comments

Comments
 (0)