|
|
Zeile 67: |
Zeile 67: |
|
| |
|
| '''[[iTAN]]''' | | '''[[iTAN]]''' |
|
| |
| == PHP-Rest-Server ==
| |
|
| |
| Die erste Alphaversion des Rest-Servers ist jetzt online, und arbeitet super mit abtest zusammen.
| |
| abtest läuft im Daemon-Modus im Hintergrund, und wird sozusagen vom Restserver ferngesteuert.
| |
| Das skript erzeugt die Job-Files und prüft auf das Vorhandensein der Ergebnissdaten, und gibt diese aus.
| |
| Die ersten Dauertests für den Daemon stehen ebenfalls aus.
| |
|
| |
| Anfrage auf den server
| |
|
| |
| http://www.orga-mon.de/rest/Funktion/BLZ/KTO/datum
| |
|
| |
| Funktionen:
| |
| ./info/
| |
| ./umsatz/
| |
| ./saldo/
| |
| ./lastschrift/
| |
| ./itan/
| |
|
| |
| === Umsatz (./umsatz/) ===
| |
|
| |
| '''Anfrage:'''
| |
|
| |
| ./UMSATZ/~BLZ~/~KONTO#~/2008-02-28?f=text
| |
|
| |
| '''Antwort:'''
| |
|
| |
|
| |
|
| |
| * Mapping csv<->Aqbanking
| |
|
| |
| // Zuordnungen gefunden
| |
| Buchungsdatum<->date
| |
| Typ<->transactionKey (Beispiel: "NSTO","NMSC","NCHK")
| |
| vonBLZ<->remoteBankCode
| |
| vonKonto<->remoteAccountNumber
| |
| vonName1..2<->remoteName
| |
| ValutaDatum<->valutaDate
| |
| Betrag<->value.value
| |
| Waehrung<->value.currency
| |
| VorgangID<->textKey
| |
| VorgangText<->transactionText
| |
| Primanota<->primanota
| |
| Verwendungszweck1..7<->purpose
| |
|
| |
| === Sammellastschrift (./lastschrift) ===
| |
|
| |
| '''Anfrage 1/2'''
| |
|
| |
| POST ./lastschrift/~BLZ~/~Konto~
| |
|
| |
| mit einem zeitgleichen http-Upload der DTA-Datei (Name spielt keine Rolle)!
| |
|
| |
| '''Antwort:'''
| |
|
| |
| * die Antwort ist, sobald die DTA-Datei fehlt ein kleines Upload-Formular, mit dem man die Anfrage (diesmal mit Datei) wiederholen kann.
| |
| * iTAN: Ist das iTAN Verfahren gewählt, so muss vom Server vor Anzeige der Antwort zunächst die Index-Nummer der iTAN abgefragt werden
| |
| * ansonsten ist die Antwort eine Text der Bank, die Informationen zur TAN-Eingabe enthält:
| |
|
| |
| JobID: 293837
| |
| Nun bitte die 34. TAN eingeben
| |
|
| |
| * Mit Hilfe dieser Meldungen muss man eine zweite RESTful Anfrage formulieren. Diesmal mit JobID und TAN. Dazu hat man ein Zeitfenster von 20 Sekunden.
| |
|
| |
| '''Anfrage 2/2'''
| |
|
| |
| GET ./itan/~JobID~/~TAN~
| |
|
| |
| Nun erfolgt die TAN-Übergabe an die Bank und die tatsächliche Durchführung. War die Ausführung erfolgreich, so erscheint ein einfaches "OK".
| |
|
| |
| === Kontostand (./saldo) ===
| |
|
| |
| === Termin-Überweisung ===
| |
|
| |
| -- noch kein Bedarf --
| |
|
| |
|
| |
|
| |
|
|
| |
|
Version vom 15. Mai 2008, 10:48 Uhr
|
|
|
aqbd ist ein für Linux verfügbares Commando-Zeilen-Tool (und Dämon), das es ermöglicht ...
- ... Umsätze und Salden eines Kontos via AqBanking-HBCI auszulesen. Als Ausgabe erzeugt aqbd CSV-Dateien, die leicht weiterverarbeitet werden können.
- ... Laschriften, die als CSV-Datei vorliegen, via AqBanking-HBCI an die Bank zu übertragen und durchzuführen.
weitere Infos über aqbd ...
- ... basiert 100% auf der Arbeit von Martin Preuss http://www.aquamaniac.de/ und der Bibliothek "AqBanking"
- ... nutzt die neueste Generation des "AqBanking" (Version >=3.3.0)
- ... liegt im C-Quelltext (GPL 3.0 Lizenz) vor
- ... bietet im Zusammenspiel mit Apache2+PHP einen RESTful Webservice an
- ... bietet ein simples Webinterface, das es ermöglich eigene Konto-Daten mit einem Browser weltweit abzurufen
|
Überblick
Projekt
Installation
Bedinung über Kommandozeile
Bedienung im Deamonmode
Bedienung des Restservers
Design
|
Um AqBanking für den OrgaMon nutzbar zu machen wird ein Linux-basierter REST-Webservice implementiert. Dabei dient das Gesamtsystem (Apache2+PHP+index.php+aqbd-Dämon) nur als Wrapper für grundlegende "AqBanking Rev. 3.x" Funktionen. REST hilft uns, auf Kontoumsätze und andere Informationen ganz primitiv über das Web zuzugreifen. Zum Informations-Abruf benötigt man auf der Client-Seite nur einen einfachen Webbrowser (Punkt!). Dadurch ist auch die Integration in andere Prozesse ein Kinderspiel. Ruby on Rails z.B. kann REST-Webservices direkt ansprechen. "AqBanking-REST" bietet dabei folgende Dienste an ...
- ... Umsätze abrufen (./umsatz)
- ... Salden abrufen (./saldo)
- ... Sammel-Lastschriften durchführen (./lastschrift)
- ... OPTIONAL: (Termin-)Überweisungen durchführen (./ueberweisung)
Die Buchführung des OrgaMon kann "externe" Konten via Webserices (vorzugsweise REST) integrieren. Dadurch werden Giro-Konto-Buchungen direkt im OrgaMon sichtbar. Systematischer Aufbau des Server-Dienstes.
- aqbd Download - der aqbanking dämon. Muss notwendigerweise als Dämon programmiert werden da z.B. das Mehrstufige TAN Verfahren mehrere REST-Zyklen benötigt und die Verbindung zur Bank dazwischen nicht unterbrochen werden darf, insbesondere beim iTAN Verfahren. Die Kommunikation mit der Aussenwelt erledigt der Dämon über das Dateisystem. Ein PHP-Script legt Konto-Anfragen in Mini "Job"-Dateien im Verzeichnis /srv/aqbanking ab.
- aqREST Download - der REST Service als PHP Implementierung. Erfordert die mod_rewrite Anpassung im Apache2 (Beschreibung hier REST).
|
Sicherheitsüberlegungen
- Während der Installtionsphase sollte der Webserver nur für den Admin sichbar sein, bis alles funktioniert
- Dann sollten "pin."-Dateien nur "root" sichtbar gemacht werden
- Überlegungen sollten den Rechten der Verzeichnisse ab /srv/aqb gewidmet werden
- Das Wurzelverzeichnis des REST Servers (index.php) sollte passwortgeschützt werden
- Wird der REST Server im Internet sichtbar sollte https:// (SSL-Verschlüsselung) auf das Verzeichnis gelegt werden
- Die PIN eines Kontos wird design-bedingt niemals über das Netz übertragen
- Der (HBCI-Server-)Login-Name wird design-bedingt niemals über das Netz übertragen
- Von aussen - ohne manuellen Eingriff des admin - können keine veränderte Zertifikate akzeptiert werden. Somit ist ausgeschlossen dass die Übernahme des Netzes rund um den aqbd-Host zum Stehlen von PIN / TAN führen kann
Download
iTAN
Links
Aqbanking 3
Alternative Projekte