webentwicklung-frage-antwort-db.com.de

Erklären Sie einem 5-Jährigen die "anspruchsbasierte Authentifizierung"

Nun, nicht gerade für einen 5-Jährigen, aber bitte vermeiden Sie Modewörter und unternehmerisches Sprechen, wenn möglich.

Anspruchsbasierte Authentifizierung scheint derzeit in aller Munde zu sein, aber ich konnte keine einfache und bodenständige Erklärung dafür finden, was es tatsächlich ist, wie es sich von dem unterscheidet, was wir jetzt haben (ich nehme an, "was wir jetzt haben"). rollenbasierte Authentifizierung sein), welche Vorteile ergeben sich aus ihrer Verwendung usw.

182
Anton Gogolev

@Marnix hat eine ziemlich gute Antwort, aber um vom technischen Aspekt abzuweichen:

Bei der anspruchsbasierten Authentifizierung wird definiert, wem Sie vertrauen, um Ihnen genaue Informationen zur Identität zu geben, und immer nur die bereitgestellten Informationen verwendet. Mein Vorbild ist eine Bar. Stellen Sie sich für einen Moment vor, Sie möchten ein Bier an der Bar trinken. Theoretisch sollte der Barkeeper Sie um einen Altersnachweis bitten. Wie beweist du das? Nun, eine Möglichkeit ist, dass der Barkeeper Sie in zwei Hälften schneidet und die Anzahl der Ringe zählt, aber es könnte einige Probleme damit geben. Die andere Möglichkeit ist, dass Sie Ihren Geburtstag auf ein Blatt Papier schreiben, auf dem der Barkeeper zustimmt oder ablehnt. Die dritte Möglichkeit besteht darin, sich an die Regierung zu wenden, einen Personalausweis zu besorgen und den Personalausweis dem Barkeeper vorzulegen.

Einige lachen vielleicht über die Idee, Ihren Geburtstag einfach auf ein Stück Papier zu schreiben. Dies geschieht jedoch, wenn Sie Benutzer innerhalb der Anwendung selbst authentifizieren, da es dem Barkeeper (oder Ihrer Anwendung) überlassen ist, dem Stück Papier zu vertrauen . Wir vertrauen jedoch der Behauptung der Regierung, dass der Geburtstag auf dem Ausweis gültig ist und der Ausweis für die Person gilt, die das Getränk anfordert. In jeder Hinsicht ist es dem Barkeeper (oder der Anwendung) egal, wie die Authentifizierung aufgrund des Vertrauens erfolgte. Der Barkeeper weiß nichts über Sie außer Ihrem Geburtsdatum, denn das ist alles, was der Barkeeper wissen muss. Nun könnte der Barkeeper Informationen speichern, die er für wichtig hält, wie beispielsweise Ihr Lieblingsgetränk, aber die Regierung kümmert sich nicht darum (da dies nicht die maßgebliche Quelle ist), sodass der Barkeeper diese Informationen auf seine eigene Weise speichert.

Der Schlüssel zu CBA lautet: "Wer ist die maßgebliche Quelle der Identität?"

207
Steve

(Dies ist meine persönliche Sichtweise, andere können davon abweichen. Bitte posten Sie andere Standpunkte als separate Antworten.)

Bei anspruchsbasierter Identität/Authentifizierung/Autorisierung geht es darum, die Verwaltung von Benutzerberechtigungen und die Benutzeranmeldung von einer (Web-) Anwendung zu trennen, indem die Authentifizierung/Autorisierung in einen separaten (Web-) Dienst umgewandelt wird.

Wenn ich zum Beispiel zum ersten Mal zu einer anspruchs- fähigen Webanwendung navigiere, leitet sie meinen Browser an einen vertrauenswürdigen Anmeldedienst weiter. Ich werde mich bei diesem Dienst authentifizieren (mithilfe der Windows-Authentifizierung, einer Smartcard oder was auch immer) und als Antwort ein "Token" zurücksenden, das der Browser an die Webanwendung zurücksendet. Jetzt überprüft die Webanwendung, ob das Token von seinem vertrauenswürdigen Anmeldedienst digital signiert ist, und überprüft dann die "Ansprüche" im Token. Auf der Grundlage dieser Ansprüche entscheidet die Anwendung, welche Funktionalität dem Benutzer angeboten wird.

