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

 
(15 versions intermédiaires par le même utilisateur non affichées)
Ligne 65 : Ligne 65 :
:Serveur d'authentification et de gestion des identités.
:Serveur d'authentification et de gestion des identités.
:Gère les utilisateurs, les rôles, les permissions, et délivre des tokens d'accès (JWT) via des protocoles comme OAuth2 et OpenID Connect.
:Gère les utilisateurs, les rôles, les permissions, et délivre des tokens d'accès (JWT) via des protocoles comme OAuth2 et OpenID Connect.
---
----
 
=== 2. '''Flux d'intégration''' ===  
=== 2. '''Flux d'intégration''' ===  
Voici les étapes clés pour faire fonctionner API Platform et Keycloak ensemble :
Voici les étapes clés pour faire fonctionner API Platform et Keycloak ensemble :
Ligne 126 : Ligne 127 :
}
}
</syntaxhighlight>
</syntaxhighlight>
---
----
 
=== 3. '''Exemple de flux complet''' ===
=== 3. '''Exemple de flux complet''' ===
==== 1. '''Étape 1 : Authentification''' ====  
==== 1. '''Étape 1 : Authentification''' ====  
Ligne 139 : Ligne 141 :
:Si le token est valide et que l'utilisateur a les permissions nécessaires, l'API renvoie les données demandées.
:Si le token est valide et que l'utilisateur a les permissions nécessaires, l'API renvoie les données demandées.
:Sinon, une erreur `401 Unauthorized` ou `403 Forbidden` est renvoyée.
:Sinon, une erreur `401 Unauthorized` ou `403 Forbidden` est renvoyée.
---
----
 
=== 4. '''Avantages de cette intégration''' ===  
=== 4. '''Avantages de cette intégration''' ===  
==== 1. '''Sécurité''' : ====  
==== 1. '''Sécurité''' : ====  
Ligne 152 : 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 162 : 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 169 : 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 :
 
----
---
 
=== 1. '''Access Token'''===  
=== 1. '''Access Token'''===  
==== a. '''Rôle''' : ====
==== a. '''Rôle''' : ====
Ligne 196 : 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.
 
----
---


===2. '''ID Token'''===
===2. '''ID Token'''===
Ligne 223 : Ligne 224 :
:1. Connaître les informations de l'utilisateur (nom, email, etc.).
:1. Connaître les informations de l'utilisateur (nom, email, etc.).
:2. Maintenir une session utilisateur côté client.
:2. Maintenir une session utilisateur côté client.
---
<hr>


===3. '''Différences clés entre ID Token et Access Token'''===
===3. '''Différences clés entre ID Token et Access 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.
 
----
---


===5. '''Exemple concret'''===
===5. '''Exemple concret'''===
Ligne 285 : 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.
---
----


===6. '''Bonnes pratiques'''===
===6. '''Bonnes pratiques'''===
Ligne 291 : 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.
---
----
 
===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 299 : 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]]