SSO mit Active Directory in CommuniGate Pro konfigurieren

    Single-Sign-on (SSO)Microsofts Active Directory als das marktführende Verzeichnissystem dient vor allem der zentralen Verwaltung und Authentifizierung von Benutzern. Dementsprechend bieten viele Applikationen eine AD-Integration, um die Pflege redundanter User-Daten zu vermeiden. Das Messaging-System CommuniGate Pro beschreitet für Single-Sign-on einen Mittelweg zwischen AD-Anbindung und eigener User-Datenbank.

    CommuniGate Pro bringt anders als sein Konkurrent MS Exchange ein eigenes Directory für die Benutzerverwaltung mit. Auch wenn eine direkte Integration mit Microsofts AD nicht vorhanden ist (unter anderem weil die Directory-Schemata sehr verschieden sind), so lässt sich auf unterschiedlichen Wegen ein Single Sign On (SSO) für die Anwender realisieren. Der Administrator muss dann zwar immer noch die Benutzer mit mindestens zwei Tools verwalten, aber zumindest verbleibt dabei das Passwort-Management im Active Directory.

    Sichere Authentisierungsmethoden

    CommuniGate Pro kennt eine Fülle von Authentisierungsmethoden. Davon können Kerberos und NTLM für eine SSO-Implementierung gegenüber einem Active Directory verwendet werden. Zudem lässt sich auch RADIUS verwenden. Dies setzt die Installation und anschließende Konfiguration des entsprechenden Moduls voraus.

    Das Kerberos-Verfahren basiert auf Authentisierungstickets für anfragende Clients, die von einem autorisierten Key Distribution Center (KDC) ausgestellt werden. Damit Kerberos aktiviert werden kann, muss man pro Domain entsprechende Keys in CG Pro hinterlegen. Dazu wird in der Admin-GUI im Menüpunkt Domain Settings => Security and Kerberos eine keytab-Datei importiert, welche die aus dem KDC exportierten Schlüssel enthält.

    Administratoren können ihr Active Directory als KDC und somit als Quelle für die Kerberos Keys verwenden. Mit dem Windows-Tool ktpass lässt sich die benötigte keytab Datei in folgenden Schritten generieren:

    1. In AD ein Konto für CG Pro erstellen, beispielsweise "cgatepro"
    2. Mit kpass.exe kann nun die keytab-Datei generiert werden:

    ktpass -princ service/domainName@REALMNAME -mapuser cgatepro -pass password -out keytab.data -crypto DES-CBC-MD5 -ptype KRB5_NT_SRV_HST

    Der Aufruf von ktpass hat folgende Bedeutung:

    • service: Bezeichner des CommuniGate Pro Services, der verwendet werden soll: IMAP oder MAPI
    • domainName: Name der CommuniGate-Pro-Domäne, an welcher sich die User anmelden sollen
    • REALMNAME: Kerberos Realm, hier wird die AD-Domäne angegeben, über welche die Anmeldung erfolgen soll
    • password: das Passwort, welches dem cgatepro-User zugeordnet werden soll

    CommuniGate Pro unterstützt unter anderem auch Kerberos, das als GSSAPI-Option in den Einstellungen aktiviert werden muss.

    Abschließend wird die mit dem Parameter –out spezifizierte Datei über die Admin-Konsole von CommuniGate Pro importiert. Zudem muss man dort Kerberos als Authentisierungsmethode aktivieren. Dies erfolgt unter den Domain-Settings in der Registerkarte Login Methods. Der Administrator muss hier mindestens die Methode „GSSAPI“ ankreuzen.

    Direkte Authentisierung über MS Active Directory

    CommuniGate Pro stellt eine Schnittstelle für die Verwendung externer Authentisierungsprogramme zur Verfügung. Administratoren können hiermit eigene Helper-Programme nutzen, welche den Login-Prozess über ein externes System laufen lassen.

    Zum Lieferumfang von CommuniGate Pro gehört das Helper-Programm authLDAPNewAD.pl, welches die Authentifizierung via LDAP bind auch an ein Active Directory delegieren kann. Zusätzlich unterstützt dieses Programm die dynamische Generierung von User-Konten in CommuniGate Pro, die im AD liegen und bei denen die Authentisierung erfolgreich war.

    Zur Aktivierung dieses Verfahrens geht man so vor:

    1. Das PERL Script muss zunächst von communigate.com heruntergeladen werden. Auf dem ausführenden Server müssen für seine Ausführung folgende PERL Module vorhanden sein: ASN1, LDAP sowie CLI.pm
    2. Im oberen Abschnitt des PERL-Scripts sind nun der oder die Active Directory Server zu konfigurieren:
    'company.com' => {
    address=>'192.168.0.1',  #the address or IP of LDAP server
    port=>389,  # LDAP port, 389 by default
    timeout=>5, # timeout in seconds, 20 by default
    adminDN=>'CN=Administrator,CN=Users,DC=company,DC=com', # the DN for admin bind
    adminPassword=>'password',
    searchBase=>'CN=Users,DC=company,DC=com',
    searchFilter=>'(&(sAMAccountName=<user>)(objectclass=*))',
    updatePasswords=>1,  #if need to update CommuniGate internal password,
    },
    

    Hier ist die IP-Adresse der Domain Controller einzutragen, sowie ggf. der Port anzupassen, beispielsweise für den Fall, dass die LDAP-Kommunikation über SSL erfolgen soll. Zudem sind die LDAP-Parameter adminDN sowie searchBase und searchFilter an die eigenen Gegebenheiten anzupassen.

    Das Programm unterstützt dabei die Hinterlegung mehrerer Domains bzw. AD-Server. Je Server muss eine entsprechende Sektion in der Variablen %domains ausgefüllt werden.

    CommuniGate Pro unterstützt externe Authentisierungsverfahren, die über eigene Scripte angesprochen werden können.

    Zum Abschluss muss das PERL-Script noch als Helper-Programm in CommuniGate Pro angemeldet werden. Dies erfolgt in der Admin-GUI unter den allgemeinen Einstellungen und dem dort zu findenden Helper-Link.

    Die Einbindung dieser Helper-Programme basiert auf einer sehr umfangreichen Schnittstelle, auf deren Basis Administratoren eigene Programme auch für weitere Zwecke integrieren können, beispielsweise für das Scannen oder Filtern von Mails, das Implementieren von RADIUS Login-Policies und andere Zwecke. Eine ausführliche Dokumentation des verwendeten Protokolls findet sich hier.

    Keine Kommentare