Die Ansprüche enthalten fast immer die Identität des Benutzers, häufig gibt es auch berechtigungsbezogene Ansprüche ("dieser Benutzer kann Verkaufsdaten anzeigen, aber nicht aktualisieren") und manchmal auch andere Informationen ("Schuhgröße = 42").

Der entscheidende Punkt ist, dass die Anwendung weder weiß noch kümmert, wie der Benutzer authentifiziert wurde, noch wie die Berechtigungen verwaltet werden: Sie verwendet nur die Informationen aus den Ansprüchen im signierten Token, um zu bestimmen, wer der Benutzer ist und/oder was der Benutzer darf sehen oder tun und/oder sonstige Informationen über den Benutzer.

(Ja, ich gehe hier von einem ziemlich intelligenten und gut informierten 5-Jährigen aus.: -)

128
Marnix Klooster

Das folgende Beispiel aus der Praxis stammt aus Ein Leitfaden zur anspruchsbasierten Identitäts- und Zugriffskontrolle (2. Auflage) .

Eine sehr vertraute Analogie ist das Authentifizierungsprotokoll, das Sie bei jedem Besuch eines Flughafens befolgen. Sie können nicht einfach zum Gate gehen und Ihren Reisepass oder Führerschein vorzeigen. Stattdessen müssen Sie zuerst am Ticketschalter einchecken. Hier legen Sie vor, was für eine Berechtigung Sinn macht. Wenn Sie nach Übersee reisen, zeigen Sie Ihren Reisepass. Für Inlandsflüge legen Sie Ihren Führerschein vor. Nachdem überprüft wurde, ob Ihre Bild-ID mit Ihrer Gesichtserkennung ( Authentifizierung ) übereinstimmt, sucht der Agent Ihren Flug und überprüft, ob Sie für ein Ticket ( Autorisierung bezahlt haben ). Vorausgesetzt, alles ist in Ordnung, erhalten Sie eine Bordkarte, die Sie zum Gate bringen.

Eine Bordkarte ist sehr informativ. Gate-Agenten kennen Ihren Namen und Ihre Vielfliegernummer (Authentifizierung und Personalisierung), Ihre Flugnummer und Sitzplatzpriorität (Autorisierung) und vielleicht noch mehr. Die Gate Agents haben alles, was sie brauchen, um ihre Arbeit effizient zu erledigen.

Es gibt auch spezielle Informationen auf der Bordkarte. Sie ist im Barcode und/oder im Magnetstreifen auf der Rückseite kodiert. Diese Informationen (z. B. eine Seriennummer für das Boarding) beweisen, dass der Pass von der Fluggesellschaft ausgestellt wurde und keine Fälschung ist.

Im Wesentlichen ist eine Bordkarte eine von der Fluggesellschaft unterzeichnete Reihe von Angaben zu Ihrer Person . Es besagt, dass Sie zu einer bestimmten Zeit in einen bestimmten Flug einsteigen und an einem bestimmten Platz sitzen dürfen. Natürlich müssen Agenten nicht sehr tief darüber nachdenken. Sie validieren einfach Ihre Bordkarte, lesen die Ansprüche darauf und lassen Sie an Bord des Flugzeugs.

Es ist auch wichtig zu beachten, dass es mehrere Möglichkeiten gibt, die unterschriebenen Ansprüche zu erhalten, nämlich Ihre Bordkarte. Sie können zum Ticketschalter am Flughafen gehen oder die Website der Fluggesellschaft verwenden und Ihre Bordkarte zu Hause ausdrucken. Den Gate-Agenten, die an Bord des Fluges gehen, ist es egal, wie die Bordkarte erstellt wurde. Es ist ihnen egal, welchen Emittenten Sie verwendet haben, solange die Fluggesellschaft dem vertraut. Sie kümmern sich nur darum, dass es sich um authentische Behauptungen handelt, die Ihnen die Erlaubnis geben, in das Flugzeug zu steigen.

