Expliquez «l'authentification basée sur les revendications» à un enfant de 5 ans


189

Eh bien, pas exactement à un enfant de 5 ans, mais évitez si possible les mots à la mode et les discours d'entreprise.

L'authentification basée sur les revendications semble faire fureur maintenant, mais je n'ai pas pu trouver une explication simple et réaliste de ce qu'elle est réellement, en quoi est-elle différente de ce que nous avons maintenant (je suppose que "ce que nous avons maintenant" être une authentification basée sur les rôles), quels sont les avantages de son utilisation, etc.


1
Je suis d'accord avec @Marnix. Maintenant que vous avez une compréhension de base, vous pouvez vous rapporter plus facilement à la définition / explication de Microsoft .
FrankO

J'ai également trouvé ce livre blanc simple si vous souhaitez y consacrer un peu plus d'attention et de temps. L'introduction répond à la question et les diagrammes parlent de mille mots: download.microsoft.com/download/7/D/0/…
Paweł Bulwan

Kentico a également une explication assez légère sur une telle terminologie docs.kentico.com/k9/managing-users
Hoan Dang

Réponses:


215

@Marnix a une assez bonne réponse, mais pour s'éloigner de l'aspect technique:

L'authentification basée sur les revendications consiste à définir à qui vous faites confiance pour vous donner des informations précises sur votre identité, et à n'utiliser que les informations fournies. Mon (le) exemple de choix est dans un bar. Imaginez un instant que vous vouliez prendre une bière au bar. En théorie, le barman devrait vous demander une preuve d'âge. Comment le prouvez-vous? Eh bien, une option consiste à demander au barman de vous couper en deux et de compter le nombre de sonneries, mais cela pourrait poser des problèmes. L'autre option est pour vous d'écrire votre anniversaire sur un morceau de papier que le barman approuve ou désapprouve. La troisième option est d'aller au gouvernement, d'obtenir une carte d'identité, puis de la présenter au barman.

Certains peuvent rire à l'idée d'écrire simplement votre anniversaire sur un morceau de papier, mais c'est ce qui se passe lorsque vous authentifiez les utilisateurs dans l'application elle-même, car c'est au barman (ou à votre application) de faire confiance au morceau de papier. . Cependant, nous faisons confiance à l'affirmation du gouvernement selon laquelle l'anniversaire sur la pièce d'identité est valide et que la pièce d'identité est celle de la personne qui demande la boisson. À toutes fins utiles, le barman (ou l'application) ne se soucie pas vraiment de la façon dont l'authentification s'est produite en raison de la confiance. Le barman ne sait rien de vous sauf votre date de naissance car c'est tout ce que le barman a besoin de savoir. Maintenant, le barman peut stocker des informations qu'il pense importantes pour lui, comme votre boisson préférée, mais le gouvernement s'en fiche (car ce n'est pas la source faisant autorité),

La clé de l'ABC est "qui est la source officielle de l'identité?"


20
Excellente analogie! J'aimerais pouvoir donner des points supplémentaires pour la méthode «vous couper en deux et compter les anneaux» pour déterminer l'âge d'une personne. Je vais devoir essayer ça. :-)
Keith Robertson

8
Je vois si souvent `` à toutes fins intensives '' que j'apprécie vraiment, vraiment quand les gens disent, correctement, `` à toutes fins utiles ''
JoeBrockhaus

3
Facile: expliquez-leur que les analogies sur des sujets complexes ne peuvent pas être facilement réduites à des concepts simples, quelle que soit la façon dont on les comprend. Et ... pourquoi diable un enfant de 5 ans se soucierait-il vraiment de l'authentification basée sur les réclamations?
Steve

2
J'ai lu cet article et il semble que l'authentification basée sur les revendications soit un système d'authentification tiers comme l'authentification ouverte ou les connexions sociales telles que le compte Microsoft, Facebook, Twitter, Google. n'importe qui peut me dire en quoi l'authentification basée sur les revendications est différente de l'authentification ouverte? car l'authentification ouverte est trop un système d'authentification tiers.
Thomas

