Kurzübersicht über die Sicherheit
Zum Verständnis des Basisworkflows der Sicherheit im Liberty-Profil werden einige gängige Sicherheitsbegriffe anhand eines Beispiels ausführlich erläutert.
Schlüsselbegriffe aus der Sicherheit
- Authentifizierung
- Die Authentifizierung bestätigt die Identität des Benutzers. Die gängigste Form der Authentifizierung ist die Authentifizierung mit einem Benutzernamen und einem Kennwort, z. B. durch Basisauthentifizierung oder formularbasierte Anmeldung für Webanwendungen. Nach der Authentifizierung eines Benutzers wird die Quelle einer Anforderung zur Laufzeit als Subject-Objekt dargestellt.
- Berechtigung
- Die Berechtigung legt fest, ob ein Benutzer Zugriff auf eine bestimmte Rolle innerhalb des Systems hat. Das Java™-EE-Modell verwendet Subjekte, Rollen und Rollenzuordnungen, um zu bestimmen, was zulässig ist und was nicht.
- Rolle
- Eine Rolle wird in der Java-EE-Anwendung definiert. Einige Rollen werden vom System vordefiniert (z. B. die Administratorrolle). Andere Rollen werden vom Anwendungsentwickler definiert. In Java EE wird Subjekten der Zugriff auf Ressourcen gewöhnlich basierend auf den Rollen, die sie in der Anwendung haben bzw. nicht haben, erteilt bzw. verweigert.
- Subjekt
- Ein Subjekt ist sowohl ein allgemeiner Begriff als auch ein Java-Objekt: javax.security.auth.Subject. Im Allgemeinen bezeichnet der Begriff "Subjekt" aktive Entitäten im System, wie z. B. Benutzer auf dem System, oder sogar den Systemprozess selbst.
Beispiel für Sicherheitsworkflow
Das folgende Beispiel veranschaulicht, wie die Sicherheit angewendet wird, wenn ein Benutzer den Zugriff auf eine Ressource anfordert. Ein Benutzer Bob möchte beispielsweise auf ein Servlet mit dem Namen myWebApp zugreifen. Sehen Sie sich die Codebeispiele im Abschnitt Einführung in die Sicherheit im Liberty-Profil an.
Damit Bob auf das Servlet myWebApp zugreifen kann, müssen
die folgenden Bedingungen erfüllt sein:
Wenn sich Bob nicht am System anmelden kann
oder wenn Bob nicht die Rolle testing hat,
wird der Zugriff auf das Servlet myWebApp verweigert.- Bob muss in der Lage sein, sich am System anzumelden, weil das Servlet geschützt ist.
- Bob muss die Rolle testing haben, weil die Verwendung des Servlets durch ein Element auth-constraint im Implementierungsdeskriptor eingeschränkt wird.
Ein anderer Benutzer mit dem Namen Alice kann sich am System anmelden, weil Alice ein gültiger Benutzer ist. Alice hat aber nicht die Rolle testing. Es wird ein HTTP-Fehler 403 (Zugriff verweigert/nicht zulässig) angezeigt, wenn sich Alice anmeldet.