From 5ca5dbac367746b11286f971a77cb0be958f8a39 Mon Sep 17 00:00:00 2001 From: Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> Date: Fri, 7 Apr 2023 15:58:25 +0200 Subject: [PATCH] =?UTF-8?q?[FIX]=20Utilisation=20=C3=A0=20tort=20de=20l'op?= =?UTF-8?q?tion=20de=20config=20'shib=5Fuser=5Fid=5Fextractor'=20sur=20des?= =?UTF-8?q?=20donn=C3=A9es=20d'usurpation/simulation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 +++++- src/UnicaenAuth/Service/ShibService.php | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcc9746..0b25d36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ CHANGELOG ========= -5.0.0 +5.1.1 +----- +- [FIX] Utilisation à tort de l'option de config 'shib_user_id_extractor' sur des données d'usurpation/simulation. + +5.1.0 = 5.0.0 ----- - Migration vers Bootstrap 5 (front-end). - Infos à propos de la connexion dans le menu principal : simple bouton 'Connexion' si aucun utilisateur connecté ; diff --git a/src/UnicaenAuth/Service/ShibService.php b/src/UnicaenAuth/Service/ShibService.php index 122ef15..70af17e 100644 --- a/src/UnicaenAuth/Service/ShibService.php +++ b/src/UnicaenAuth/Service/ShibService.php @@ -496,6 +496,15 @@ EOS; */ private function extractShibUserIdValueForDomainFromShibData(string $domain, array $data): ?string { + // En cas d'usurpation, le domaine du compte utilisateur usurpé (ex : 'unicaen.fr') peut différer de celui + // du compte utilisateur usurpateur (ex : 'univ-lehavre.fr'). Or, la config Shibboleth du module exploitée + // ci-dessous n'a de sens que sur des vraies données d'authentification (i.e celle du compte usurpateur), + // donc pas la peine d'aller plus loin : on génère un id bidon. + // En cas de simulation, on invente les données d'authentification donc c'est la même idée. + if ($this->isUsurpationActive() || $this->isSimulationActive()) { + return uniqid(); + } + $config = $this->getShibUserIdExtractorConfigForDomain($domain); if (empty($config)) { $config = $this->getShibUserIdExtractorDefaultConfig(); -- GitLab