Authentification contre autorisation

626

Quelle est la différence dans le contexte des applications Web? Je vois souvent l'abréviation "auth". Représente- t-il une authentification- authentification ou une authentification- authentification? Ou est-ce les deux?

daGrevis
la source
51
rappelez-vous ceci: l'authentification vérifie les informations d'identification, l'autorisation vérifie les autorisations.
Onur Yıldırım
1
Duplicata intersite
Kyll
Récemment pour les abréviations que j'ai vues authnpour l'authentification et authzpour l'autorisation
jdf
Est-ce que cela répond à votre question? Y a-t-il une différence entre l'authentification et l'autorisation?
paxdiablo

Réponses:

865

L'authentification est le processus qui consiste à vérifier que quelqu'un est bien ce qu'il prétend être.

L'autorisation fait référence à des règles qui déterminent qui est autorisé à faire quoi. Par exemple, Adam peut être autorisé à créer et supprimer des bases de données, tandis qu'Usama n'est autorisé qu'à lire.

Les deux concepts sont complètement orthogonaux et indépendants, mais les deux sont au cœur de la conception de la sécurité, et le fait de ne pas obtenir l'un ou l'autre correct ouvre la voie au compromis.

En termes d'applications Web, très grossièrement, l'authentification consiste à vérifier les informations de connexion pour voir si vous reconnaissez un utilisateur comme étant connecté, et l'autorisation lorsque vous recherchez dans votre contrôle d'accès si vous autorisez l'utilisateur à afficher, modifier, supprimer ou créer du contenu.

