ajout du fichier supprimerSSO_V1.php

Signed-off-by: Charles DAVID <charles@cadjou.net>
This commit is contained in:
2025-08-08 11:15:05 +02:00
parent 5099a35608
commit 54f515e6b7

View File

@@ -0,0 +1,101 @@
<?php
set_time_limit(999);
if (!extension_loaded('curl')) {
die("L'extension cURL est nécessaire.\n");
}
// Paramètres pour la requête
$username = 'ssorecovery';
$password = 'Mot de passe Recovery';
// Liste des IPs séparées par une virgule
$ips = '10.60.105.71';
$ipList = explode(',', $ips);
// Requêtes à effectuer
$request[0] = 'user-management-v2/start-update';
$request[1] = 'user-management-v2/client?$expand=*&force=true';
$request[2] = 'user-management-v2/end-update';
// Données JSON pour la deuxième requête
$jsonData[1] = '{"radius":{"enabled":false},"oidc":{"enabled":false}}';
// Fonction pour effectuer une requête cURL
function makeCurlRequest($url, $method, $headers = [], $postData = null, $cookieFile = null) {
echo $url . "\n";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
if ($postData) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
}
if ($cookieFile) {
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
}
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo "Erreur cURL : " . curl_error($ch) . "\n";
}
curl_close($ch);
return ['response' => $response, 'httpCode' => $httpCode];
}
// Parcourir chaque IP et effectuer les requêtes
foreach ($ipList as $ip) {
$baseUrl = "https://$ip/api/rest/v1/";
$cookieFile = tempnam(sys_get_temp_dir(), 'cookie_'); // Fichier temporaire pour les cookies
echo "Traitement de l'IP : $ip\n";
// 1ère requête : Authentification ou début de session
$url1 = $baseUrl . $request[0];
$authHeaders = [
'Content-Type: application/json',
'Authorization: Basic ' . base64_encode("$username:$password")
];
$response1 = makeCurlRequest($url1, 'POST', $authHeaders, null, $cookieFile);
if ($response1['httpCode'] == 200) {
echo "1ère requête réussie pour $ip : " . $response1['response'] . "\n";
} else {
echo "1ère requête échouée pour $ip, Code HTTP : " . $response1['httpCode'] . "\n";
continue;
}
// 2ème requête : Envoyer le body JSON
$url2 = $baseUrl . $request[1];
$headers2 = ['Content-Type: application/json'];
$response2 = makeCurlRequest($url2, 'POST', $headers2, $jsonData[1], $cookieFile);
if ($response2['httpCode'] == 200) {
echo "2ème requête réussie pour $ip : " . $response2['response'] . "\n";
} else {
echo "2ème requête échouée pour $ip, Code HTTP : " . $response2['httpCode'] . "\n";
}
// 3ème requête : Envoyer le body JSON
$url3 = $baseUrl . $request[2];
$headers3 = ['Content-Type: application/json'];
$response3 = makeCurlRequest($url3, 'POST', $headers3, null, $cookieFile);
if ($response2['httpCode'] == 200) {
echo "3ème requête réussie pour $ip : " . $response2['response'] . "\n";
} else {
echo "3ème requête échouée pour $ip, Code HTTP : " . $response2['httpCode'] . "\n";
}
// Nettoyer le fichier temporaire des cookies
unlink($cookieFile);
}
?>