web-dev-qa-db-fra.com

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

Eh bien, pas exactement pour un enfant de 5 ans, mais évitez les mots à la mode et les entreprises si possible.

L’authentification basée sur les revendications semble faire fureur à présent, mais je n’ai pas trouvé d’explication simple et réaliste de ce qu’elle est en réalité. En quoi cela diffère-t-il de ce que nous avons maintenant (je suppose "ce que nous avons maintenant") authentification basée sur les rôles), quels sont les avantages de son utilisation, etc.

182
Anton Gogolev

@Marnix a une très bonne réponse, mais pour s'écarter de l'aspect technique:

L’authentification basée sur les revendications consiste à définir en qui vous avez confiance pour vous fournir des informations précises sur l’identité, et en utilisant uniquement les informations fournies. Mon exemple est dans un bar. Imaginez un instant que vous souhaitiez prendre une bière au bar. En théorie, le barman devrait vous demander une preuve d'âge. Comment le prouves-tu? Eh bien, une option est que le barman vous coupe en deux et compte le nombre de sonneries, mais cela pourrait poser quelques problèmes. L’autre option est d’écrire votre anniversaire sur une feuille de papier approuvée ou désapprouvée par le barman. La troisième option est d'aller voir le gouvernement, obtenir une carte d'identité, puis présenter la carte d'identité au barman.

Certains peuvent rire à l'idée de simplement écrire votre anniversaire sur un morceau de papier, mais c'est ce qui se passe lorsque vous authentifiez des utilisateurs dans l'application elle-même, car il appartient au barman (ou à votre application) de faire confiance au document. . Cependant, nous croyons en l'affirmation du gouvernement selon laquelle la date d'anniversaire figurant sur la carte d'identité est valide et qui est destinée à 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 doit savoir. Maintenant, le barman peut stocker des informations qu’il considère 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é), aussi le barman stocke-t-il ces informations à sa manière.

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

207
Steve

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

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

Ainsi, par exemple, lorsque je navigue pour la première fois vers une application Web prenant en charge les revendications, il 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 renverra un "jeton", que le navigateur renverra à l'application Web. À présent, l’application Web vérifie que le jeton est signé numériquement par son service d’ouverture de session de confiance, puis examine les "revendications" dans le jeton. En se basant uniquement sur ces revendications, l’application décide des fonctionnalités offertes à l’utilisateur.

Les revendications incluent presque toujours l'identité de l'utilisateur. Souvent, il existe également des revendications liées aux autorisations ("cet utilisateur peut afficher les données des ventes, mais pas les mettre à jour"), et parfois d'autres informations ("taille de la chaussure = 42").

Le point clé est que l’application ne sait ni comment l’authentification a été authentifiée, ni comment les autorisations sont administrées: elle utilise uniquement les informations des revendications dans le jeton signé pour déterminer qui est cet utilisateur et/ou ce que l’utilisateur peut faire. voir ou faire et/ou toute autre information sur l'utilisateur.

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

128
Marnix Klooster

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

Une analogie bien connue 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 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 tout titre qui a du sens. Si vous partez à l’étranger, vous présentez 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 examine votre vol et vérifie que vous avez payé le billet ( autorisation ). En supposant que tout soit en ordre, vous recevez une carte d'embarquement que vous apportez à la porte.

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

Il existe également des informations spéciales sur la carte d'embarquement. Il est codé dans le code à barres et/ou la bande magnétique au verso. Ces informations (telles qu'un numéro de série d'embarquement) prouvent que le laissez-passer a été émis par la compagnie aérienne et n'est pas un faux.

En substance, une carte d'embarquement est un ensemble signé de déclarations de sinistre faites par la compagnie aérienne à votre sujet . Il est dit que vous êtes autorisé à monter à un vol particulier à un moment donné et à vous asseoir à un siège particulier. Bien sûr, les agents n’ont pas besoin d’y réfléchir profondément. Ils valident simplement votre carte d'embarquement, lisent les demandes de paiement 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 revendications 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 à la maison. Les agents à la porte embarquant dans le vol ne s’inquiètent pas de la création de la carte d’embarquement; peu importe l’émetteur que vous avez utilisé, tant que la compagnie aérienne lui fait confiance. Ils se soucient seulement du fait qu'il s'agisse d'un ensemble de revendications authentiques qui vous donnent la permission de monter dans l'avion.

Dans le logiciel, cet ensemble de revendications s'appelle 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 les utilisateurs comme authentifiés s’ils présentent un jeton de sécurité valide et signé émanant d’un émetteur approuvé.

39

Pour un garçon de 5 ans, demandez-lui de présumer qu'il a rejoint une nouvelle école en signant la demande de ses parents. Après l’approbation de sa candidature par la direction de l’école, il obtient une carte d’accès contenant toutes les informations ci-dessous que nous pouvons appeler "DEMANDES D’ENTRÉE".

  1. Le nom du garçon est BOB.
  2. NOM DE L’ÉCOLE IS MONTISSORI HIGH SCHOOL
  3. CLASSE IS 8ème GRADE