1
@Thomas OAuth concerne en fait l'autorisation, pas l'authentification, et cela se transforme en une conversation entièrement différente. Ils fournissent des informations d'identification, mais l'intention est d'utiliser le jeton pour accéder à leur service, et non d'identifier l'utilisateur. Une extension sur cela est OpenID qui est destiné à identifier. Dans les deux cas, la façon simple d'y penser (si ce n'est à 100% précis) est qu'il ne s'agit que de mises en œuvre de l'ABC.
Steve le

131

(Ceci est mon point de vue personnel à ce sujet, d'autres peuvent différer. Veuillez publier d'autres points de vue sous forme de réponses distinctes.)

L'identité / l'authentification / l'autorisation basée sur les revendications consiste à séparer la maintenance des autorisations des utilisateurs et la connexion des utilisateurs à une application (Web), en transformant l'authentification / l'autorisation en un service (Web) distinct.

Ainsi, par exemple, lorsque je navigue vers une application Web prenant en charge les revendications pour la première fois, elle redirige mon navigateur vers un «service de connexion» auquel il fait confiance. Je m'authentifierai auprès de ce service (à l'aide de l'authentification Windows, d'une carte à puce ou autre), et en réponse, il renvoie un «jeton», que le navigateur renvoie à l'application Web. À présent, l'application Web vérifie que le jeton est signé numériquement par son service de connexion approuvé, puis examine les «revendications» dans le jeton. En se basant uniquement sur ces affirmations, l'application décide des fonctionnalités offertes à l'utilisateur.

Les revendications incluront presque toujours l'identité de l'utilisateur, souvent il y a aussi des revendications liées à l'autorisation (`` cet utilisateur peut afficher les données de vente, mais ne pas les mettre à jour ''), et parfois d'autres informations également (`` pointure de la chaussure = 42 '').

Le point clé est que l'application ne sait pas et ne se soucie pas de la manière dont l'utilisateur a été authentifié, ni de la manière dont les autorisations sont gérées: elle utilise uniquement les informations des revendications du jeton signé pour déterminer qui est l'utilisateur et / ou ce que l'utilisateur peut voir ou faire et / ou toute autre information sur l'utilisateur.

(Oui, je suppose ici un enfant de 5 ans assez intelligent et bien informé. :-)


5
Des exemples tels que «Se connecter avec Facebook / Google / ...» d'authentification basée sur les revendications en action?
Wes

1
Je suis sûr que mon enfant de 5 ans comprendrait tout cela.
Sinaesthetic

@wes, votre question est un peu vague. Le simple fait de se connecter avec Facebook ou Google n'est pas un exemple d'authentification basée sur les revendications, non. Je dirais également que l' authentification basée sur les revendications n'est pas une chose. Ce serait une autorisation, le cas échéant. Là où l'ABC entrerait en jeu, c'est au cours de l'étape d'autorisation de la connexion avec ces fournisseurs. Lorsqu'il vous demande des autorisations et que vous acceptez, il ajoutera de la portée à votre jeton d'accès. Ceci est sémantiquement différent d'une revendication mais est souvent utilisé d'une manière très similaire.
Sinaesthetic

40

L'exemple du monde réel suivant est tiré du Guide du contrôle d'accès et d'identité basé sur les revendications (2e édition) .

Une analogie très familière est le protocole d'authentification que vous suivez chaque fois que vous visitez un aéroport . Vous ne pouvez pas simplement vous rendre à la porte d'embarquement et présenter votre passeport ou votre permis de conduire. Au lieu de cela, vous devez d'abord vous enregistrer au guichet. Ici, vous présentez toutes les informations d'identification qui ont du sens. Si vous partez à l'étranger, montrez votre passeport. Pour les vols intérieurs, vous présentez votre permis de conduire. Après avoir vérifié que votre photo d'identité correspond à votre visage ( authentification ), l'agent recherche votre vol et vérifie que vous avez payé un billet ( autorisation ). En supposant que tout est en ordre, vous recevez une carte d'embarquement que vous apportez à la porte.

Une carte d'embarquement est très informative. Les agents de la porte connaissent votre nom et votre numéro de voyageur fréquent (authentification et personnalisation), votre numéro de vol et la priorité de votre siège (autorisation), et peut-être même plus. Les agents de porte ont tout ce dont ils ont besoin pour faire leur travail efficacement.

Il y a aussi des informations spéciales sur la carte d'embarquement. Il est encodé dans le code à barres et / ou la bande magnétique au dos. Ces informations (comme un numéro de série d'embarquement) prouvent que la carte a été émise par la compagnie aérienne et n'est pas un faux.

Essentiellement, une carte d'embarquement est un ensemble signé de réclamations faites par la compagnie aérienne à votre sujet . Il stipule que vous êtes autorisé à monter à bord d'un vol particulier à une heure donnée et à vous asseoir à un siège particulier. Bien sûr, les agents n'ont pas besoin de réfléchir très profondément à cela. Ils valident simplement votre carte d'embarquement, lisent les revendications et vous permettent de monter à bord de l'avion.

