Diese sind hierarchisch in der Art, wie Gattung, Art und Individuum hierarchisch sind.
- Betreff - In einem Sicherheitskontext ist ein Betreff eine Entität, die den Zugriff auf ein Objekt anfordert . Dies sind allgemeine Begriffe, die verwendet werden, um das Objekt zu bezeichnen, das den Zugriff anfordert, und das Objekt, gegen das die Anforderung gestellt wird. Wenn Sie sich bei einer Anwendung anmelden, sind Sie der Betreff und die Anwendung ist das Objekt. Wenn jemand an Ihre Tür klopft, ist der Besucher das Subjekt, das den Zugang anfordert, und Ihr Zuhause ist das Objekt, von dem der Zugang angefordert wird.
- Prinzipal - Eine Teilmenge des Betreffs , die durch ein Konto, eine Rolle oder eine andere eindeutige Kennung dargestellt wird. Wenn wir die Ebene der Implementierungsdetails erreichen, sind Principals die eindeutigen Schlüssel, die wir in Zugriffssteuerungslisten verwenden. Sie können menschliche Benutzer, Automatisierung, Anwendungen, Verbindungen usw. darstellen.
- Benutzer - Eine Teilmenge des Prinzipals, die sich normalerweise auf einen menschlichen Bediener bezieht. Die Unterscheidung verwischt im Laufe der Zeit, da die Wörter "Benutzer" oder "Benutzer-ID" üblicherweise mit "Konto" ausgetauscht werden. Wenn Sie jedoch zwischen der breiten Klasse von Prinzipien , die Prinzipien sind, und der Teilmenge dieser Dinge, die interaktive Operatoren sind, die Transaktionen auf nicht deterministische Weise steuern, unterscheiden müssen, ist "Benutzer" das richtige Wort.
Subjekt / Objekt erbt von denselben Begriffen wie in der Grammatik. In einem Satz ist das Subjekt der Schauspieler und das Objekt das Ding, auf das gehandelt wird. In diesem Sinne gibt es die Verwendung schon seit der Erfindung der Computer. In einem Sicherheitskontext ist ein Betreff alles, was eine Anfrage stellen kann. Wie oben erwähnt, muss dies nicht auf die IT-Sicherheit beschränkt sein, und dies ist eine sehr breite Klassifizierung. Das Interessante ist, dass Subjekt Objekt impliziert. Ohne Objekt gibt es kein Subjekt.
Prinzipien sind das, worauf sich die Themen konzentrieren. Wenn Sie Ihre Kreditkarte vorlegen, sind Sie der Betreff und die Kontonummer ist der Auftraggeber. In anderen Kontexten ist Ihre Benutzer-ID oder Ihre vom Staat ausgestellte Identifikation Ihr Auftraggeber. Aber Prinzipien können mit vielen Arten von Themen in Verbindung gebracht werden, die keine Menschen sind. Wenn Anwendungen Anforderungen für Funktionen auf Systemebene stellen, kann der Principal der Unterzeichner eines signierten ausführbaren Codemoduls sein, aber selbst in diesem Fall ist der Benutzer, der die Anforderung steuert, immer noch der Betreff.
Der Benutzer ist spezifischer als das Thema oder der Auftraggeber, da er sich normalerweise auf einen interaktiven Operator bezieht. Deshalb haben wir eine grafische Benutzeroberfläche und keine grafische Hauptoberfläche. Ein Benutzer ist eine Instanz eines Betreffs , die in einen Principal aufgelöst wird . Ein einzelner Benutzer kann in eine beliebige Anzahl von Principals aufgelöst werden, es wird jedoch erwartet, dass jeder Principal in einen einzelnen Benutzer aufgelöst wird (vorausgesetzt, die Benutzer beachten die Anforderung, keine IDs gemeinsam zu nutzen). In dem obigen Beispiel ist der Unterzeichner eines ausführbaren Code - Modul definitiv nicht der Benutzer, aber es ist ein gültiges Haupt. Der interaktive Operator, der versucht, das Modul zu laden, ist der Benutzer.
Wie in den Kommentaren erwähnt, stimmen selbst die maßgeblichen Quellen diesen Bedingungen nicht zu. Ich habe NIST, SANS, IEEE, MITRE und verschiedene "quasi-maßgebliche" Quellen wie Leitfäden für Sicherheitsprüfungen durchsucht, während ich diese Antwort vorbereitet habe. Keine einzige Quelle, die ich gefunden habe und die zumindest quasi maßgeblich war, deckte alle drei Begriffe ab und alle unterschieden sich signifikant in ihrer Verwendung. Dies ist meine Auffassung, wie die Begriffe verwendet werden sollten , aber aus praktischer Sicht sind die Definitionen, wenn Sie mitten in der Nacht über ein Handbuch nachdenken, in der Regel so, wie es der Anbieter oder Autor sagt. Hoffentlich bieten die Antworten hier jedoch genügend Einblicke, um durch die Gewässer zu navigieren und Sicherheitsdokumente unter Verwendung dieser Begriffe zu analysieren.
John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER
John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
Schauen Sie sich meine Authentifizierungskonzeptkarte an :
quelle
Ich denke, die Terminologie stammt von JAAS .
quelle
Betreff ist die Entität, die einen Dienst anfordert. Es kann ein Benutzer oder ein Prozess sein. Wahrscheinlich wurde deshalb der Name Betreff anstelle des Benutzers gewählt.
Wenn ein Betreff versucht, auf einen Dienst zuzugreifen, muss der Betreff zuerst authentifiziert werden. Die erfolgreiche Authentifizierung endet mit dem Laden der Sicherheitsprinzipale für diesen Betreff. In einem rollenbasierten Zugriffskontrollsystem hat ein authentifizierter (angemeldeter) Benutzer normalerweise zwei Prinzipien - userId und roleId. In solchen Systemen werden die Berechtigungen (dh wer kann auf was zugreifen) sowohl für Rollen als auch für Benutzer angegeben. Während der Autorisierung (dh der Überprüfung, ob der angeforderte Dienst zulässig sein soll) überprüft das Sicherheitssystem die Zugänglichkeit für beide Principals.
Aus Sicht der Autorisierung sind Principals daher die tatsächlichen Entitäten, für die der Zugriff zulässig oder nicht zulässig ist. Der Betreff ist nur ein Benutzer / Thread / Prozess, der einige Prinzipien enthält.
quelle
Wie T.Rob erklärte, ist Subject eine Entität, die den Zugriff auf ein Objekt anfordert. Ab diesem Punkt habe ich einen Kommentar zu javax.security.auth.Subject-Code gefunden, den ich als SEHR nützlich und leicht verständlich empfunden habe:
"Subjekte können möglicherweise mehrere Identitäten haben. Jede Identität wird als Prinzipal innerhalb des Subjekts dargestellt. Prinzipien binden einfach Namen an ein Subjekt. Beispielsweise kann ein Subjekt, das zufällig eine Person ist, Alice, zwei Prinzipien haben: eines, das bindet." Alice Bar ", der Name auf ihrem Führerschein, für das Fach, und ein anderer, der" 999-99-9999 ", die Nummer auf ihrem Studentenausweis, für das Fach bindet. Beide Prinzipien beziehen sich auf dasselbe Fach, obwohl beide hat einen anderen Namen. "
Ich hoffe es hilft.
quelle
Dies ist der Link für die folgende Erläuterung aus der Oracle JAVA SE-Dokumentation.
quelle
Laut rahulmohan , denke ich, bevor die Authentifizierung subjet ist, nachdem die Authentifizierung pricipal ist, kann ein subjet im Unterschied dazu viele pricipal haben
quelle