This repository provides a modified version of the Icinga Web 2 ExternalBackend
class and enables external authentication via JSON Web Token (JWT).
Note: Currently it only handles JWTs from AWS ELB.
- PHP-JWT
- Sodium Compat (optional)
Install composer and use it to download PHP requirements:
cd /usr/share/icingaweb2/library
composer require firebase/php-jwt
composer require paragonie/sodium_compat
Finally, clone this repository and replace the default ExternalBackend
class after having installed the official Icinga Web 2 package:
git clone https://github.com/tbumke/icingaweb2-jwtauth.git
install -b -o root -g root -m 0644 icingaweb2-jwtauth/ExternalBackend.php /usr/share/php/Icinga/Authentication/User/ExternalBackend.php
First of all, I'm not a PHP developer and would like to hear your feedback on my modifications. Feel free to open issues and pull-requests if you would like to collaborate. The code is barely tested and at this point most likely NOT ready for production use.