Il est également important de noter qu'il peut y avoir plus d'un moyen d'obtenir le jeu de réclamations signé qui constitue votre carte d'embarquement. Vous pouvez vous rendre au guichet de l'aéroport ou utiliser le site Web de la compagnie aérienne et imprimer votre carte d'embarquement chez vous. Les agents de la porte d'embarquement ne se soucient pas de la façon dont la carte d'embarquement a été créée; ils ne se soucient pas de l'émetteur que vous avez utilisé, tant que la compagnie aérienne lui fait confiance. Ils se soucient seulement que ce soit un ensemble authentique de revendications qui vous donnent la permission de monter dans l'avion.

Dans les logiciels, cet ensemble de revendications est appelé un jeton de sécurité . Chaque jeton de sécurité est signé par l'émetteur qui l'a créé. Une application basée sur les revendications considère que les utilisateurs sont authentifiés s'ils présentent un jeton de sécurité valide et signé d'un émetteur de confiance .


18

Pour un garçon de 5 ans, demandez-lui de supposer qu'il a rejoint une nouvelle école en signant la demande par ses parents. Après approbation de la direction de l'école pour sa demande, il obtient une carte d'accès qui contient toutes les informations ci-dessous que nous pouvons appeler des RÉCLAMATIONS pour entrer dans l'école.

  1. Le NOM du GARÇON est BOB.
  2. LE NOM DE L'ÉCOLE EST MONTISSORI HIGH SCHOOL
  3. LA CLASSE EST 8ÈME GRADE

Le premier jour de son école alors qu'il entre dans l'école, il a glissé sa carte d'accès et les portes se sont ouvertes, ce qui signifie qu'il a été RÉCLAMÉ COMME l'une des personnes de l'école. De cette façon, il est une PERSONNE AUTHENTIFIÉE pour entrer dans l'école.

Après avoir atteint sa classe, il a utilisé une carte d'accès pour entrer dans chaque classe, mais à la 8e classe standard, les portes se sont ouvertes car il prétendait être de la 8e norme.

À l'école, il est seulement AUTORISÉ à entrer dans sa classe car il étudie actuellement la 8e norme. Et s'il essaie d'entrer en 6e Standard, l'instituteur NE L'AUTORISERA PAS.


3
Cela décrit simplement la notion générale d'authentification et d'autorisation. Pas spécifiquement basé sur une réclamation ou autre
Sheepy

Sheepy, les revendications s'expliquent sûrement par le fait qu'il est en 8e année et qu'il a refusé l'accès à la 6e?
Ian

1
J'ai lu cet article et il semble que l'authentification basée sur les revendications soit un système d'authentification tiers comme l'authentification ouverte ou les connexions sociales telles que le compte Microsoft, Facebook, Twitter, Google. n'importe qui peut me dire en quoi l'authentification basée sur les revendications est différente de l'authentification ouverte? car l'authentification ouverte est trop un système d'authentification tiers.
Thomas

9

Aussi non technique que possible:

Si vous deviez décrire quoi que ce soit sur qui vous êtes et ce que vous étiez autorisé à voir ou à faire, chacune de ces choses serait quelque chose que vous "prétendiez" être vrai, et donc chaque "chose" sur cette liste serait un " prétendre".

Chaque fois que vous dites à quelqu'un quelque chose sur vous-même ou que vous «prétendez» que vous êtes autorisé à voir ou à faire quelque chose, vous lui remettez votre liste de réclamations. Ils vérifieront auprès d'une autorité que vos affirmations sont vraies et si elles le sont, ils croiront tout ce qui figure sur cette liste de réclamations. Donc, si vous prétendez que vous êtes Brad Pitt, votre liste de réclamations indique que vous êtes Brad Pitt, et il a été vérifié auprès de l'autorité que vos affirmations sont toutes vraies - alors ils croiront que vous êtes Brad Pitt avec rien d'autre dans cette liste.

Revendication : ce que vous prétendez être vrai. Il peut s'agir d'une information ou d'une description d'une autorisation que vous prétendez avoir. Le système auquel vous présentez vos réclamations doit uniquement comprendre ce que signifie la réclamation et être en mesure de vérifier auprès de l'autorité.

Autorité : Le système qui rassemble votre liste de réclamations et la signe qui dit essentiellement: «De mon autorité, tout dans cette liste est vrai». Tant que le système lisant les revendications peut vérifier auprès de l'autorité que la signature est correcte, alors tout ce qui figure dans la liste des revendications sera considéré comme authentique et vrai.

