<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id="kivitendo-documentation" lang="de">
- <title>kivitendo 3.5.1: Installation, Konfiguration,
+ <title>kivitendo 3.5.3: Installation, Konfiguration,
Entwicklung</title>
<chapter id="Aktuelle-Hinweise">
libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\
postgresql-contrib aqbanking-tools poppler-utils libhtml-restrict-perl\
libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\
- libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl
+ libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\
+ libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl
</programlisting>
- <para>Ab Ubuntu Version 18.04 LTS sind alle benötigten Pakete in der Distributions verfügbar.</para>
+ <para>Ab Ubuntu Version 18.04 LTS, bzw. Debian Buster sind alle benötigten Pakete in der Distribution verfügbar.</para>
<para>Für ältere Ubuntu/Debians müßen einige Pakete per CPAN installiert werden.
Das geht bspw. für das benötige Paket HTML::Restrict mit:</para>
url="https://github.com/kivitendo/kivitendo-erp/releases">hier</ulink>
heruntergeladen werden.</para>
- <para>Die kivitendo ERP Installationsdatei
- (<filename>kivitendo-erp-3.4.1.tgz</filename>) wird im
+ <para>Diese aktuelleste kivitendo ERP-Archiv
+ (<filename>kivitendo-erp-*.tgz</filename>) wird dann im
Dokumentenverzeichnis des Webservers (z.B.
<filename>/var/www/html/</filename>,
<filename>/srv/www/htdocs</filename> oder
<filename>/var/www/</filename>) entpackt:</para>
<programlisting>cd /var/www
-tar xvzf kivitendo-erp-3.4.1.tgz</programlisting>
+tar xvzf kivitendo-erp-*.tgz</programlisting>
<para>Wechseln Sie in das entpackte Verzeichnis:</para>
Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):</para>
<itemizedlist>
<listitem>
- <ulink url="https://fedoraproject.org/wiki/PostgreSQL">Fedora (Postgres-Installation unter Fedora)</ulink>
+ <para><ulink url="https://fedoraproject.org/wiki/PostgreSQL">Fedora (Postgres-Installation unter Fedora)</ulink></para>
</listitem>
<listitem>
- <ulink url="https://help.ubuntu.com/lts/serverguide/postgresql.html">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</ulink>
+ <para><ulink url="https://help.ubuntu.com/lts/serverguide/postgresql.html">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</ulink></para>
</listitem>
<listitem>
- <ulink url="https://de.opensuse.org/PostgreSQL">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</ulink>
+ <para><ulink url="https://de.opensuse.org/PostgreSQL">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</ulink></para>
</listitem>
</itemizedlist>
<sect2 id="Zeichensätze-die-Verwendung-von-UTF-8">
</sect3>
</sect2>
+ <sect2>
+ <title>Authentifizierung mittels HTTP Basic Authentication</title>
+
+ <para>
+ Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
+ (siehe <ulink url="https://tools.ietf.org/html/rfc7617">RFC 7617</ulink>). Dazu ist es aber nötig, dass der dabei vom Client
+ mitgeschickte Header <constant>Authorization</constant> vom Webserver an Kivitendo über die Umgebungsvariable
+ <constant>HTTP_AUTHORIZATION</constant> weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die
+ folgende Konfigurationsoption aktiviert werden:
+ </para>
+
+ <programlisting>SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1</programlisting>
+ </sect2>
+
<sect2>
<title>Weitergehende Konfiguration</title>
</sect2>
</sect1>
+ <sect1 id="dev-programmatic-api-calls" xreflabel="Programmatische API-Aufrufe">
+ <title>Programmatische API-Aufrufe</title>
+
+ <sect2 id="dev-programmatic-api-calls.introduction" xreflabel="Einführung in programmatische API-Aufrufe">
+ <title>Einführung</title>
+
+ <para>
+ Es ist möglich, Funktionen in kivitendo programmatisch aus anderen Programmen aufzurufen. Dazu ist nötig, dass
+ Authentifizierungsinformationen in jedem Aufruf mitgegeben werden. Dafür gibt es zwei Methoden: die HTTP-»Basic«-Authentifizierung
+ oder die Übergabe als spziell benannte GET-Parameter. Neben den Authentifizierungsinformationen muss auch der zu verwendende Mandant
+ übergeben werden.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.client_selection" xreflabel="Mandantenauswahl bei programmatischen API-Aufrufen">
+ <title>Wahl des Mandanten</title>
+
+ <para>
+ Der zu verwendende Mandant kann als Parameter <varname>{AUTH}client_id</varname> mit jedem Request mitgeschickt werden. Der Wert
+ muss dabei die Datenbank-ID des Mandanten sein. kivitendo prüft, ob der Account, der über die Authentifizierungsinformationen
+ übergeben wurde, Zugriff auf den angegebenen Mandanten hat.
+ </para>
+
+ <para>
+ Wird in einem Request kein Mandant mitgegeben, so wird derjenige Mandant genommen, wer als Standardmandant markiert wurde. Gibt es
+ keinen solchen, kommt es zu einer Fehlermeldung.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.http_basic_authentication" xreflabel="Programmatische API-Aufrufe mit HTTP-»Basic« authentifizieren">
+ <title>HTTP-»Basic«-Authentifizierung</title>
+
+ <para>
+ Für diese Methode muss jedem Request der bekannte HTTP-Header <constant>Authorization</constant> mitgeschickt werden (siehe <ulink
+ url="https://tools.ietf.org/html/rfc7617">RFC 7617</ulink>). Unterstützt wird ausschließlich die »Basic«-Methode. Loginname und
+ Passwort werden bei dieser Methode durch einen Doppelpunkt getrennt und Base64-encodiert im genannten HTTP-Header übertragen.
+ </para>
+
+ <para>
+ Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei Benutzung über den Webbrowser, ob
+ dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat.
+ </para>
+
+ <para>
+ Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt
+ erfolgen.
+ </para>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.authentication_via_parameters" xreflabel="Programmatische API-Aufrufe mit Parametern authentifizieren">
+ <title>Authentifizierung mit Parametern</title>
+
+ <para>
+ Für diese Methode müssen jedem Request zwei Parameter mitgegeben werden: <varname>{AUTH}login</varname> und
+ <varname>{AUTH}password</varname>. Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei
+ Benutzung über den Webbrowser, ob dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat.
+ </para>
+
+ <para>
+ Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt
+ erfolgen.
+ </para>
+
+ <note>
+ <para>
+ Die Verwendung dieser Methode ist veraltet. Statt dessen sollte die oben erwähnte HTTP-»Basic«-Authentifizierung verwendet werden.
+ </para>
+ </note>
+ </sect2>
+
+ <sect2 id="dev-programmatic-api-calls.examples">
+ <title>Beispiele</title>
+
+ <para>
+ Das folgende Beispiel nutzt das Kommandozeilenprogramm »curl« und ruft die Funktion auf, die eine vorhandene Telefonnummer in den
+ Ansprechpersonen sucht und dazu Informationen zurückliefert. Dabei wird die HTTP-»Basic«-Authentifizierung genutzt.
+ </para>
+
+ <programlisting>$ curl --silent --user 'jdoe:SecretPassword!' \
+ 'https://…/controller.pl?action=PhoneNumber/look_up&number=053147110815'</programlisting>
+ </sect2>
+ </sect1>
+
<sect1 id="db-upgrade-files" xreflabel="Datenbank-Upgradedateien">
<title>SQL-Upgradedateien</title>