Kerrek SB
la source
32
Les définitions semblent bonnes, mais elles ne semblent certainement pas indépendantes. Telle que définie, l' autorisation n'implique- t-elle pas également l' authentification ? Comment pouvez-vous autoriser l'opération de suppression de la base de données d'Adam si vous doutez qu'il est Adam? Autrement dit, si l'opération de suppression d'Adam est autorisée, il est à espérer que cela implique qu'Adam est authentifié.
Timo
7
@Timo: Une application voudra probablement faire les deux, mais ce sont des concepts orthogonaux malgré tout. Votre patron pourrait examiner les autorisations du personnel pour accéder aux composants critiques de l'entreprise, le jet de l'entreprise et le réfrigérateur à bière sans se soucier de savoir quelle personne en particulier sur le flux de vidéosurveillance correspond aux noms dans la feuille de calcul. Ce dernier serait la préoccupation du gardien de sécurité.
Kerrek SB
1
Les concepts sont définitivement orthogonaux. L'authentification ne prouve pas nécessairement votre identité. Cela pourrait être une preuve de votre identité, par exemple de l'âge. Lorsque vous buvez, vous authentifiez votre âge en présentant une pièce d'identité. Ensuite, vous pouvez être autorisé à boire en fonction de votre âge et de la juridiction dans laquelle vous vous trouvez (vous pouvez boire si> 21 aux États-Unis> 18 en Europe)
David Brossard
1
@Sinjai: Je pense que ce sont des problèmes orthogonaux, cependant, et ils peuvent être traités par des installations distinctes: par exemple, le videur (de confiance) à la porte peut déterminer l'âge du client, et différents services à l'intérieur de l'établissement peuvent avoir un âge différent limites, mais tous utiliseront la valeur qu'ils ont obtenue du videur pour prendre des décisions d'admission.
Kerrek SB
1
Une autre façon de voir les choses (dans le contexte de l'exemple de la salle de bar) serait de considérer que l'authentification est le processus de mise en correspondance de la photo sur la carte d'identité avec la personne se tenant devant vous alors que l'autorisation est le processus de validation de l'âge répond aux exigences légales. À mon avis, l'élément dans ce mélange qui rend les lignes floues est que les deux tests doivent également être à la fois conscients et renforcés contre la contrefaçon (l'ID est-il faux) que la plupart des gens ont tendance à considérer comme un problème d'authentification plutôt que que tout aussi important pour la certification auth-c et auth-z.
Ryan Hansen
660

Bref, s'il vous plaît. :-)

Authentification = login + mot de passe (qui vous êtes)

Autorisation = autorisations (ce que vous êtes autorisé à faire)

Un "auth" court est plus susceptible de se référer soit au premier, soit aux deux.

Géo
la source
3
Doux comme un morceau de gâteau :)
devansvd
J'aime ça, court et doux.
King
5
Ensuite, je ne comprends toujours pas pourquoi un en-tête d'autorisation HTTP contient des informations d'authentification… N'est-ce pas une dénomination malheureuse?
Jens
@Jens Réponse courte: oui. Roy Fielding ne savait pas mieux à ce moment-là ... ;-) </tongue-in-cheek>
Per Lundberg
@Jens, je me le demande aussi. Je trouve l' intuition de cette réponse utile. Comme HTTP est sans état , les informations d'authentification doivent être envoyées avec chaque demande, pas seulement les demandes de démarrage et de fermeture (comme l'établissement d'une session sécurisée et l'envoi de demandes sans authentification entre les deux). Par conséquent, cet en-tête de demande doit être une autorisation , car il porte presque toujours d'autres intentions (récupérer des données, img, ...), pas uniquement une authentification .
Minh Nghĩa
83

Comme le dit l' authentification vs l'autorisation :

L'authentification est le mécanisme par lequel les systèmes peuvent identifier en toute sécurité leurs utilisateurs. Les systèmes d'authentification fournissent des réponses aux questions:

  • Qui est l'utilisateur?
  • L'utilisateur est-il vraiment ce qu'il / elle représente lui-même?

L'autorisation , en revanche, est le mécanisme par lequel un système détermine le niveau d'accès qu'un utilisateur authentifié particulier devrait avoir aux ressources sécurisées contrôlées par le système. Par exemple, un système de gestion de base de données peut être conçu de manière à fournir à certaines personnes spécifiées la possibilité de récupérer des informations à partir d'une base de données mais pas la possibilité de modifier les données stockées dans la base de données, tout en donnant à d'autres personnes la possibilité de modifier les données. Les systèmes d'autorisation répondent aux questions:

  • L'utilisateur X est-il autorisé à accéder à la ressource R?
  • L'utilisateur X est-il autorisé à effectuer l'opération P?
  • L'utilisateur X est-il autorisé à effectuer l'opération P sur la ressource R?

Voir également:

Sebastian Paaske Tørholm
la source
34

Je préfère la vérification et les autorisations à l'authentification et à l'autorisation.

Il est plus facile dans ma tête et dans mon code de penser à "vérification" et "autorisations" car les deux mots

  • ne sonnent pas pareil
  • n'ont pas la même abréviation

L'authentification est une vérification et l'autorisation vérifie les autorisations. Auth peut signifier l'un ou l'autre, mais est utilisé plus souvent comme "User Auth" c'est-à-dire "User Authentication"

Aditya Mittal
la source
2
La vérification à mon humble avis semble avoir une portée légèrement plus ouverte que l'authentification, même si l'authentification semble être une sorte de vérification, toutes les vérifications ne sont pas une authentification ... je dirais donc qu'un contexte est toujours nécessaire: vérification de l'accès des utilisateurs, etc., authentification semble toujours se produire dans le domaine "est-il vraiment le gars / la machine?" (frappez-moi si je me trompe, pas un locuteur natif, mais: "vérifiez" que les informations fournies sont exactes vs les authentifications semblent avoir quelque chose à voir avec le fait de savoir que la personne / la machine est celle qu'il prétend être)
Beachwalker
14

La confusion est compréhensible, car les deux mots semblent similaires, et puisque les concepts sont souvent étroitement liés et utilisés ensemble. En outre, comme mentionné, l'abréviation couramment utilisée Auth n'aide pas.

D'autres ont déjà bien décrit la signification de l'authentification et de l'autorisation. Voici une règle simple pour aider à séparer clairement les deux:

  • Auth ENTI cation valide votre Id ENTI ty (ou l' authenticité , si vous préférez que)
  • Auteur isation valide votre auteur ity, à savoir votre droit d'accès et peut - être changer quelque chose.
Kjartan
la source
12

J'ai essayé de créer une image pour expliquer cela dans les mots les plus simples

1) L'authentification signifie "Êtes-vous qui vous dites être?"

2) Autorisation signifie "Devriez-vous être capable de faire ce que vous essayez de faire?".

Ceci est également décrit dans l'image ci-dessous.

entrez la description de l'image ici

J'ai essayé de l'expliquer dans les meilleurs termes possibles et j'ai créé une image de la même chose.

Rohit Ailani
la source
4

L'authentification est le processus de vérification de l'identité proclamée.

  • par exemple nom d'utilisateur / mot de passe

Habituellement suivi d'une autorisation , c'est-à-dire l'approbation que vous pouvez faire ceci et cela.

  • par exemple les autorisations
Jakub Truhlář
la source
Cette réponse est déjà donnée avec une explication approfondie.
Sonu patel
3

Ajout à la réponse de @ Kerrek;

L'authentification est une forme généralisée (tous les employés peuvent se connecter à la machine)

L'autorisation est un formulaire spécialisé (mais l'administrateur peut uniquement installer / désinstaller l'application dans la machine)

Boobalan
la source
1
Le mot «peut» ne s'applique qu'à l'autorisation. L'authentification a peu ou rien à voir avec la connexion. Je pourrais très bien authentifier que vous êtes Boobalan à bien des égards (pas seulement nom d'utilisateur / mot de passe). Une fois que je me suis authentifié et que je sais qui vous êtes, je pourrais très bien NE PAS vous autoriser à vous connecter ou à faire quoi que ce soit sur mon site. Vous êtes authentifié, mais vous ne pouvez pas faire de diddley-squat. Il est déroutant et incorrect d'utiliser le mot «peut» lorsque l'on parle d'authentification.
Suamere
3

L'authentification est le processus de vérification de votre nom d'utilisateur et de votre mot de passe de connexion.

L'autorisation est le processus de vérification que vous pouvez accéder à quelque chose.

Sovichea Cheth
la source
3
Cette "réponse" n'ajoute rien aux réponses déjà données.
Ojonugwa Jude Ochalifu
1

Définitions

Authentification - Êtes-vous la personne que vous prétendez être?

Autorisation - Êtes-vous autorisé à faire tout ce que vous essayez de faire?

Exemple

Une application Web utilise la connexion Google . Une fois qu'un utilisateur s'est connecté avec succès, Google renvoie:

  1. Un jeton JWT. Cela peut être validé et décodé pour obtenir des informations d' authentification . Le jeton est-il signé par Google? Quels sont le nom et l'e-mail de l'utilisateur?
  2. Un jeton d'accès. Cela autorise l'application Web à accéder aux API Google au nom de l'utilisateur. Par exemple, l'application peut-elle accéder aux événements Google Agenda de l'utilisateur? Ces autorisations dépendent des étendues qui ont été demandées et si l'utilisateur l'a autorisé ou non.

Aditionellement:

L'entreprise peut disposer d'un tableau de bord d'administration qui permet au support client de gérer les utilisateurs de l'entreprise. Au lieu de fournir une solution d'inscription personnalisée qui permettrait au support client d'accéder à ce tableau de bord, la société utilise Google Sign-In.

Le jeton JWT (reçu du processus de connexion Google) est envoyé au serveur d'autorisation de l'entreprise pour déterminer si l'utilisateur possède un compte G Suite avec le domaine hébergé de l'organisation ([email protected])? Et s'ils le font, sont-ils membres du groupe Google de l'entreprise créé pour le service client? Si oui à tout ce qui précède, nous pouvons les considérer comme authentifiés .

Le serveur d'autorisation de l'entreprise envoie ensuite à l'application de tableau de bord un jeton d'accès. Ce jeton d'accès peut être utilisé pour faire des demandes autorisées au serveur de ressources de l'entreprise (par exemple, la possibilité de faire une demande GET à un point de terminaison qui renvoie tous les utilisateurs de l'entreprise).

jabacchetta
la source
0

Authentication est un processus de vérification:

  • l'identité de l'utilisateur dans un système (nom d'utilisateur, login, numéro de téléphone, email ...) en fournissant une preuve (clé secrète, biométrie, sms ...). Authentification multifacteur comme extension.
  • vérification des e-mails à l'aide digital signature
  • somme de contrôle

Authorizationest la prochaine étape après Authentication. Il s'agit d'autorisations / rôles / privilèges sur les ressources. OAuth (Open Authorization) est un exemple d'autorisation

yoAlex5
la source