25 points par GN⁺ 2024-05-28 | 8 commentaires | Partager sur WhatsApp
  • 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

 
savvykang 2024-05-29

Entre développeurs, il est raisonnable de convenir d’utiliser authn et authz au lieu de auth, et d’employer login et permission dans la documentation ou les contrôleurs/façades en contact avec les utilisateurs. En revanche, vouloir supprimer aussi authn et authz, je ne suis pas sûr que ce soit nécessaire.

 
gcback 2024-05-29

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.

 
nemorize 2024-05-28

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.

 
koxel 2024-05-28

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é...

 
namarie32ilu 2024-05-28

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.

 
iolothebard 2024-05-28

N’est-ce pas justement fait exprès de regrouper les deux sous le terme auth ?

 
kuber 2024-05-28

Il existe authentication et authorization, alors pourquoi utiliser absolument...

 
GN⁺ 2024-05-28
Avis sur Hacker News
  • « Authorize » et « Authenticate » sont d’excellents termes utilisés depuis le Moyen Âge. Le sens de ces deux mots n’a pas fondamentalement changé.
  • Ces deux termes ont une distinction importante dans les systèmes cryptographiques. Changer de mots pour réduire la confusion ne semble pas vraiment utile.
  • L’argument selon lequel le nom « auth » créerait de la confusion n’est pas très convaincant. Changer le terme ne semble pas résoudre le problème.
  • Il est préférable d’utiliser les abréviations « authn » et « authz ». Mais utiliser les mots complets est aussi tout à fait acceptable.
  • « Identity » et « Access » Management (IAM) sont des termes standard. Personnellement, je préfère le terme « authnz ».
  • « Login » ne couvre pas l’authentification par token ou par clé. Les comptes de service ne se connectent pas, mais ils ont tout de même besoin d’authentification et d’autorisation.
  • La distinction entre authn et authz n’est pas toujours claire. On dirait parfois que certains préfèrent des termes stylés à des termes précis.
  • Je n’ai jamais eu de problème avec l’usage du terme « auth » dans les systèmes IAM. Quand il faut être plus précis, il suffit d’employer une formulation adaptée.
  • « login » et « permissions » ne capturent pas tout le sens ni toute la complexité du système. L’authentification recouvre bien plus que la simple connexion.
  • L’authentification et l’autorisation sont étroitement liées. L’autorisation est impossible sans authentification.
  • Le login n’est pas un bon substitut au terme authentification. Il existe des cas d’authentification qui ne nécessitent pas de connexion.
  • « auth » peut désigner à la fois l’authentification et l’autorisation. Ces deux notions sont souvent utilisées ensemble.
  • L’authentification et l’autorisation sont des termes standard en informatique et en sécurité de l’information. Pour éviter toute confusion, il vaut mieux utiliser les mots complets.
  • « authn » et « authz » sont parfaitement utilisables entre personnes techniques. Pour le grand public, il vaut mieux utiliser « login » et « permissions ».
  • On retrouve des concepts similaires dans la vie réelle. Par exemple, un badge professionnel permet de vérifier l’identité et d’accorder des droits d’accès.
  • L’autorisation et les permissions ne sont pas la même chose. Les permissions sont des droits ou privilèges qui ne sont pas attribués à un utilisateur spécifique.
  • L’autorisation peut avoir deux sens. Le processus consistant à accorder à un utilisateur le droit d’effectuer une action donnée, et celui consistant à vérifier ce droit.
  • « access control » peut désigner le contrôle d’accès à l’exécution. C’est ce que l’application effectue après l’authentification de l’utilisateur.
  • « authN » et « authZ » sont tout à fait appropriés et bien compris. L’autorisation concerne toujours le lien entre les permissions et l’utilisateur.