Prérequis
hôte Linux : CentOs 6.5 ou 7 (préféré), CloudLinux 6 ou 7, RHEL 6 ou 7, [1]. Voir les détails au paragraphe : "Environnement matériel et logiciel du serveur".
Pour installer et administrer la configuration décrite ci-dessous, il sera utile de disposer d’un "panneau d’administration" pour la gestion de l’hôte et des serveurs. WHM/cPanel est un bon choix [2]. On peut également utiliser Webmin.
serveur Apache 2.x [3]. La sécurité de fonctionnement d’OIDC exige une installation sur un domaine sécurisé par TLS (protocole https://).
PHP 5.6 ou 7.x (7.x obligatoire si /crud/api.php est installé) [4].
serveur de base de données MySQL ou équivalent [5] + phpMyAdmin (ou équivalent)
serveur sshd/sFTP,
client SSH (console et sFTP), accès par l’user root.
Installation d’OAuthSD
1. Installer le code d’OAuthSD
Télécharger le code depuis GitHub : https://github.com/bdegoy/oauthsd, -> ’Clone or download" -> "Download ZIP.
Installer le contenu dé-zippé dans le répertoire web du domaine(web document root) [6] .
2. Installer et exécuter Composer
Voir : Installer (ou mettre à jour) OAuthSD avec Composer .
Ouvrir un client SSH,
se déplacer dans le répertoire web du domaine, exemple pour CentOS :
user@mon.site.com [~]# cd public_html
Si le code d’OAuthSD comporte le fichier /composer.phar et le dossier /composer/, alors Composer est déjà téléversé sur l’hôte pour une utilisation locale. En cas de doute, vous pouvez vérifier l’installation de Composer en suivant les indications de cet article : Installer (ou mettre à jour) OAuthSD avec Composer .
Sinon, se reporter à l’installation de Composer. Le plus simple est une installation locale (dans le répertoire web du domaine).
Exécuter user@mon.site.com [~]# composer install
.
A l’issue, les packages utilisés par OAuthSD se trouvent installés dans le dossier /vendor.
3. Initialiser les données
avec le client SSH, accéder au serveur MySQL et exécuter le contenu du fichier : /install/data.sql.
4. Configuration initiale
Connexion à la base de données : ouvrir le fichier /commons/keepsecret/database.php ; dans la fonction make_credentials, inscrire les valeurs correctes pour dmname, host, driver, port et prefix.
Si la version téléchargé inclut l’API HTTP REST + TreeQL (répertoire http.api), il convient d’adapter les valeurs du fichier de configuration /http.api/api_configure.php.
Options et réglages : les valeurs par défaut suffisent dans la plupart des cas. Pour plus d’information, voir Paramétrage d’OAuthSD.
5. Créer un répertoire pour les sessions d’OAuthSD
créer un répertoire "sessions_oauthsd" un niveau au dessus du répertoire web du domaine.
attribuer à ce répertoire le même user/group et les mêmes permissions que le répertoire web du domaine.
6. Programmer une tâche Cron
Le script cron.php doit être appelé toutes les minutes afin d’exécuter différentes tâches dont l’élaboration de synthèses statistiques (table oidc_stats).
Une tâche cron est programmée pour exécuter toutes les minutes la commande suivante (exemple pour Linux) :
wget -O /dev/null https://<serveur-url>/cron/cron.php >/dev/null 2>&1
Environnement matériel et logiciel du serveur
Connexion au réseau : routeur et firewall
Un serveur OIDC est sensible aux attaques par déni de service. On évitera de router les paquets TCP entrants à l’aide d’une DMZ. On préfèrera configurer un filtrage de port au niveau du routeur/firewall et une règle de routage NAT/PAT pour lier le port entrant (443) à l’IP fixe du serveur sur le réseau local.
Un Pare-feu à états (stateful inspection firewall) serait favorable pour faire face aux attaques de type DDOS. Un routeur/firewall dédié à la connexion du serveur serait favorable à l’adoption de paramètres de filtrage adaptés.
Matériel, RAM et Disques
Un serveur OIDC doit répondre rapidement à de nombreuses requêtes. Une machine dédiée à OAuthSD serait favorable. Le processeur doit être performant (2 à 4 cœurs), la mémoire suffisante ; un disque SSD serait favorable.
RAM : 4 GB minimum.
Partition / : 40GB minimum.
Partition swap : même taille que la RAM.
Sauvegarde
Il faut prévoir un disque interne dédié à la sauvegarde ainsi qu’une sauvegarde externe. Les sauvegardes pourront être réalisées à l’aide du panel d’administration du serveur. La capacité du disque de sauvegarde interne sera égal à 3 fois au moins la capacité du disque principal.
Administration à distance
Il est utile de disposer d’un tunnel SSH ou VPN pour accéder au panneau d’administration ainsi qu’au serveur sshd à l’aide d’une console distante.
Connexion Internet pour les tests
Certains tests nécessitent la connexion du serveur au réseau Internet. Il en est ainsi par exemple des tests décrits dans la rubrique Tests et certification. Cette connexion peut-être fermée par la suite si le serveur doit fonctionner dans un réseau local ou privé.
Avertissement quant aux proxies
Si un proxy doit être installé en amont du serveur ( par ex. un répartiteur de charge), il est important qu’il ait une IP fixe vu du serveur OAuthSD et qu’il transmette l’IP de la requête d’origine par la déclaration HTTP_X_FORWARDED_FOR.
Voir Vérification de l’origine de la requête reçue par un serveur de ressource.