In der Software wird dieses Bündel von Ansprüchen als Sicherheitstoken bezeichnet. Jedes Sicherheitstoken ist vom Aussteller signiert ​​der es erstellt hat. Eine anspruchsbasierte Anwendung betrachtet Benutzer als authentifiziert, wenn sie ein gültiges, signiertes Sicherheitstoken eines vertrauenswürdigen Ausstellers vorlegen.

39

Bitten Sie ihn für einen 5-jährigen Jungen anzunehmen, dass er eine neue Schule besucht, indem Sie den Antrag seiner Eltern unterschreiben. Nach der Genehmigung durch die Schulleitung für seinen Antrag erhält er eine Zugangskarte mit allen unten aufgeführten Informationen, die wir als ANSPRÜCHE für den Eintritt in die Schule bezeichnen können.

  1. NAME des JUNGEN ist BOB.
  2. SCHULNAME IS MONTISSORI HIGH SCHOOL
  3. KLASSE IS 8TH GRADE

Am ersten Schultag, als er die Schule betrat, hat er seine Zugangskarte geklaut und die Tore geöffnet, was bedeutet, dass er als einer der Angehörigen der Schule BESCHRIEBEN wurde. Auf diese Weise ist er eine AUTHENTIFIZIERTE PERSON, die die Schule betritt.

Nachdem er seine Klasse erreicht hatte, benutzte er eine Zugangskarte, um in jede Klasse einzutreten, aber bei der 8. Standardklasse öffneten sich die Türen, als er behauptete, von der 8. Standardklasse zu sein.

In der Schule ist er nur berechtigt, in seine Klasse einzutreten, da er jetzt den 8. Standard lernt. Und wenn er versucht, in den 6. Standard einzutreten, wird ihn der Schullehrer NICHT AUTORISIEREN.

18
smiles1

So technisch wie möglich:

Wenn Sie irgendetwas darüber beschreiben würden, wer Sie sind und was Sie sehen oder tun durften, wäre jedes dieser Dinge etwas, von dem Sie "behaupteten", dass es wahr ist, und daher wäre jedes "Ding" auf dieser Liste ein "wahres". Anspruch".

Jedes Mal, wenn Sie jemandem etwas über sich erzählen oder "behaupten", dass Sie etwas sehen oder tun dürfen, geben Sie ihm Ihre Liste der Forderungen. Sie werden bei einer Behörde überprüfen, ob Ihre Behauptungen wahr sind, und wenn dies der Fall ist, werden sie alles auf dieser Liste der Behauptungen glauben. Wenn Sie also behaupten, dass Sie Brad Pitt sind, heißt es in Ihrer Anspruchsliste, dass Sie Brad Pitt sind, und es wurde von der Behörde bestätigt, dass alle Ihre Ansprüche wahr sind - dann glauben sie, dass Sie Brad Pitt sind alles andere in dieser Liste.

Behauptung: was Sie behaupten, wahr zu sein. Dies kann eine Information oder eine Beschreibung einer Berechtigung sein, die Sie für sich beanspruchen. Das System, dem Sie Ihre Forderungen vorlegen, muss nur verstehen, was die Forderung ist/bedeutet, und muss auch in der Lage sein, sich bei der Behörde zu verifizieren.

Autorität: Das System, das Ihre Forderungsliste zusammenstellt und signiert und im Grunde sagt: "Meiner Autorität nach ist alles in dieser Liste wahr." Solange das System, das die Ansprüche liest, bei der Behörde verifizieren kann, dass die Signatur korrekt ist, wird alles in der Liste der Ansprüche als authentisch und wahr angesehen.

Nennen wir es auch nicht "anspruchsbasierte Authentifizierung", sondern "anspruchsbasierte Identität".

Etwas technischer:

In diesem Prozess authentifizieren Sie sich verwenden Sie eine Art Mechanismus (Benutzername/Passwort, Client-Geheimnis, Zertifikat usw.), der Ihnen ein Zeichen gibt, das beweist, dass Sie der sind, für den Sie sich ausgeben . Anschließend tauschen Sie dieses Zugriffstoken gegen ein ID-Token. In diesem Prozess wird Ihre Identität verwendet, um eine Liste der Ansprüche zu finden und zu erstellen, diese zu signieren und Ihnen dann ein ID-Token mit allen Ihren Ansprüchen zurückzugeben.

