- Le terme « auth » recouvre deux sens : l’authentification (authentication) et l’autorisation (authorization)
- Cela crée de la confusion dans les noms de bibliothèques ou de packages
- Les termes « authn » et « authz » ne sont pas explicites et restent difficiles à comprendre
Différence entre authentification et autorisation
- Authentification (authentication) : processus qui consiste à vérifier qui est l’utilisateur
- Autorisation (authorization) : processus qui consiste à déterminer ce que l’utilisateur a le droit de faire
- Ces deux concepts sont différents, et résoudre l’un ne résout pas automatiquement l’autre
Proposition d’utiliser « permissions » et « login »
- Il est proposé de distinguer clairement l’authentification avec « login » et l’autorisation avec « permissions »
- « login » peut être utilisé comme nom et comme verbe
- Nom : informations saisies pour accéder à un système
- Verbe : action de se connecter pour utiliser un système
- « permissions » s’utilise comme nom ; pour la forme verbale, on emploie « check permissions »
Avantages d’une terminologie claire
- Même des personnes extérieures au métier d’ingénieur logiciel peuvent le comprendre facilement
- Cela permet de meilleures abstractions
- Il devient possible de concevoir l’authentification et l’autorisation comme des modules séparés
Avis de GN⁺
- Importance d’une terminologie claire : quand les termes sont précis, la communication est plus fluide et les malentendus diminuent.
- Bénéfices de l’abstraction : séparer l’authentification et l’autorisation rend la conception du système plus flexible et la maintenance plus simple.
- Exemples d’autres termes possibles : en plus de « login » et « permissions », des termes comme « access control » peuvent aussi être envisagés.
- Points à considérer lors de l’adoption : l’introduction de nouveaux termes demande suffisamment de discussions et un consensus au sein de l’équipe.
- Projets recommandés : parmi les projets représentatifs qui séparent authentification et autorisation, on peut citer OAuth et OpenID Connect.
8 commentaires
Entre développeurs, il est raisonnable de convenir d’utiliser
authnetauthzau lieu deauth, et d’employerloginetpermissiondans la documentation ou les contrôleurs/façades en contact avec les utilisateurs. En revanche, vouloir supprimer aussiauthnetauthz, je ne suis pas sûr que ce soit nécessaire.Comme le souligne l’article, le terme
authétait source de confusion parce qu’il était utilisé de manière ambiguë pour désigner à la fois l’authentification et les autorisations. Séparer cela avec des termes plus généraux pour mieux communiquer avec d’autres domaines que les développeurs au sens strict me semble être une démarche souhaitable.Si le problème est que Authentication et Authorization peuvent tous deux être abrégés en Auth,
comme cela a été mentionné dans l’article, Authn et Authz devraient largement suffire...
Et si l’on estimait que ce n’était pas assez clair, on pourrait aussi les développer un peu plus en Authenty et Authory.
Les systèmes de droits ont aussi une forme permissions, une forme ACL, et alors comment on est censé distinguer tout ça..?
Ça semble un peu forcé...
J’imagine que c’est probablement une tentative de réduire le coût de communication avec les équipes non techniques, mais c’est un peu too much.
N’est-ce pas justement fait exprès de regrouper les deux sous le terme
auth?Il existe authentication et authorization, alors pourquoi utiliser absolument...
Avis sur Hacker News