|
Anwendungslogin mit der IP-Adresse ... ohne Login-Dialog
Meistens erfolgt der Login in eine Application Express-Anwendung mit
Benutzernamen und Passwort. Möchte man seinen Anwendern den Login-Dialog
ersparen, bleibt die Möglichkeit, ganz darauf zu verzichten oder mit
einem Single-Sign-On Server zu arbeiten. Verzichtet man ganz auf einen
Login, so wird jeder Nutzer als APEX_PUBLIC_USER
angemeldet, was auch nicht immer das gewünschte Verhalten ist.
Es ist nicht sehr bekannt, dass man das Login-Verhalten einer Application
Express-Anwendung sich sehr stark variieren lässt. Als Beispiel wird heute vorgestellt
wie man die Nutzer einer Anwendung automatisch mit Ihrer IP-Adresse
anmelden kann. Dies ist zugegebenermaßen nicht besonders sicher, da sich eine IP-Adresse
leicht fälschen lässt, aber diese Konfiguration kann als Basis für ausgefallenere
Login-Methoden (Single-Sign-On) dienen.
Zunächst ein paar Grundlagen. Die IP-Adresse des Rechners, auf dem der Anwender
arbeitet, wird dem Webserver durch die sog.
CGI-Umgebung übermittelt. Und die
lässt sich auch aus Application Express heraus auslesen. Setzen Sie im
SQL Workshop folgende Abfrage ab:
Sie sollten dann Ihre IP-Adresse als Ergebnis sehen. Und dies ist die Basis
für das folgende Beispiel. Nehmen Sie eine beliebige Anwendung oder erstellen
Sie sich für das Beispiel eine neue. Navigieren Sie zu den
Gemeinsamen Komponenten,
dort zu den Authentifizierungsschemas und
erstellen Sie ein neues Schema als Kopie
des vorhandenen Schemas Application Express.
Nennen Sie es IP-Adresse (Abbildung 1).
Abbildung 1: Authentifizierungsschema kopieren
Machen Sie anschließend das neue Schema IP-Adresse zum
aktuellen Authentifizierungsschema.
Abbildung 2: Neues Authentifizierungsschema IP-Adresse zuweisen
Navigieren Sie nun zu den Einstellungen des neuen Authentifizierungsschemas
IP-Adresse und dort zur Authentifizierungsfunktion.
Der hier stehende Eintrag
legt fest, wie Benutzername und Passwort überprüft werden sollen. In diesem
Beispiel soll erreicht werden, dass man gar kein Passwort mehr eingeben muss.
Entfernen Sie daher den Eintrag -BUILTIN-,
so dass das Feld leer ist. Speichern
Sie die Änderungen dann ab.
Als nächstes geht es an die Login-Seite 101.
Wenn ein Anwender eine Seite in der Anwendung erstmals aufruft, also noch keine
gültige Application
Express-Sitzung aufgebaut ist, wird er automatisch auf diese Seite
verzeigt, damit er sich anmelden kann. Nach der Eingabe von Benutzername
und Passwort ist der Seitenprozeß
Login für die Durchführung der Anmeldung
verantwortlich. Er enthält normalerweise folgenden PL/SQL-Code:
wwv_flow_custom_auth_std.login ruft im Hintergrund
die im Authentifizierungsschema
hinterlegte Authenfizierungsfunktion
auf - diese liefert bei korrekten Anmeldedaten true zurück,
so dass eine Sitzung für diesen Nutzer aufgebaut werden kann. Ändern Sie
den PL/SQL-Code nun wie folgt:
Nun wird die IP-Adresse des Clients als Benutzername und
NULL als
Passwort übergeben. Die Anmeldedaten werden nicht geprüft, da Sie
zu Beginn die Funktion -BUILIN- aus dem
Authentifizierungsschema entfernt haben. Man kann nun also in die
Anmeldemaske eingeben, was man will: Angemeldet wird man stets mit
der IP-Adresse.
Nun muss nur noch dafür gesorgt werden, dass die Anmeldeseite
nicht mehr angezeigt wird. Erzeugen Sie dazu auf der Seite 101
eine neue Verzweigung - diese
soll noch vor dem Aufbau der Seite 101 aktiv werden, also
Beim Laden: Vor Header.
Abbildung 3: Neue Verzweigung erzeugen: Beim Laden, Vor Header
Die Seite verzweigt auf sich selbst, Ziel ist also die Seite
101. Allerdings
soll der Text BRANCH_TO_PAGE_ACCEPT als
Request
mitgegeben werden.
Auch für die Eingabeelemente P101_USERNAME und
P101_PASSWORT
werden Werte mitgegeben: X und
Y (Sie können hier allerdings beliebige Werte
eintragen).
Abbildung 4: Verzweigungsziel ist die Seite 101, allerdings mit zusätzlichen Informationen
Damit nun keine Endlosschleife erzeugt wird
(wir verzweigen von Seite 101 nach Seite 101),
muss zwingend noch eine Bedingung hinterlegt werden:
Die Verzweigung darf nur erfolgen, wenn der Text
BRANCH_TO_PAGE_ACCEPT
nicht im Request enthalten ist.
Abbildung 5: Bedingung für die Verzweigung
Wenn Sie nun alles gespeichert haben, sind Sie fertig. Starten Sie nun die Anwendung.
Sie erhalten keine Login-Maske mehr, sondern werden
direkt zur Anwendungsseite durchgeleitet - Ihr Username ist nun Ihre IP-Adresse
(Abbildung 6).
Abbildung 6: Das Ergebnis: Der Nutzer ist mit seiner IP-Adresse angemeldet
Die IP-Adresse befindet sich nun, wie vorher der Nutzername in der
Umgebungsvariable APP_USER. Damit lassen
sich in gewohnter Manier
Autorisierungsschemas oder
Bedinungen aufbauen, so dass unterschiedliche
Clients unterschiedliche Anwendungsteile sehen können.
Zurück zur Community-Seite
|