Implementieren eines Application Integration Servers: Unterschied zwischen den Versionen
[unmarkierte Version] | [gesichtete Version] |
(→Python) |
(→Python) |
||
Zeile 159: | Zeile 159: | ||
=== Python === | === Python === | ||
− | Die Python-Implementierung eines modularen Application Integration Servers finden Sie [[Media:Application-integration-server.zip|hier]. | + | Die Python-Implementierung eines modularen Application Integration Servers finden Sie [[Media:Application-integration-server.zip|hier]]. |
[[de:Implementieren eines Application Integration Servers]] | [[de:Implementieren eines Application Integration Servers]] | ||
[[en:Implementing_an_Application_Integration_Server]] | [[en:Implementing_an_Application_Integration_Server]] |
Version vom 20. April 2017, 13:39 Uhr
Im Folgenen wird beschrieben, wie man einen eigenen Application Integration Server implementiert um Benutzer aus Quellen zu synchronisieren, welche nicht nativ von MailStore unterstützt werden. Dies kann nahezu eine beliebige Benutzerdatenbank sein, auf welche durch eine Programmier- oder Skriptsprache zugegriffen werden kann, wie z.B. SQL-Server Datenbanken oder einfache Textdateien. Der Verwendung eines Application Integration Servers ist unter Application Integration beschrieben
Ein Application Integration Server kann in einer beliebigen Programmier- oder Skriptsprache geschrieben sein. Er muss entweder einen eigenen HTTP-Server bereitstellen oder über einen existierenden HTTP-Server erreichbar sein.
Benutzer synchronisieren
Der Application Integration Server muss den folgenden Parameter per HTTP-POST-Anfrage akzeptieren um die Synchronisierung zu beginnen.
Name | Description |
---|---|
cmd | Zum Synchronisieren von Benutzern muss der cmd-Parameter den Wert list haben. |
Die zurückgelieferte HTTP-Antwort muss aus gültigen, JSON-formatierten Daten bestehen. Werden Benutzer synchronisiert, wird die folgende Datenstruktur für jedes Objekt erwartet. Mehrere Benutzer müssen als ein Array von JSON-Objekten zurückgeliefert werden.
Name | Type |
---|---|
userName | string |
distinguishedName | string (Optional) |
fullName | string (Optional) |
emailAddresses | array (Optional) |
Beispiel
HTTP Anfrage
POST /mailstore-integration/index.php HTTP/1.1
Authorization: Basic bWFpbHN0b3JlQGV4YW1wbGUudGVzdDpQYXNzdzByZA==
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: mail.example.test
Accept: */*
Content-Length: 8
Content-Type: application/x-www-form-urlencoded
cmd=list
HTTP Antwort
HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.4-14+deb7u5
Content-Type: text/json; charset=utf8
Date: Fri, 13 Dec 2013 14:20:27 GMT
Server: lighttpd/1.4.31
Content-Length: 23812
Accept-Ranges: none
Connection: Keep-Alive
[
{
"userName": "john.doe",
"distinguishedName": "UID=john.doe,DC=example,DC=com",
"fullName": "john.doe",
"emailAddresses": [
"[email protected]",
"[email protected]"
]
},
{
"userName": "jane.doe",
"distinguishedName": "UID=jane.doe,DC=example,DC=com",
"fullName": "jane.doe",
"emailAddresses": [
"[email protected]",
"[email protected]"
]
}
]
Benutzer authentifizieren
Der Application Integration Server muss die folgenden Parameter per HTTP-POST-Anfrage akzeptieren um Benutzer zu authentifizieren.
Name | Description |
---|---|
cmd | For authenticating users the cmd parameter must be set to auth. |
user | The user parameter contains the user name to be authenticated. |
pass | The pass parameter contains the password to be verified. |
Die zurückgelieferte HTTP-Antwort muss aus gültigen, JSON-formatierten Daten bestehen. Werden Benutzer authentifizier, wird die folgende Datenstruktur für jedes Objekt erwartet. Mehrere Benutzer müssen als ein Array von JSON-Objekten zurückgeliefert werden.
Name | Type |
---|---|
succeeded | boolean |
Beispiele
HTTP Anfrage
POST /mailstore-integration/index.php HTTP/1.1
Authorization: Basic bWFpbHN0b3JlQGV4YW1wbGUudGVzdDpQYXNzdzByZA==
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: mail.example.test
Accept: */*
Content-Length: 8
Content-Type: application/x-www-form-urlencoded
cmd=auth&user=john.doe&pass=Passw0rd
HTTP Antwort - Authentifizierung erfolgreich
HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.4-14+deb7u5
Content-Type: text/json; charset=utf8
Date: Fri, 13 Dec 2013 14:20:27 GMT
Server: lighttpd/1.4.31
Content-Length: 21
Accept-Ranges: none
Connection: Keep-Alive
{
succeeded: true
}
HTTP Antwort - Authentifizierung fehlgeschlagen
HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.4-14+deb7u5
Content-Type: text/json; charset=utf8
Date: Fri, 13 Dec 2013 14:20:27 GMT
Server: lighttpd/1.4.31
Content-Length: 22
Accept-Ranges: none
Connection: Keep-Alive
{
succeeded: false
}
Beispiel Server-Implementierung
Bitte haben Sie Verständnis, dass wir über diese Dokumentation hinausgehen keinerlei Unterstützung für diese Beispielimplementierungen anbieten. Falls nicht anders angegeben, sind die Beispiele unter der MIT Lizenz veröffentlicht.
Python
Die Python-Implementierung eines modularen Application Integration Servers finden Sie hier.