Le premier jour de son école, alors qu'il entrait dans l'école, il a passé sa carte d'accès et les portes ont été ouvertes, ce qui signifie qu'il a été RÉCLAMÉ COMME l'un des membres de l'école. De cette façon, il est une personne autorisée à 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 8ème Classe, les portes de la Classe s'ouvraient comme il prétendait être de la 8ème Standard.

À l'école, il n'est autorisé à entrer dans sa classe que maintenant, il étudie actuellement le 8ème standard. Et s'il essaie d'entrer dans la 6ème norme, le professeur ne l'autorisera pas.

18
smiles1

Aussi peu 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étendriez" être vraie, 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 "prétendez" que vous êtes autorisé à voir ou à faire quelque chose, vous lui remettez votre liste de revendications. Ils vérifieront auprès d'une autorité que vos revendications sont vraies et, le cas échéant, ils croiront n'importe quoi sur cette liste de revendications. Donc, si vous prétendez être Brad Pitt, votre liste de réclamations indique qu’il s’agit de Brad Pitt, et il a été vérifié avec l’autorité que vos réclamations sont toutes vraies -, alors ils se croiront avec Brad Pitt rien d'autre dans cette liste.

Réclamer: ce que vous prétendez être vrai. Cela peut être une information ou une description d'une permission que vous prétendez avoir. Le système auquel vous présentez vos revendications doit seulement comprendre ce que signifie/signifie la revendication et également pouvoir vérifier auprès de l'autorité.

Autorité: Le système qui rassemble et réclame votre liste de réclamations et qui le signale en gros "Sur mon autorité, tout ce qui est sur cette liste est vrai." Tant que le système qui lit les revendications peut vérifier avec l'autorité que la signature est correcte, tous les éléments de la liste des revendications seront considérés comme authentiques et vrais.

Aussi, n'appelons pas cela "authentification basée sur les revendications", mais appelons plutôt "identité basée sur les revendications".

légèrement plus technique:

Alors maintenant, dans ce processus, vous vous authentifiez en utilisant une sorte de mécanisme (nom d'utilisateur/mot de passe, secret du client, certificat, etc.) et cela vous donne un jeton cela 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 rendre un jeton d’identité contenant toutes vos revendications.

À l'étape de l'autorisation , selon son implémentation, la ressource examinera votre jeton d'identification (revendications), puis vérifiera si vous avez les revendications nécessaires. pour accéder à cette ressource.

Ainsi, par exemple, si la ressource "CastleBlack/CommandersTower" indique que "vous devez avoir accès à Castle black et être seigneur commandant, il examinera votre liste de revendications pour voir si ces deux choses sont vraies.

Comme vous le voyez, les "revendications" peuvent être n'importe quoi. Ça peut être un rôle, ça peut être un fait, ça peut être un drapeau. C'est juste une liste de paires clé-valeur et la "valeur" est optionnelle. Parfois, il suffit de voir si la revendication existe:

claims : [
    {"type": "name", "value": "Jon Snow"},
    {"type": "home", "value": "Winterfell, The North, Westeros"},   
    {"type": "email", "value": "[email protected]"},
    {"type": "role", "value": "veteran;deserter;"},
    {"type": "department", "value": "none"},    
    {"type": "allowEntry", "value": "true"},
    {"type": "access", "value": "castleblack;eastwatch;"}
]

Donc, si Jon se connecte et essaie d'accéder à la ressource décrite ci-dessus, il sera refusé car, bien qu'il soit ce qu'il dit être et qu'il ait accès au château noir, il n'est plus le seigneur commandant ni l'accès explicite à la tour du commandant, et donc ne peut pas implicitement entrer dans la tour du seigneur du commandant.

Plus précisément, "CastleBlack" serait probablement une portée [plus grande], et chaque zone serait une permission spécifique, mais la discussion est différente.

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

9
Sinaesthetic

Considérant qu’une revendication est un attribut qui vous dit quelque chose sur l’utilisateur (le nom, l’âge, l’ethnie, etc.), vous travaillez contre un service de jeton de sécurité pour valider ces revendications et les a également utilisées pour une autorisation autre que 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 l'entrée des clients mineurs. Pour faciliter cela, il demande à un client de présenter un permis de conduire, une carte d'assurance maladie ou toute autre identification (le jeton) émise par un tiers de confiance (le service de jeton de sécurité), tel que le service d'immatriculation provincial ou public, le service de santé ou la compagnie d'assurance, ce qui évite à la boîte de nuit de déterminer l'identité du client. Il a seulement besoin de faire confiance à l’autorité d’émission (et bien sûr de juger de l’authenticité du jeton présenté) .Avec ces deux étapes terminées, la boîte de nuit a réussi à authentifier le client en ce qui concerne sa prétention. âge légal de boire.

En continuant l'analogie, la boîte de nuit peut avoir un système d'adhésion et certains membres peuvent être des membres réguliers ou des membres 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 indique que le client est un membre VIP, le club peut réagir en conséquence, en traduisant la demande de membre authentifiée VIP), par exemple en autorisant le client à siéger de manière exclusive. salon et être servi des boissons gratuites. "

5
Paleta