Allgemein
Das Session-Handling zwischen dem Client (Browser oder externes System) und dem ICA-Server wird über Cookies kontrolliert. Auf Serverseite wird das Cookie mit einer Session assoziert. Diese wiederum hat einen Verweis auf die aktuell gültige Liste von Sessions, die von der Anwendung kontrolliert werden. Das Web-Session-Cookie hat dabei keinen Zusammenhang zum Application-Session-Token.
Die Zuordnung einer gültigen Session erfolgt nach erfolgreicher Authentisierung über die Aktivierung der Session.
Authentisierung - NamiStartup
Im Falle der API-Benutzung sieht das wie folgt aus (siehe Klassen: NamiStartup und CurlWrapper):
- Zuerst werden die Anmeldedaten "geposted" (Client => Server) (1)
- Falls OK schickt der Server eine Relocation (HTTP-Code: 302) zum Client.
- Der Client folgt der Relocation (Client=> Server; .../auth/loginActivatin/e2a3454f8390c7267d061d918b11d6d7/API
- Der Server aktiviert die Session und erzeugt die Web-Session (
JSESSIONID=3sqFOEabGH+Y-3mWFZtrRta2.undefined; Path=/ica)
Die loginActivation ist nur sehr kurz verwendbar. Eine wiederholte Aktivierung ist nicht möglich.
JSESSIONID=3sqFOEabGH+Y-3mWFZtrRta2.undefined; Path=/ica
Session Startup
Der Session-Startup ist der einzige API-Request, der an die gleiche URL gesendet wird, wir der normale Login-Prozess verwendet.
Feld | Wert | Inhalt |
---|---|---|
Login | API | Fest, immer gleich. |
username | Benutzername | |
password | Passwort des Benutzers |
Die Werte werden per POST-Methode an den Server geschickt, das Schema sollte https sein.
Der Server antwortet in jedem Fall mit einer ApiDto-Response.
Falls der statusCode == 0 ist, ist alles in Ordnung.
StatusCode | Bedeutung |
---|---|
0 | OK |
3000 | Api Session ungültig, es muss einen neue Authentisierung durchgeführt werden |
3001 | Bei der Authentisierung ist ein Fehler aufgetreten. |
3002 | Ein Ausnahmefehler ist aufgetreten. |
3099 | Unbekannter Fehler |
Nach erfolgreicher Authentisierung kann der Client unter Benutzung des übermittelten apiSessionTokens verwenden. Achtung: Bei längerer Nicht-Benutzung kann die Session auslaufen. Eine erneute Authentisierung ist dann erforderlich.