Home
Help
Search
Login
Register
OPNsense Forum
»
International Forums
»
German - Deutsch
»
API: Erzeugung von Voucher mittels API
« previous
next »
Print
Pages: [
1
]
2
Author
Topic: API: Erzeugung von Voucher mittels API (Read 9462 times)
Webserver01
Newbie
Posts: 10
Karma: 0
API: Erzeugung von Voucher mittels API
«
on:
July 18, 2017, 05:56:16 pm »
Hallo liebe Forum-User,
Ich habe ein kleines Problem: Ich möchte, dass die Voucher mittels API-Aufruf erzeugt werden und anschließend im Webbrowser angezeigt werden. Das Projekt
https://github.com/fabianfrz/OPNsense-client-library-sample
habe ich schon ausprobiert leider ist das nichts für mich.
Mich interessiert im Grunde nur die API-URL, um Voucher zu erstellen, diese habe ich nicht gefunden.
Danke im Voraus!
Logged
franco
Administrator
Hero Member
Posts: 17661
Karma: 1611
Re: API: Erzeugung von Voucher mittels API
«
Reply #1 on:
July 18, 2017, 06:33:55 pm »
Hallöchen,
Die API-Aufrufe im Detail findest du hier:
https://github.com/opnsense/core/blob/master/src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
Haupt-URL ist "/api/captiveportal/voucher", der Rest ergibt sich aus dem JS-Code.
Eine detaillierte Dokumentation wird gelegentlich angefragt und wäre gut zu haben, aber ist aktuell keine Priorität für das Projekt, deswegen nur der Hinweis auf das JS.
Grüsse
Franco
Logged
Webserver01
Newbie
Posts: 10
Karma: 0
Re: API: Erzeugung von Voucher mittels API
«
Reply #2 on:
July 18, 2017, 10:38:14 pm »
Danke für die schnelle Antwort.
Bloß wie geht das mit dem sendData in der API-URL. Also wie muss da die URL aussehen.
Danke im voraus!
Logged
Oxygen61
Sr. Member
Posts: 350
Karma: 32
Der Weg zum Erfolg hat keine Abkürzung - (Tanaka)
Re: API: Erzeugung von Voucher mittels API
«
Reply #3 on:
July 18, 2017, 10:59:05 pm »
Hallo Webserver01,
ich muss da etwas schmunzeln weil ich vor einiger Zeit vor Haargenau dem selben Problem stand.
"Ich will Voucher über API erzeugen und die Ausgabe dann per PDF oder HTML regeln. Hmmm wie mach ich das bloß?
"
Da ich den ganzen Leidensweg mit fabian schon durch habe und er mich da erfolgreich "durchgeprügelt" hatte musst du eigentlich nur all das umsetzen was hier schon durchgekaut wurde:
https://forum.opnsense.org/index.php?topic=3810.0
Für meinen Betrieb hatte ich eine Anleitung dazu geschrieben.
Vielleicht hilft dir die und du kannst damit was anfangen:
____________________________________
Generierung von Voucher Codes über ein JRuby Tool
Vouchercodes können auch "extern" durch das Nutzen einer API Schnittstelle generiert und abgespeichert werden.
Dabei ist keine Veränderung des Firewall Quellcodes notwendig.
Der Zugriff auf die API Schnittstelle wird dabei gesichert über einen autorisierten API-Key durchgeführt.
Voraussetzung ist eine installierte JRuby Entwicklungsumgebung.
Hierfür den Anweisungen und Installationsanleitungen auf der Webseite folgen:
http://jruby.org/
Die Ersteinrichtung des client.rb Scripts ist etwas schwerfällig,
da es ohne die Ausgabe von Fehlermeldungen geschrieben wurde.
ACHTUNG:
Der Voucherserver muss bereits angelegt worden sein in OPNsense.
Eine vorbereitete Version zum Verwenden kann hier heruntergeladen werden:
Siehe Anhang:
<Create-Voucher-Tool.rar>
Konfiguration:
Die Konfigurationseinstellung muss stets innerhalb des client.rb Scripts angepasst werden, da sie sonst nicht geladen wird!
Dafür unter "OPNsense-client-library-sample-master" > Rechtsklick auf "client.rb" und mit Notepad++ öffnen.
Zeile 11 innerhalb des Scripts ist die Zeile in der die Einstellungen festgelegt werden. Wichtig ist, dass die Schreibweise der Ordnerstruktur
beibehalten werden sollte wenn man leicht zum Ziel möchte.
Nachgetragen werden muss nun nur noch die "
apikey.txt
" Datei
im Ordner "
Apikey
" und das öffentliche Zertifikat der internen OPNsense Certificate Authority im .PEM Format.
Die Datei apikey.txt erzeugen:
- Navigieren zu System > Access > Users.
- Den Nutzer editieren, der über die API Schnittstelle kommunizieren darf.
- Unter API keys auf das "+" Symbol klicken und die "apikey.txt" Datei
im "Create-Voucher-Tool/Apikey" Ordner ablegen.
Die Datei Publicinternalca.crt erzeugen:
- Internal-CA für die Web-GUI der OPNsense erzeugen und für diese ein Zertifikat ausstellen
- Weg-GUI der OPNsense öffnen und schauen ob das von der "Internal-CA"
ausgeschriebene Zertifikat verwenden wird.
(Falls nicht in den OPNsense Einstellungen (Settings) abändern.)
- Beim Internet Explorer oben links auf das Schloss-Symbol klicken > Details >
View Certificate > Zertifizierungspfad > Internal-CA öffnen und in Datei kopieren. >
Public-Key/Öffentliches Zertifikat "DER-codiert-binär (.CER)" exportieren.
- Mithilfe von Unix (OpenSSL) oder der Webseite
https://www.sslshopper.com/ssl-converter.html
dieses Zertifikat auf ein .PEM umwandeln und als .crt abspeichern.
- Die abgespeicherte .crt Datei im Ordner Create-Voucher-Tool/Zertifikate ablegen.
---> Client.rb Konfiguration überprüfen und falls nötig abändern.
Wenn die Konfiguration richtig erkannt und verarbeitet werden konnte öffnet sich ein Fenster mit den Reiten "Voucher" und "Einstellungen".
Kann der Reiter "Voucher"
nicht gestartet
werden sind die Konfigurationseinstellungen
falsch
und müssen überprüft werden.
Das Fenster sollte wie folgt aussehen:
Siehe Anhang:
<JRuby Voucher Bild.PNG>
Vorteile:
- Alternative Programm Templates und Designvorlagen nutzbar (PDF, HTML usw.)
- Sehr Leichtes Handling
- Nicht länger Notwendig für das Erstellen eines Vouchers die Webseite zu öffnen
- Firewallquellcode muss nicht verändert werden
- Zugriff und Kommunikation ist durch den API Key gesichert
- Nachteile könnten von "Bastlern" und JRuby Programmierern leicht ausgehoben werden
- Die Library beschränkt sich nicht nur auf Vouchers und könnte weitere Aspekte abdecken (Monitoring u.ä.)
Nachteile:
- Vouchers sind ungültig, falls die generierte Voucher Vorlage nicht abgespeichert wurde
- Keine Möglichkeit bereits erstellte Voucher User-Kennungen erneut anzeigen zu lassen
- Keine variable Auswahl der Gültigkeitsdauer generierter Vouchers
- Übersicht über erstellte Vouchers und deren Gruppen erfolgt immer noch über die Webseite
____________________________________
Ich hoffe das hilft dir weiter!
Schöne Grüße
Oxy
«
Last Edit: July 18, 2017, 11:05:44 pm by Oxygen61
»
Logged
Webserver01
Newbie
Posts: 10
Karma: 0
Re: API: Erzeugung von Voucher mittels API
«
Reply #4 on:
July 19, 2017, 12:00:51 am »
Ersteinmal Danke für Eure fantastische Hilfe,
ich hab’s nun noch einmal anders probiert:
http://192.168.0.1/api/captiveportal/voucher/generatevouchers?data={%20%27count%27:1,%20%27validity%27:400,%20%27vouchergroup%27:%20201707%20}
Doch leider kommt die Fehlermeldung:
{"errorMessage":"Error at /usr/local/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/VoucherController.php:132 - Missing argument 1 for OPNsense\\CaptivePortal\\Api\\VoucherController::generateVouchersAction() (errno=2)"}
In dieser Datei wird die Funktion: public function generateVouchersAction($provider) beschrieben. Die wahrscheinlich für die Anzeige der Fehlermeldungen zuständig ist. Wo liegt in meinen API-Request der Fehler?
Danke schonmal im Voraus!
Logged
Webserver01
Newbie
Posts: 10
Karma: 0
Re: API: Erzeugung von Voucher mittels API
«
Reply #5 on:
July 19, 2017, 09:48:11 am »
Der Fehler war das ich den Voucherprovider in der URL vergessen habe.
http://192.168.0.1/api/captiveportal/voucher/generateVouchers/voucher?count=1&voucher-validity=400&vouchergroup=2017