« DeepSeek apiplatform keycloak » : différence entre les versions

 
(9 versions intermédiaires par le même utilisateur non affichées)
Ligne 155 : Ligne 155 :
==== 4. '''Gestion des utilisateurs''' : ====  
==== 4. '''Gestion des utilisateurs''' : ====  
:Keycloak offre une interface pour gérer les utilisateurs, les rôles, et les permissions.
:Keycloak offre une interface pour gérer les utilisateurs, les rôles, et les permissions.
---
----
 
=== 5. '''Outils et Bibliothèques Utiles''' ===
=== 5. '''Outils et Bibliothèques Utiles''' ===
==== 1. '''lexik/jwt-authentication-bundle''' : ====  
==== 1. '''lexik/jwt-authentication-bundle''' : ====  
Ligne 165 : Ligne 166 :
==== 3. '''Keycloak Admin Client''' : ====  
==== 3. '''Keycloak Admin Client''' : ====  
:Pour interagir avec Keycloak programmatiquement (créer des utilisateurs, des rôles, etc.).
:Pour interagir avec Keycloak programmatiquement (créer des utilisateurs, des rôles, etc.).
---
----
En résumé, API Platform et Keycloak fonctionnent ensemble en utilisant des tokens JWT pour sécuriser les API.<br />
En résumé, API Platform et Keycloak fonctionnent ensemble en utilisant des tokens JWT pour sécuriser les API.<br />
Keycloak gère l'authentification et l'autorisation, tandis qu'API Platform expose les API et valide les tokens pour garantir un accès sécurisé.
Keycloak gère l'authentification et l'autorisation, tandis qu'API Platform expose les API et valide les tokens pour garantir un accès sécurisé.
Ligne 172 : Ligne 173 :


Lorsque vous utilisez '''API Platform''' avec un serveur '''Keycloak''', il est important de comprendre la différence entre '''ID Token''' et '''Access Token''', car ces deux types de tokens ont des rôles distincts dans le processus d'authentification et d'autorisation. Voici une explication détaillée :
Lorsque vous utilisez '''API Platform''' avec un serveur '''Keycloak''', il est important de comprendre la différence entre '''ID Token''' et '''Access Token''', car ces deux types de tokens ont des rôles distincts dans le processus d'authentification et d'autorisation. Voici une explication détaillée :
<hr>
----
=== 1. '''Access Token'''===  
=== 1. '''Access Token'''===  
==== a. '''Rôle''' : ====
==== a. '''Rôle''' : ====
Ligne 197 : Ligne 198 :
:1. Authentifier l'utilisateur (vérifier que le token est valide et signé par Keycloak).
:1. Authentifier l'utilisateur (vérifier que le token est valide et signé par Keycloak).
:2. Autoriser l'accès aux routes ou opérations en fonction des rôles ou permissions contenus dans le token.
:2. Autoriser l'accès aux routes ou opérations en fonction des rôles ou permissions contenus dans le token.
<hr>
----


===2. '''ID Token'''===
===2. '''ID Token'''===
Ligne 241 : Ligne 242 :
| '''Utilisation dans API Platform''' || Non utilisé directement. || Utilisé pour l'authentification et l'autorisation.
| '''Utilisation dans API Platform''' || Non utilisé directement. || Utilisé pour l'authentification et l'autorisation.
|}
|}
---
----


===4. '''Flux typique avec API Platform et Keycloak'''===
===4. '''Flux typique avec API Platform et Keycloak'''===
Ligne 255 : Ligne 256 :
:Le client envoie l''''Access Token''' dans l'en-tête `Authorization` des requêtes API.
:Le client envoie l''''Access Token''' dans l'en-tête `Authorization` des requêtes API.
:API Platform valide l''''Access Token''' et vérifie les permissions avant de renvoyer les données.
:API Platform valide l''''Access Token''' et vérifie les permissions avant de renvoyer les données.
<hr>
----
 
===5. '''Exemple concret'''===
===5. '''Exemple concret'''===
===='''Scénario''' :====
===='''Scénario''' :====
Ligne 283 : Ligne 285 :
:API Platform valide l''''Access Token''' en utilisant la clé publique de Keycloak.
:API Platform valide l''''Access Token''' en utilisant la clé publique de Keycloak.
:Si le token est valide et que l'utilisateur a les permissions nécessaires, l'API renvoie les données.
:Si le token est valide et que l'utilisateur a les permissions nécessaires, l'API renvoie les données.
<hr>
----


===6. '''Bonnes pratiques'''===
===6. '''Bonnes pratiques'''===
Ligne 289 : Ligne 291 :
:'''Utiliser HTTPS''' : Pour protéger les tokens lors de leur transmission.
:'''Utiliser HTTPS''' : Pour protéger les tokens lors de leur transmission.
:'''Vérifier les scopes et rôles''' : Assurez-vous que l'Access Token contient les permissions nécessaires pour accéder aux ressources.
:'''Vérifier les scopes et rôles''' : Assurez-vous que l'Access Token contient les permissions nécessaires pour accéder aux ressources.
<hr>
----
 
===7. '''En résumé''' ===
===7. '''En résumé''' ===
l''''ID Token''' est utilisé pour authentifier l'utilisateur côté client, tandis que l''''Access Token''' est utilisé pour accéder aux ressources protégées côté serveur (API Platform).<br />
l''''ID Token''' est utilisé pour authentifier l'utilisateur côté client, tandis que l''''Access Token''' est utilisé pour accéder aux ressources protégées côté serveur (API Platform).<br />
Ligne 297 : Ligne 300 :
=== [[ Mistral_apiplatform_keycloak | Voir les réponses aux mêmes questions posées à Mistral]] ===
=== [[ Mistral_apiplatform_keycloak | Voir les réponses aux mêmes questions posées à Mistral]] ===


[[category:DeepSeek]] [[category:api]]
[[category:DeepSeek]] [[category:api]] [[Catégorie: Apiplatform]] [[category:Keycloak]]