Im Schritt Authorisierung überprüft die Ressource je nach Implementierung Ihr ID-Token (Ansprüche) und anschließend, ob Sie über die erforderlichen Ansprüche für den Zugriff auf diese Ressource verfügen.

Wenn in der Ressource "CastleBlack/CommandersTower" beispielsweise angegeben ist, dass Sie Zugriff auf Castle Black haben und Lord Commander sein müssen, wird anhand Ihrer Anspruchsliste geprüft, ob diese beiden Punkte zutreffen.

Wie Sie sehen, können "Ansprüche" alles sein. Es kann eine Rolle sein, es kann eine Tatsache sein, es kann eine Flagge sein. Es ist nur eine Liste von Schlüssel-Wert-Paaren und der "Wert" ist optional. Manchmal geht es nur darum zu sehen, ob der Anspruch besteht:

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;"}
]

Wenn sich Jon also anmeldet und versucht, auf die oben beschriebene Ressource zuzugreifen, wird ihm dies verweigert, da er zwar derjenige ist, von dem er sagt, dass er ihn besitzt, aber weder Lord Commander noch expliziten Zugriff auf ihn hat der Turm des Oberbefehlshabers und kann daher nicht implizit in den Turm des Oberbefehlshabers eintreten.

Genauer gesagt, "CastleBlack" wäre wahrscheinlich ein [größerer] Bereich, und jeder Bereich wäre eine spezifische Erlaubnis, aber das ist eine andere Diskussion.

Die Art und Weise, in der jede Anwendung mit dem Zugriff umgeht, ist unterschiedlich, es werden jedoch Ansprüche verwendet, um dies zu tun.

9
Sinaesthetic

In Anbetracht dessen, dass ein Anspruch ein Attribut ist, das etwas über den Benutzer aussagt (Name, Alter, ethnische Zugehörigkeit usw.), arbeiten Sie gegen einen Sicherheitstoken-Service, um diese Ansprüche zu validieren und sie neben der Authentifizierung auch für die Autorisierung zu verwenden.

Der folgende Auszug stammt aus Wikipedia ( http://en.wikipedia.org/wiki/Claims-based_identity ) und ist die beste Analogie, die ich bisher gefunden habe

"Um das Konzept des Sicherheits-Token-Service besser zu verstehen, betrachten Sie die Analogie eines Nachtclubs mit einem Portier. Der Portier möchte verhindern, dass minderjährige Gäste Zutritt erhalten. Um dies zu erleichtern, fordert er einen Benutzer auf, einen Führerschein und eine Krankenversicherungskarte vorzulegen oder ein anderer Ausweis (der Token), der von einem vertrauenswürdigen Dritten (dem Sicherheits-Token-Dienst) wie der Landes- oder Landes-Kfz-Zulassungsbehörde, dem Gesundheitsamt oder der Versicherungsgesellschaft ausgestellt wurde Es muss nur der ausstellenden Behörde vertrauen (und natürlich die Echtheit des vorgelegten Tokens selbst beurteilen.) Mit diesen beiden Schritten hat der Nachtclub den Benutzer hinsichtlich der Behauptung, von der er oder sie ist, erfolgreich authentifiziert gesetzliches Trinkalter.

In Fortsetzung der Analogie kann der Nachtclub ein Mitgliedersystem haben, und bestimmte Mitglieder können regulär oder VIP sein. Der Portier könnte nach einem anderen Token fragen, der Mitgliedskarte, die einen weiteren Anspruch erheben könnte. dass das Mitglied ein VIP ist. In diesem Fall wäre die vertrauenswürdige ausstellende Behörde des Tokens wahrscheinlich der Club selbst. Wenn die Mitgliedskarte den Anspruch erhebt, dass der Benutzer ein VIP ist, kann der Club dementsprechend reagieren und den authentifizierten VIP= Mitgliedschaftsanspruch in eine Erlaubnis umwandeln, dass der Benutzer im Exklusivmodus sitzen darf Lounge-Bereich und kostenlose Getränke serviert werden. "

5
Paleta