Aussi, ne l'appelons pas «authentification basée sur les revendications», appelons-la plutôt «identité basée sur les revendications».

Un peu plus technique:

Alors maintenant, dans ce processus, vous vous authentifiez en utilisant une sorte de mécanisme (nom d'utilisateur / mot de passe, secret client, certificat, etc.) et cela vous donne un jeton qui prouve que vous êtes qui vous dites être. Ensuite, vous échangez ce jeton d'accès contre un jeton d'identification. Ce processus utilisera votre identité pour rechercher et créer une liste de revendications, la signer, puis vous remettre un jeton d'identification contenant toutes vos revendications.

Au cours de l' étape d' autorisation , selon la façon dont elle est mise en œuvre, la ressource examinera votre jeton d'identification (revendications), puis vérifiera si vous disposez des revendications nécessaires pour accéder à cette ressource.

Ainsi par exemple, si la ressource "CastleBlack / CommandersTower" dit que "vous devez avoir accès au château noir et être le seigneur commandant, alors il va regarder votre liste de revendications pour voir si ces deux choses sont vraies.

Comme vous le voyez, les «revendications» peuvent être n'importe quoi. Cela peut être un rôle, cela peut être un fait, cela peut être un drapeau. C'est juste une liste de paires clé-valeur et la "valeur" est facultative. Parfois, il s'agit simplement de voir si la réclamation existe:

claims : [
    {"type": "name", "value": "Jon Snow"},
    {"type": "home", "value": "Winterfell, The North, Westeros"},   
    {"type": "email", "value": "jon@nightswatch-veterans.org"},
    {"type": "role", "value": "veteran;deserter;"},
    {"type": "department", "value": "none"},    
    {"type": "allowEntry", "value": "true"},
    {"type": "access", "value": "castleblack;eastwatch;"}
]

Donc, si Jon s'est connecté et tente d'accéder à la ressource décrite ci-dessus, il serait refusé car, bien qu'il soit ce qu'il prétend être et qu'il ait accès au château noir, il n'est plus le seigneur commandant et n'a pas non plus un accès explicite à la tour du commandant, et ne peut donc pas entrer implicitement dans la tour du seigneur commandant.

Plus spécifiquement, "CastleBlack" serait probablement une portée [plus large], et chaque zone serait une autorisation spécifique, mais c'est une discussion différente.

La manière dont chaque application traite l'accès sera différente, mais elle utilisera des revendications pour le faire.


5

Étant donné qu'une revendication est un attribut qui vous dit quelque chose sur l'utilisateur (le nom, l'âge, l'appartenance ethnique, etc.), vous travaillez avec un service de jetons de sécurité pour valider ces revendications et les avez également utilisées pour l'autorisation en dehors de l'authentification.

L'extrait suivant est tiré de Wikipedia ( http://en.wikipedia.org/wiki/Claims-based_identity ) et c'est la meilleure analogie que j'ai trouvée jusqu'à présent

"Pour mieux comprendre le concept de service de jetons de sécurité, considérons l'analogie d'une boîte de nuit avec un portier. Le portier veut empêcher les clients mineurs d'entrer. Pour faciliter cela, il demande à un client de présenter un permis de conduire, une carte d'assurance maladie ou toute autre pièce d'identité (le jeton) qui a été émise par un tiers de confiance (le service de jeton de sécurité) tel que le service d'immatriculation des véhicules de la province ou de l'État, le service de la santé ou la compagnie d'assurance. La boîte de nuit est ainsi déchargée de la responsabilité de déterminer le client Il n'a qu'à faire confiance à l'autorité émettrice (et bien sûr à juger lui-même de l'authenticité du jeton présenté). Une fois ces deux étapes accomplies, la boîte de nuit a réussi à authentifier le client en ce qui concerne l'affirmation selon laquelle il ou elle âge légal pour boire.

Poursuivant l'analogie, la boîte de nuit peut avoir un système d'adhésion, et certains membres peuvent être réguliers ou VIP. Le portier pourrait demander un autre jeton, la carte de membre, qui pourrait faire une autre réclamation; que le membre est un VIP. Dans ce cas, l'autorité émettrice de confiance du jeton serait probablement le club lui-même. Si la carte de membre prétend que le client est un VIP, le club peut alors réagir en conséquence, traduisant la demande d'adhésion VIP authentifiée en une autorisation telle que le client est autorisé à s'asseoir dans le salon exclusif et à se voir servir des boissons gratuites. "

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.