Implementieren eines Application Integration Servers: Unterschied zwischen den Versionen

[unmarkierte Version][unmarkierte Version]
(Die Seite wurde neu angelegt: „Im Folgenen wird beschrieben, wie man einen eigenen Application Integration Server implementiert um Benutzer aus Quellen zu synchronisieren, welche nicht nativ…“)
 
Zeile 33: Zeile 33:
 
|}
 
|}
  
=== Beispiele ===
+
=== Beispiel ===
  
 
==== HTTP Anfrage ====
 
==== HTTP Anfrage ====

Version vom 23. März 2015, 15:46 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
}