passer la gestion "sso automatique" par le cookie de session (#43196) #764

Merged
fpeters merged 2 commits from wip/43196-use-session-for-passive-auth into main 2024-01-12 15:05:26 +01:00
Owner
No description provided.
fpeters force-pushed wip/43196-use-session-for-passive-auth from a0b530c10d to a918646d45 2023-10-06 08:40:50 +02:00 Compare
Author
Owner

C'est surtout le premier commit, le deuxième est juste là pour zapper encore plus rapidement sur les appels aux API.

C'est surtout le premier commit, le deuxième est juste là pour zapper encore plus rapidement sur les appels aux API.
fpeters changed title from WIP: passer la gestion "sso automatique" par le cookie de session (#43196) to passer la gestion "sso automatique" par le cookie de session (#43196) 2023-10-06 09:34:01 +02:00
pmarillonnet reviewed 2024-01-02 11:50:19 +01:00
pmarillonnet left a comment
Owner

Juste un truc qui m’interpelle, ci-dessous.

Juste un truc qui m’interpelle, ci-dessous.
@ -371,2 +360,2 @@
domain=publisher.config.session_cookie_domain,
)
session.opened_session_value = cookies.get(idp_session_cookie_name)
Owner

J’ai l’impression que cette ligne déprécie un bout de code dans wcs.qommon.saml2.Saml2Directory.sso_after_response :

        user = self.lookup_user(session, login)
        if user:
            session.set_user(user.id)
            # save value of idp_session_cookie_name for wcs.root.RootDirectory.try_passive_sso()
            idp_session_cookie_name = get_publisher().get_site_option('idp_session_cookie_name')
            if idp_session_cookie_name:
                if idp_session_cookie_name in get_request().cookies:
                    session.opened_session_value = get_request().cookies[idp_session_cookie_name] # <— cette ligne

non ?

J’ai l’impression que cette ligne déprécie un bout de code dans `wcs.qommon.saml2.Saml2Directory.sso_after_response` : ```python user = self.lookup_user(session, login) if user: session.set_user(user.id) # save value of idp_session_cookie_name for wcs.root.RootDirectory.try_passive_sso() idp_session_cookie_name = get_publisher().get_site_option('idp_session_cookie_name') if idp_session_cookie_name: if idp_session_cookie_name in get_request().cookies: session.opened_session_value = get_request().cookies[idp_session_cookie_name] # <— cette ligne ``` non ?
Author
Owner

non ?

C'est un peu lointain mais à relire il me semble que le sso_after_response doit poser ça, parce qu'ensuite/sinon un passage dans try_passive_sso n'aura jamais aucune chance d'entrer dans

        if request.user:
            if request.session.opened_session_value and request.session.opened_session_value != cookies.get(
                idp_session_cookie_name
            ):
                # logout current user if saved value for idp_session_cookie_name differs from the current one

et ça passera tout le temps par le else de cette condition,

            else:
                # already logged, stop here.
                return

et jamais donc il n'y aura de détection que côté idp l'utilisateur a changé.

> non ? C'est un peu lointain mais à relire il me semble que le sso_after_response doit poser ça, parce qu'ensuite/sinon un passage dans try_passive_sso n'aura jamais aucune chance d'entrer dans ``` if request.user: if request.session.opened_session_value and request.session.opened_session_value != cookies.get( idp_session_cookie_name ): # logout current user if saved value for idp_session_cookie_name differs from the current one ``` et ça passera tout le temps par le else de cette condition, ``` else: # already logged, stop here. return ``` et jamais donc il n'y aura de détection que côté idp l'utilisateur a changé.
Owner

Ah oui ok, pigé, merci.

Ah oui ok, pigé, merci.
pmarillonnet approved these changes 2024-01-02 13:51:06 +01:00
fpeters merged commit 2b61be0799 into main 2024-01-12 15:05:26 +01:00
fpeters deleted branch wip/43196-use-session-for-passive-auth 2024-01-12 15:05:26 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#764
No description provided.