Project

General

Profile

Bug #90766

Contrôle d'accès par rôle non-respecté

Added by Benjamin Renard about 1 month ago. Updated 20 days ago.

Status:
Solution déployée
Priority:
Haut
Category:
-
Target version:
-
Start date:
17 May 2024
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Bug potentiellement : le contrôle de droit d'accès par rôle sur un service ne semble pas être respecté dans les dernières versions d'Authentic. J'ai put le constater sur des services OIDC & CAS avec des versions d'Authentic 5.29-1~eob110+1 & 5.40-1~eob110+1 (la dernière) et ceux sur deux instances différentes.

Concrètement, j'ai un rôle quelconque dans Authentic (synchronisé depuis LDAP), avec que quelques utilisateurs qui l'ont (info visible sur la page de l'utilisateur et du rôle dans /manage/). Au niveau des services, ce rôle est sélectionné et ajouté dans "Rôles autorisés à se connecter à ce service". Quand je tente une connexion sur le service, l'accès n'est pas refusé et l'utilisateur accède au service.


Files


Related issues

Related to Authentic 2 - Development #15456: Contrôle d'accès au SSO basé sur les rôlesFermé16 March 2017

Actions

Associated revisions

Revision 17399e1c (diff)
Added by Benjamin Renard 24 days ago

CAS: fix checking user service access before redirecting him (#90766)

License: MIT

History

#1

Updated by Benjamin Renard about 1 month ago

Je reproduis également lors d'un accès à un service SAML.

#2

Updated by Benjamin Renard about 1 month ago

En creusant, je viens de voir que les "superuser" ont accès à tout. En utilisant un compte non-superuser, je reproduis le bug que sur un service CAS. Avec un service OIDC et SAML, je suis bien bloqué.

#3

Updated by Benjamin Renard about 1 month ago

Ci-joint, un patch qui semble faire l'affaire (pre-commit & tests unitaires OK).

#4

Updated by Robot Gitea about 1 month ago

  • Status changed from Nouveau to Solution proposée
  • Assignee set to Thomas Noël

Thomas NOËL (tnoel) a ouvert une pull request sur Gitea concernant cette demande :

#5

Updated by Robot Gitea about 1 month ago

  • Status changed from Solution proposée to En cours

Benjamin Dauvergne (bdauvergne) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#6

Updated by Benjamin Dauvergne about 1 month ago

#7

Updated by Thomas Noël about 1 month ago

  • Assignee changed from Thomas Noël to Benjamin Renard

Benjamin (Renard) je te remonte une remarque de Benjamin (Dauvergne) sur la PR https://git.entrouvert.org/entrouvert/authentic/pulls/308 :

C'est bon pour le positionnement de la condition d'autorisation, mais il manquera un test. Il y a déjà deux tests passant/non passants pour le cas où le login est nécessaire, il faut ajouter les mêmes avec une session déjà ouverte.

Tu trouveras sans doute un peu d'inspiration sur les tests cités test_role_access_control_denied et test_role_access_control_granted dans tests/test_idp_cas.py

#8

Updated by Benjamin Renard 26 days ago

Thomas Noël a écrit :

Benjamin (Renard) je te remonte une remarque de Benjamin (Dauvergne) sur la PR https://git.entrouvert.org/entrouvert/authentic/pulls/308 :

C'est bon pour le positionnement de la condition d'autorisation, mais il manquera un test. Il y a déjà deux tests passant/non passants pour le cas où le login est nécessaire, il faut ajouter les mêmes avec une session déjà ouverte.

Tu trouveras sans doute un peu d'inspiration sur les tests cités test_role_access_control_denied et test_role_access_control_granted dans tests/test_idp_cas.py

OK, effectivement, se sera une bonne chose d'avoir des tests à ce niveau. Tu trouvera ci-joint une nouvelle version de mon patch avec les tests. J'ai renommé les deux tests spécifiés en ajoutant un suffixe _on_continue et je les ait dupliqués pour le cas _on_login. Concrètement, la seule différente entre ces tests, c'est que dans *_on_login, on fait en sorte d'être déjà connecté lors de l'appel à /idp/cas/login.

#9

Updated by Robot Gitea 24 days ago

  • Status changed from En cours to Solution proposée

Thomas NOËL (tnoel) a demandé une relecture de Benjamin Dauvergne (bdauvergne) sur une pull request sur Gitea concernant cette demande :

#10

Updated by Robot Gitea 23 days ago

  • Status changed from Solution proposée to Solution validée

Benjamin Dauvergne (bdauvergne) a approuvé une pull request sur Gitea concernant cette demande :

#11

Updated by Robot Gitea 23 days ago

  • Status changed from Solution validée to Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#12

Updated by Transition automatique 20 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF