+33 6 74 52 84 16 contact@lmvi.eu

Intégration de WSO2 API Manager avec Keycloak pour le Policy-Based Access Control (PBAC)

Keycloak est un serveur d’authentification et de gestion des accès open-source, souvent utilisé pour gérer les identités et les autorisations dans les environnements d’entreprise. Vous pouvez intégrer Keycloak avec WSO2 API Manager pour implémenter le Policy-Based Access Control (PBAC). Voici comment configurer et appliquer une politique d’accès complexe en utilisant Keycloak.

1. Mise en Place de Keycloak

a. Installation et Configuration Initiale

  • Installation de Keycloak : Si ce n’est pas déjà fait, installez Keycloak sur un serveur dédié. Suivez les instructions d’installation spécifiques à votre environnement (Docker, RPM, ou installation manuelle).
  • Création du Realm : Dans Keycloak, créez un nouveau « Realm » pour isoler la gestion des utilisateurs, des rôles, et des politiques de sécurité.
  • Création des Clients : Créez un client dans Keycloak pour WSO2 API Manager. Ce client représente l’application API Manager dans Keycloak et permettra d’établir la connexion OAuth 2.0 entre les deux.
  • Création du Realm et des Clients :
    • Realm : La création d’un nouveau Realm pour isoler les configurations spécifiques à WSO2 API Manager est une bonne pratique. Chaque Realm agit comme un espace de gestion distinct, ce qui facilite la gestion des utilisateurs, des rôles, et des politiques d’accès.
    • Client OAuth : Lors de la création du client dans Keycloak pour WSO2 API Manager, assurez-vous que ce client est configuré pour utiliser les bons protocoles (OAuth 2.0) et redirections. Les scopes OAuth et les claims JWT doivent être correctement définis et mappés pour s’assurer qu’ils sont interprétés correctement par WSO2 API Manager.

b. Gestion des Rôles et Scopes dans Keycloak

  • Création des Rôles : Dans Keycloak, créez les rôles nécessaires (par exemple, Manager, Developer). Ces rôles seront attribués aux utilisateurs et détermineront leurs permissions.
  • Définition des Scopes OAuth : Créez des scopes spécifiques (par exemple, finance_read, finance_write) qui seront utilisés pour restreindre l’accès aux APIs en fonction des permissions.

2. Configuration de WSO2 API Manager pour Utiliser Keycloak

a. Configuration de l’Authentification OAuth 2.0

  • Configuration du Client OAuth dans WSO2 API Manager : Dans WSO2 API Manager, configurez le client OAuth en utilisant les informations du client Keycloak (client ID, secret, endpoints d’autorisation).
  • Configurer le Déploiement : Modifiez le fichier de configuration de WSO2 API Manager (<APIM_HOME>/repository/conf/deployment.toml) pour intégrer Keycloak comme fournisseur d’identité. Exemple de configuration OAuth 2.0 :
  [apim.oauth2]
  enable_outbound_provisioning = true
  idp_server_url = "https://<Keycloak_Host>:<Port>/auth/realms/<Your_Realm>"
  client_id = "<Your_Client_ID>"
  client_secret = "<Your_Client_Secret>"

Cela configure WSO2 API Manager pour utiliser Keycloak comme serveur d’autorisation.

3. Mise en Place du Policy-Based Access Control (PBAC)

a. Définition des Politiques dans Keycloak

  • Création des Politiques : Dans l’interface de Keycloak, accédez à la section « Authorization » pour le client WSO2 API Manager. Créez des politiques basées sur des rôles ou des conditions spécifiques.
  • Exemple de Politique : Créez une politique qui stipule que seuls les utilisateurs ayant le rôle Manager et provenant d’une adresse IP spécifique peuvent accéder à l’API pendant les heures de bureau. Exemple de configuration dans Keycloak :
  • Conditions : Définissez une politique qui restreint l’accès à l’API à un certain rôle (par exemple, Manager), à certaines heures, et à certaines adresses IP.
  • Ressources : Associez la politique aux ressources API spécifiques.
  • Scopes : Appliquez la politique en fonction des scopes OAuth définis.

b. Application de la Politique

  • Application de la Politique dans WSO2 API Manager : Une fois que les politiques sont définies dans Keycloak, elles seront automatiquement appliquées lors de l’autorisation des requêtes API dans WSO2 API Manager. Lorsqu’un utilisateur essaie d’accéder à une API, Keycloak évaluera les politiques et renverra une décision d’accès.

4. Surveillance et Audit

a. Surveillance des Logs

  • Vérification des Logs de WSO2 API Manager : Surveillez les logs de WSO2 API Manager pour vérifier que les requêtes API sont correctement autorisées ou refusées en fonction des politiques définies dans Keycloak.
  • Audit des Décisions dans Keycloak : Utilisez les outils d’audit de Keycloak pour surveiller les décisions d’autorisation, les tentatives d’accès, et l’application des politiques.

b. Surveillance Continue

  • Surveillance Active : Assurez-vous que les décisions d’accès sont régulièrement auditées et que les politiques sont mises à jour en fonction des besoins de sécurité de l’organisation.

Résumé

En résumé, pour implémenter le PBAC avec Keycloak et WSO2 API Manager :

  1. Configurez Keycloak avec les rôles, scopes, et politiques d’accès appropriés.
  2. Intégrez WSO2 API Manager avec Keycloak via OAuth 2.0.
  3. Définissez et appliquez les politiques d’accès dans Keycloak pour contrôler l’accès aux APIs.
  4. Surveillez et auditez l’application des politiques pour garantir la sécurité et la conformité.

Cette intégration permet de gérer de manière centralisée les politiques d’accès complexes et de renforcer la sécurité des APIs exposées via WSO2 API Manager.