Project

General

Profile

Development #65942

idp_oidc : un client ayant accès à l’/api/users/ ne doit avoir accès qu’aux usagers s’étant déjà connecté chez lui

Added by Paul Marillonnet 8 months ago. Updated 6 months ago.

Status:
Solution validée
Priority:
Normal
Category:
-
Target version:
-
Start date:
02 June 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Suite de #65877 ; mais aussi assez indépendamment, dans la situation actuelle où OIDCClient.has_api_access == True signifie que c’est open-bar.


Files


Related issues

Related to Authentic 2 - Development #65877: idp_oidc : les hooks de l’api /users/ doivent tenir compte de la résolution des claims lorsque l’appelant est un client oidc connuEn cours01 June 2022

Actions
Related to Authentic 2 - Development #65943: idp_oidc : pour un usager donné, un client ayant accès à l’/api/users/ ne doit voir que les informations d’identité auxquelles il a accès dans la configuration oidcEn cours02 June 2022

Actions
Related to Authentic 2 - Development #66114: idp_oidc : effectuer systématiquement la réduction des informations retournées à un client en fonction des autorisations qu’il possèdeNouveau09 June 2022

Actions

History

#1

Updated by Paul Marillonnet 8 months ago

  • Related to Development #65877: idp_oidc : les hooks de l’api /users/ doivent tenir compte de la résolution des claims lorsque l’appelant est un client oidc connu added
#2

Updated by Paul Marillonnet 8 months ago

  • Related to Development #65943: idp_oidc : pour un usager donné, un client ayant accès à l’/api/users/ ne doit voir que les informations d’identité auxquelles il a accès dans la configuration oidc added
#3

Updated by Paul Marillonnet 8 months ago

#4

Updated by Benjamin Dauvergne 8 months ago

  • Status changed from Solution proposée to En cours
  • Assignee set to Paul Marillonnet

Si le mode d'autorisation est par ou, l'autorisation est accrochée à l'ou pas au client et sur OU et OIDCClient tu as une GenericRelation 'oidc_authorizations' pour simplifier ta requête.

#5

Updated by Paul Marillonnet 8 months ago

Benjamin Dauvergne a écrit :

Si le mode d'autorisation est par ou, l'autorisation est accrochée à l'ou pas au client et sur OU et OIDCClient tu as une GenericRelation 'oidc_authorizations' pour simplifier ta requête.

Bien vu, en effet c’est mieux comme ça.

#6

Updated by Benjamin Dauvergne 8 months ago

  • Status changed from Solution proposée to En cours

Il faudrait garder le fastpath avant aussi.

#7

Updated by Paul Marillonnet 8 months ago

J’ai l’impression que dans le cas général, Client.authorized_roles n’est pas défini. On se retrouve donc pris dans ce fastpath et le queryset n’est pas réduit.
Je peux adapter les tests pour définir authorized_roles sur la fixture oidc_client, mais je ne sais pas si ce sera représentatif de la réalité.

#8

Updated by Paul Marillonnet 8 months ago

  • Related to Development #66114: idp_oidc : effectuer systématiquement la réduction des informations retournées à un client en fonction des autorisations qu’il possède added
#9

Updated by Paul Marillonnet 8 months ago

  • Status changed from En cours to Solution proposée

Je laisse en solution proposée en attendant, car je ne vois pas comment le fastpath peut arriver avant.

#10

Updated by Benjamin Dauvergne 6 months ago

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

C'est ça que j'aurai aimé garder avant, pour voir clairement les cas où on ne touche à rien, ensuite avoir tout le spécifique OIDC / User.

        # fast path
        if not issubclass(qs.model, User):
            return qs
        client = ....
        if client is None:
            return qs

Also available in: Atom PDF