La gestion des identités et des accès (IAM) permet d’intégrer et gérer efficacement les identités électroniques ou numériques. Ses utilisateurs doivent pouvoir accéder aux bonnes ressources au bon moment.

La gestion des identités n’est plus seulement un simple projet de sécurité pour les entreprises. Le nombre croissant d’espaces d’authentifications, les hiérarchies internes de plus en plus complexes, les pressions réglementaires, ou les applications orientées clients rendent le challenge de plus en plus complexe pour les architectes web et les administrateurs.

Alors que le nombre d’API internes et tierces utilisées ne cesse d’augmenter, celles-ci doivent plus que jamais être à la fois intégrées et gérées en toute sécurité.

 

En tant que partenaire certifié WSO2 via DATASOLUTION, ExtraFlow utilise exclusivement les outils open-source WSO2. WSO2 Identity Servor est un produit leader de la gestion des identités et de l’IAM.

Dans cet article, nous allons voir comment ajouter un Reverse Proxy sous WSO2 Identity Servor 5.9.0.

 

 

Suite à l'installation de WSO2IS 5.9.0, nous avons voulu installer un reverse proxy Apache afin d'accéder à WSO2IS sans utiliser les ports (y accéder via https://example.com au lieu de https://example.com:9443).

Voici donc la configuration utilisée.

Pour commencer, installer Apache :

apt install apache2

Puis activer les modules Apache nécessaires :

a2enmod proxy proxy_http proxy_wstunnel proxy_wstunnel rewrite ssl

Les variables suivantes sont à remplacer dans les différents fichiers :

FULLY_QUALIFIED_DOMAINE_NAME : nom de domaine d'accès au serveur (example.com)
SERVER_ADMIN_MAIL : adresse mail de contact de l'administrateur du serveur (contact@example.com)
SSL_CERTIFICATE_FILE : fichier contenant les certificats pour la connexion SSL
(/etc/letsencrypt/live/example.com/fullchain.pem)
SSL_CERTIFICATE_KEY_FILE : fichier contenant la clé privée pour la connexion SSL
(/etc/letsencrypt/live/example.com/privkey.pem)
WSO2_SERVER_FQDN : nom de domaine (ou IP) d'accès au serveur où est situé le serveur WSO2 (example.com)

Puis ouvrir le fichier /etc/apache2/sites-available/000-default.conf et remplacer la configuration existante par la suivante :

<VirtualHost *:80>

ServerName FULLY_QUALIFIED_DOMAINE_NAME
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =FULLY_QUALIFIED_DOMAINE_NAME
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost> 

Ensuite ouvrir le fichier /etc/apache2/sites-available/default-ssl.conf et remplacer la configuration existante par la suivante :

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerName FULLY_QUALIFIED_DOMAINE_NAME
ServerAdmin SERVER_ADMIN_MAIL
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLProxyEngine on
SSLCertificateFile SSL_CERTIFICATE_FILE
SSLCertificateKeyFile SSL_CERTIFICATE_KEY_FILE
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) wss://WSO2_SERVER_FQDN:9443/$1 [P,L]
ProxyPass "/" "https://WSO2_SERVER_FQDN:9443/"
ProxyPassReverse "/" "https://WSO2_SERVER_FQDN:9443/"

</VirtualHost>

</IfModule>

Puis ouvrir le fichier WSO2_HOME/repository/conf/deployment.toml (avec l'installation de WSO2IS via apt, WSO2_HOME est /usr/lib/wso2/wso2is/5.9.0) et y ajouter la configuration suivante :  

[server]
hostname = "WSO2_SERVER_FQDN"

[transport.http.properties]
proxyPort = 80

[transport.https.properties]
proxyPort = 443

 

Enfin, redémarrer Apache 2 et WSO2IS :

Enfin, redémarrer Apache 2 et WSO2IS :

systemctl restart apache2 wso2is
Nathan Jaunet