Dans WSO2 API Manager, les politiques d’accès basées sur des règles complexes, telles que celles définies en XACML, sont généralement gérées en intégrant un serveur de politiques (Policy Decision Point – PDP) comme WSO2 Identity Server ou une autre solution de gestion des politiques compatible avec XACML. Voici comment vous pouvez mettre en place et appliquer une telle politique dans WSO2 API Manager :
1. Intégration avec un Serveur de Politiques (PDP)
a. Mise en Place d’un Serveur de Politiques
- WSO2 Identity Server (IS) est souvent utilisé comme PDP pour gérer les politiques XACML dans l’écosystème WSO2. Vous devez d’abord configurer WSO2 Identity Server pour qu’il fonctionne comme le PDP.
- Installation : Si ce n’est pas déjà fait, installez WSO2 Identity Server et configurez-le pour gérer les politiques XACML.
b. Définition de la Politique XACML
- Où écrire la politique : Les politiques XACML sont définies au niveau du WSO2 Identity Server, dans l’interface de gestion des politiques sous la section « Entitlement ».
- Interface de gestion des politiques : Vous pouvez créer une nouvelle politique XACML via l’interface utilisateur de WSO2 Identity Server ou importer une politique XACML préalablement écrite.
2. Intégration avec WSO2 API Manager
a. Configuration pour Utiliser un PDP Externe
- Configurer WSO2 API Manager : WSO2 API Manager doit être configuré pour déléguer les décisions d’accès au PDP (WSO2 Identity Server). Cette configuration se fait dans les fichiers de configuration de WSO2 API Manager (
<APIM_HOME>/repository/conf/deployment.toml
). Exemple de configuration à ajouter :
[apim.throttling.pdp]
enable = true
service_url = "https://<IS_Host>:<Port>/services/"
service_user = "<IS_Username>"
service_password = "<IS_Password>"
- Endpoint du PDP : Configurez l’URL du service PDP de WSO2 Identity Server (ou un autre serveur de politiques) pour que WSO2 API Manager puisse interroger le PDP chaque fois qu’une requête API est faite.
b. Application de la Politique
- Déploiement de la Politique : Une fois la politique XACML créée dans WSO2 Identity Server, elle peut être déployée pour être appliquée à des APIs spécifiques dans WSO2 API Manager.
- Conditions d’Application : Lorsqu’une requête est faite à une API, WSO2 API Manager interroge le PDP pour vérifier si les conditions de la politique sont remplies. Si la réponse est positive, l’accès est accordé ; sinon, il est refusé.
3. Exemple de Fichier de Configuration
Voici un exemple simple de configuration de WSO2 API Manager pour intégrer un PDP externe :
[apim.throttling]
enable = true
[apim.throttling.pdp]
enable = true service_url = « https://localhost:9443/services/ » service_user = « admin » service_password = « admin »
4. Surveillance et Logs
- Vérification des Logs : Après avoir appliqué la politique, vous pouvez surveiller les logs de WSO2 API Manager (
<APIM_HOME>/repository/logs/wso2carbon.log
) pour vérifier que les décisions d’accès sont correctement appliquées. - Audit : Utilisez les capacités d’audit de WSO2 Identity Server pour surveiller les décisions d’accès prises par le PDP.
Résumé
Pour appliquer une politique d’accès complexe comme celle basée sur XACML dans WSO2 API Manager :
- Écrivez la politique XACML dans WSO2 Identity Server.
- Configurez WSO2 API Manager pour interroger le PDP externe (WSO2 Identity Server).
- Appliquez la politique en configurant les endpoints d’API correspondants pour qu’ils soient soumis à cette politique d’autorisation.
- Surveillez et auditez les décisions d’accès pour vous assurer que les politiques sont correctement appliquées.
Ce processus permet de gérer des politiques de sécurité complexes et de les appliquer de manière centralisée dans un environnement sécurisé.