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

Ligne 28 : Ligne 28 :
Voici comment ils peuvent être intégrés et fonctionner ensemble :<br />  
Voici comment ils peuvent être intégrés et fonctionner ensemble :<br />  


1. '''Authentification avec Keycloak'''
=== 1. '''Authentification avec Keycloak''' ===


- '''Keycloak''' agit comme un serveur d'authentification. Les utilisateurs s'authentifient auprès de Keycloak en utilisant leurs identifiants (nom d'utilisateur et mot de passe) ou via des fournisseurs d'identité externes (comme Google, Facebook, etc.).<br />  
- '''Keycloak''' agit comme un serveur d'authentification. Les utilisateurs s'authentifient auprès de Keycloak en utilisant leurs identifiants (nom d'utilisateur et mot de passe) ou via des fournisseurs d'identité externes (comme Google, Facebook, etc.).<br />  
- Une fois authentifiés, les utilisateurs reçoivent un '''token JWT''' (JSON Web Token) qui contient des informations sur leur identité et leurs permissions.
- Une fois authentifiés, les utilisateurs reçoivent un '''token JWT''' (JSON Web Token) qui contient des informations sur leur identité et leurs permissions.


2. '''Sécurisation des API avec API Platform'''
=== 2. '''Sécurisation des API avec API Platform'''===


- '''API Platform''' est configuré pour protéger ses endpoints en utilisant les tokens JWT émis par Keycloak.<br />  
- '''API Platform''' est configuré pour protéger ses endpoints en utilisant les tokens JWT émis par Keycloak.<br />  
- Lorsqu'un client (par exemple, une application frontend ou un autre service) souhaite accéder à une API sécurisée, il doit inclure le token JWT dans l'en-tête de la requête HTTP, généralement sous la forme `Authorization: Bearer <token>`.
- Lorsqu'un client (par exemple, une application frontend ou un autre service) souhaite accéder à une API sécurisée, il doit inclure le token JWT dans l'en-tête de la requête HTTP, généralement sous la forme `Authorization: Bearer <token>`.


3. '''Validation des Tokens'''
=== 3. '''Validation des Tokens'''===


- API Platform utilise une bibliothèque ou un middleware pour valider le token JWT reçu.<br />  
- API Platform utilise une bibliothèque ou un middleware pour valider le token JWT reçu.<br />  
Ligne 44 : Ligne 44 :
- Le token contient également des informations sur les rôles et permissions de l'utilisateur, ce qui permet à API Platform de décider si l'utilisateur est autorisé à accéder à la ressource demandée.
- Le token contient également des informations sur les rôles et permissions de l'utilisateur, ce qui permet à API Platform de décider si l'utilisateur est autorisé à accéder à la ressource demandée.


4. '''Gestion des Rôles et Permissions'''
=== 4. '''Gestion des Rôles et Permissions'''===


- '''Keycloak''' permet de définir des rôles et des permissions pour les utilisateurs. Ces informations peuvent être incluses dans le token JWT.<br />  
- '''Keycloak''' permet de définir des rôles et des permissions pour les utilisateurs. Ces informations peuvent être incluses dans le token JWT.<br />  
Ligne 50 : Ligne 50 :
Par exemple, certains endpoints peuvent être accessibles uniquement aux utilisateurs ayant un rôle spécifique.
Par exemple, certains endpoints peuvent être accessibles uniquement aux utilisateurs ayant un rôle spécifique.


5. '''Single Sign-On (SSO)'''
=== 5. '''Single Sign-On (SSO)'''===


- Avec Keycloak, vous pouvez mettre en place un système de Single Sign-On (SSO), permettant aux utilisateurs de s'authentifier une seule fois et d'accéder à plusieurs applications ou services sans avoir à se reconnecter.<br />  
- Avec Keycloak, vous pouvez mettre en place un système de Single Sign-On (SSO), permettant aux utilisateurs de s'authentifier une seule fois et d'accéder à plusieurs applications ou services sans avoir à se reconnecter.<br />  
- Cela peut être particulièrement utile dans un environnement où plusieurs applications frontend ou microservices interagissent avec API Platform.
- Cela peut être particulièrement utile dans un environnement où plusieurs applications frontend ou microservices interagissent avec API Platform.


6. '''Configuration et Intégration'''
=== 6. '''Configuration et Intégration'''===


- '''Configuration de Keycloak''' : Vous devez configurer un client dans Keycloak pour API Platform, définir les rôles et permissions, et configurer les fournisseurs d'identité si nécessaire.<br />  
- '''Configuration de Keycloak''' : Vous devez configurer un client dans Keycloak pour API Platform, définir les rôles et permissions, et configurer les fournisseurs d'identité si nécessaire.<br />  
- '''Configuration d'API Platform''' : Vous devez configurer API Platform pour utiliser Keycloak comme fournisseur d'identité, en spécifiant les paramètres nécessaires pour valider les tokens JWT.
- '''Configuration d'API Platform''' : Vous devez configurer API Platform pour utiliser Keycloak comme fournisseur d'identité, en spécifiant les paramètres nécessaires pour valider les tokens JWT.


7. '''Flux de Travail Typique'''
=== 7. '''Flux de Travail Typique'''===


1. Un utilisateur s'authentifie auprès de Keycloak et reçoit un token JWT.<br />
1. Un utilisateur s'authentifie auprès de Keycloak et reçoit un token JWT.<br />