Projet

Général

Profil

Development #16580

Ajouter une authentification pour DRF basée sur les client_id/client_secret des clients OIDC

Ajouté par Benjamin Dauvergne il y a presque 7 ans. Mis à jour il y a plus de 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
29 mai 2017
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Idéalement l'objet user renvoyé devrait accepter toutes les permissions, i.e. user.has_perm/has_perms,etc.. renvoie toujours True.


Fichiers


Demandes liées

Lié à Authentic 2 - Development #16583: Ajouter une API check-passwordFermé29 mai 2017

Actions
Lié à Fargo - Development #16842: Déléguer l'authentification des clients à authentic.Fermé12 juin 2017

Actions

Révisions associées

Révision 183aab0d (diff)
Ajouté par Josué Kouka il y a presque 7 ans

add drf OIDC authentication class (#16580)

Historique

#2

Mis à jour par Josué Kouka il y a presque 7 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Josué Kouka
#3

Mis à jour par Josué Kouka il y a presque 7 ans

#4

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

Ne pas oublier de couvrir l'ensemble des tests actuels des APIs avec un utilisateur de type client OIDC.

#5

Mis à jour par Josué Kouka il y a presque 7 ans

#6

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

Le code d'origine de de BasicAuthentication différencie le cas utilisateur inactif de login/mot de passe invalide:

    def authenticate_credentials(self, userid, password):
        """ 
        Authenticate the userid and password against username and password.
        """ 
        credentials = {
            get_user_model().USERNAME_FIELD: userid,
            'password': password
        }
        user = authenticate(**credentials)

        if user is None:
            raise exceptions.AuthenticationFailed(_('Invalid username/password.'))

        if not user.is_active:
            raise exceptions.AuthenticationFailed(_('User inactive or deleted.'))

        return (user, None)

Ce serait bien de conserver ça simplement en inversant l'ordre du test entre oidcclient et utilisateur Django.

#7

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

À part ça ce serait ack.

#9

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

Il faut aussi implémenter filter_by_perm sur OIDCUser, qui doit retourner tel quel son deuxième argument et ignorer totalement le premier.

#12

Mis à jour par Mikaël Ates il y a presque 7 ans

  • Lié à Development #16842: Déléguer l'authentification des clients à authentic. ajouté
#13

Mis à jour par Josué Kouka il y a presque 7 ans

up

#14

Mis à jour par Benjamin Dauvergne il y a presque 7 ans

Ack.

#15

Mis à jour par Josué Kouka il y a presque 7 ans

  • Statut changé de En cours à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#17

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF