Active Directory Virtualisierung mit Penrose

Bei einem Projekt hatte ich die Problemstellung, dass Useraccounts aus zwei Active Directories in ein (javabasiertes) Shop-Produkt importiert werden sollen. Dieses Shop-Produkt wird zwar mit einer LDAP-Anbindung ausgeliefert, allerdings kann es nur Useraccounts aus genau einem Active Directory oder LDAP importieren.

Die Lösung: Ein LDAP-Proxy, der die beiden Active Directories zu einem virtuellen LDAP zusammenführt, und gleichzeitig LDAP-Binds erlaubt, um Single Sign On mit den Windows Credentials zu ermöglichen. Das (ebenfalls javabasierte) Open Source Produkt Penrose erfüllt genau diese Aufgabe.

Beispiel:
Active Directory 1 speichert die Kundenaccounts und besitzt folgenden Wurzelknoten:
dc=customer,dc=company,dc=com

Active Directory 2 speichert die Mitarbeiteraccounts und besitzt folgenden Wurzelknoten:
dc=employees,dc=company,dc=com

Im Penrose werden diese beiden Active Directory as LDAP Proxy Partitions importiert und die beiden Wurzelknoten in das Root DSE attribut eingetragen. Penrose simuliert keinen Active Directory, sondern lediglich einen “puren” LDAP. (Active Directory hat ein paar Spezialitäten, beispielsweise einen Bind mit der user@domain Notation). Dennoch werden Active Directory-spezifische Attribute wie memberOf übernommen. Man bekommt also einen LDAP mit Active Directory Schema.

Eine (wichtige) Kleinigkeit: Der Session Timeout in Penrose kann über die /conf/server.xml angepasst werden:

<session>
   <parameter>
      <param-name>maxIdleTime</param-name>
      <param-value>10080</param-value><!– time out von 7 tagen –>
   </parameter>
</session>

Comments are closed.