Frage

Ich programmiere seit einiger Zeit mit einer Schadensbasierten Authentifizierung mit Windows Identity Foundation.

Es scheint mir das in Windows Identity Foundation, Sobald ein Benutzer angemeldet ist, sind die Behauptungen im Grunde genommen Informationen, die den Benutzer beschreiben.

Mit der alten rollenbasierten Authentifizierung könnte ich sagen, dass ein Benutzer ein Mitglied einer bestimmten Gruppe ist oder nicht, sondern mit Ansprüchenbasis-Authentifizierung jetzt Informationszeichenfolgen haben, die einen Benutzer beschreiben. "Dieser Benutzer ist weiblich". Dieser Benutzer wurde am "6. Juli 1975" geboren. "Dieser Benutzer hat einen USB -Schlüssel angemeldet".

Ist es die Essenz der anspruchsbasierten Authentifizierung, dass ich Informationen über den Benutzer habe, der der Anwendung vom Framework verabreicht wird?

War es hilfreich?

Lösung

Ansprüche sind Attribute zum Thema, die mit Ihrer Anwendung interagieren, und können sein irgendetwas. Alle Beispiele, die Sie angegeben haben, sind im Wesentlichen korrekt.

Aus diesem Grund können Sie Ansprüche für mehr als nur die Vorschriften für Autorisierungsregeln verwenden. Sie könnten beispielsweise auch Benutzerprofilinformationen darstellen. Und eine Rolle -Mitgliedschaft ist nur ein weiteres Attribut (das hauptsächlich für die Zugriffskontrolle verwendet wird).

Paarbeobachtungen:

  • Ein subtiler, aber sehr wichtiger Unterschied besteht darin, dass Ansprüche von einer vertrauenswürdigen, maßgeblichen Einheit (STS) ausgestellt werden. Der Ursprung einer Behauptung ist genauso wichtig wie die Behauptung selbst. Um ein einfaches Beispiel zu verwenden: Wenn ich Ihnen ein von Microsoft STS ausgestelltem Token mit einem Anspruch "title = programmmanager" sende, hätten Sie wahrscheinlich eine hohe Sicherheit, dass ich ein PM für Microsoft arbeite. Mit anderen Worten, es besteht eine Korrelation zwischen der Treue der Attribute, die Sie erhalten, und dem Vertrauen, den Sie dem Emittenten aufstellen.
  • In WIF -Angaben werden Werte als "Zeichenfolgen" (wie in einem .NET -Typ) implementiert, aber sie könnten ein (serialisierbares) Objekt sein. Für einfache Dinge wie Rollen, Gruppen, Namen usw. verwenden Sie nur den Wert. Für andere komplexere Typen benötigen Sie eine Art Deserialisierung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top