Sécurisation via Keycloak #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Besoin
Actuellement l'application n'est pas du tout sécurisé. Il n'y a aucune possibilité de s'authentifier d'aucune manière. Afin de sécuriser nous allons introduire un composant Keycloak.
En dev on fait tourner un composant Keycloak qu'on rajoute dans la stack docker compose lancée par spring boot.
Elle est intégré dans le front react et dans le back spring boot. Il est indispensable de pouvoir créer
Spécifications
Docker
Dans le fichier "compose" du back rajouter un service keycloak. Voici un exemple de déclaration du service :
compose.yml
Le dossier local "keycloak-import" contient la déclaration du realm de base. Il y'a deux fichier :
Voici des exemples de ce qui est attendu :
master-realm.json
keryloo-realm.json
On doit prévoir les 3 rôles suivants :
Dans un premier temps on ne créera pas d'habilitations, on les affinera / appliquera ensuite quand toutes les fonctionnalités seront développés
Intégration dans le back
L'intégration dans le back est assez simple, il faut d'abord rajouter les bonnes dépendances dans le pom :
pom.xml
Puis rajouter le point d'accès vers le serveur d'authentification dans le fichier "application-dev.yml"
application-dev.yml
Front
Dans le front il faudra rajouter un fichier .env pour le dev qui contient les informations de base
Installer la dépendance "keycloak-js"
Et créer un fichier pour configurer la connexion a keycloak
"src/config/keycloak.ts"
Modifier ensuite le fichier de configuration de l'instance axios pour gérer les bearer
src/api/axiosInstance.ts
Page de login
Prévoir de générer une page de login keryloo sympa que l'on mettre dans le realm