LDAP/SSO Einrichtung

Systemarchitektur

 

 

 

Deployments

Zur Nutzung von LDAP/SSO muss eine Version der B2B mit CAS Unterstützung deployt werden.

Außerdem muss CAS eingespielt werden.

Neue Deployments werden folgendermaßen eingespielt:

  • Tomcat stoppen,
  • Den Ordner tomcat/webapps/b2bbp-engine (und cas) löschen,
  • b2bbp-engine.war und cas.war  nach tomcat/webapps kopieren
  • tomcat starten

Benutzer aus Datenbank verwenden

Falls der LDAP Server ausfällt, kann die B2B so eingerichtet werden, dass z.B. ein admin Benutzer aus der B2B Datenbank verwendet werden kann.

Datenbank Änderungen

Falls besondere Benutzer in der Datenbank abgelegt werden sollen, muss die Tabelle B2BBP_ADM_ACCOUNT mit den Spalten (userid, password, firstname, lastname, email, organization) in der Datenbank vorhanden sein.

Ein admin Benutzer lässt sich mit:

INSERT INTO B2BBP_ADM_ACCOUNT (userid, password, firstname, lastname, email, organization) VALUES (‘admin’, ‘REMOVED’, ‘Admin’, ‘Admin’, ‘admin’, ‘new’);

erstellen. ‘REMOVED’ ist der md5 Hash vom Passwort. (In diesem Fall admin)  

Der md5 Hash kann beispielsweise unter www.hashgenerator.de generiert werden. (Wichtig md5 auswählen!)

 

Server.xml anpassen

Damit Tomcat die Benutzer aus der Datenbank lädt, und nicht aus der tomcat-users.xml, müssen folgende Änderungen in server.xml (\tomcat\conf\server.xml) gemacht werden:

 

Auskommentieren:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"

       resourceName="UserDatabase">

Einfügen:

<Realm className="org.apache.catalina.realm.DataSourceRealm" debug="99" digest="MD5"

   dataSourceName="jdbc/b2bbp"

   localDataSource="true"

   userTable="B2BBP\_ADM\_ACCOUNT" userNameCol="userid" userCredCol="password"

   userRoleTable="B2BBP\_ADM\_USER" roleNameCol="roleid">

Die alten Benutzer können unter tomcat/conf/tomcat-users.xml gelöscht werden.

 

b2bbp-engine.xml

Unter tomcat-b2bbp\conf\Catalina\localhost müssen folgende Environments zum CONTEXT Tag hinzugefügt werden:

<Environment description="" name="cas/serverName" override="false" type="java.lang.String" value="http://***REMOVED***" >

  <Environment description="" name="cas/AuthenticationFilter/casServerLoginUrl" override="false" type="java.lang.String" value="http://***REMOVED***/cas/login" >

  <Environment description="" name="cas/Cas20ProxyReceivingTicketValidationFilter/casServerUrlPrefix" override="false" type="java.lang.String" value="http://***REMOVED***/cas" >

REMOVED muss jeweils angepasst werden und auf den aktuellen Tomcat zeigen.

Hiermit wurde definiert, auf welche CAS Installation bei Anmeldung weitergeleitet wird, falls der Benutzer noch nicht eingeloggt wurde.

Jetzt kann man sich über den Benutzer admin/admin (über die Datenbank) anmelden.

 

manager.xml

Unter tomcat-b2bbp\conf\Catalina\localhost\manager.xml muss die gleiche jdbc/b2bbp Ressouce hinzugefügt werden, die auch in der b2bbp-engine.xml steht. Somit kann der Benutzer zum Neustarten der B2B und um die Managerübersicht über laufende Deployments zu erhalten, auch aus der Datenbank geladen werden. Wichtig ist, dass ein Benutzer aus der Datenbank mit Rolle „manager“ existiert.

 

LDAP Anbindung

Um LDAP zu nutzen, muss als erstes die deployerConfigContext.xml unter (tomcat/webapps/cas/WEB-INF) ausgetauscht/angepasst werden.

Unterhalb des B2B Database Kommentars, findet sich die Zeile jdbc:oracle:oci:@localhost:1521:B2T

Value muss auf den Wert von url aus Tomcat\conf\Catalina\localhost\b2bbp-engine.xml zeigen.

Global Properties

Zur Nutzung von LDAP müssen folgende Global Properties gesetzt werden:

B3P_UM_DATABASE_ACTIVE: true

B3P_UM_LDAP_ACTIVE: true

B3P_UM_LDAP_SERVER: REMOVED

B3P_UM_LDAP_PORT: 389

B3P_UM_LDAP_BASE_DN: DC=itvv,DC=org

B3P_UM_LDAP_USERS_ROOT_DN: OU= Benutzer,OU=REMOVED,OU=Gesellschaften B3P_UM_LDAP_GROUPS_ROOT_DN: OU=B2B,OU=Rechte-Gruppen,OU=Admin-Gruppen,OU=Admin-Dienste

B3P_UM_LDAP_CONNECTION_USER: CN=LDAP B2B,OU=Benutzer,OU=REMOVED,OU=Gesellschaften,DC=ITVV,DC=ORG

B3P_UM_LDAP_CONNECTION_PASSWORD: 12345678

B3P_UM_LDAP_USE_SSL: false

B3P_UM_LDAP_USER_ATTRIBUTE_MAPPING:

B3P_UM_LDAP_GROUP_ATTRIBUTE_MAPPING:

Benutzer und Rollenadministration

In der B2B Oberfläche muss pro LDAP Gruppe eine neue Rollenzuordung erstellt werden (zu finden unter Benutzer und Rollenadministration):

Die BenutzerID der LDAP Gruppe (z.B. ANM_B2B_B1T_USERS) wird auf die b2b Rolle gemappt (z.B. admins)

 

SSO Anbindung

 

Falls die Client Rechner einer Domäne angehören und sich übers LDAP authentifizieren, kann SSO verwendet werden.

LDAP Benutzer

Es muss ein neuer Benutzer im Active Directory für SSO erstellt werden. Beispielsweise:

  • samAccountName: REMOVED

  • Distinguished Name (DN): CN=REMOVED,OU=Admin-Konten,OU=Admin-Dienste,DC=ITVV,DC=ORG

 

Eigenschaften des Accounts:

  • Password never expires

  • Use DES encryption

 

Außerdem müssen einige Eigenschaften gesetzt werden, damit der LDAP Benutzer für SSO verwendet werden kann.

Folgende Kommandos werden auf dem Active Directory Domäne-Controller ausgeführt:

setspn -a HTTP/REMOVED** REMOVED**

ktpass -princ HTTP/REMOVED@REMOVED** -pass * -ptype KRB5_NT_ PRINCIPAL -crypto RC4-HMAC-NT –mapuser <REMOVED@REMOVED>**

Kennwort ist REMOVED

REMOVED muss durch den Server ersetzt werden auf dem CAS läuft,  REMOVED entspricht der Domäne (Großschreibung ist wichtig!) und REMOVED dem LDAP SSO Benutzer.

Ergebnis: Das Attribut “servicePrincipalName” mit dem Wert “http/REMOVED” und „user PrincipalName“ mit dem Wert „HTTP/REMOVED“ wurde dem Benutzer “S00010” hinzugefügt

 

CAS Anpassung

Falls nicht der CAS SSO Build verwendet wird, müssen in folgenden Dateien Kommentare entfernt werden, sodass der Code für Kerberos (Das Protokoll für SSO) verwendet wird. Standardmäßig sind diese Abschnitte auskommentiert.

deployerConfigContext.xml

2x Kommentrar entfernen, bei

Cas-servlet.xml

Kommentar entfernen

Login-webflow.xml

In allen Bereichen mit Kerberos/SPNego den Kommentar entfernen

Der Bereich unter „B2B: gatewayRequestCheck for Standard Authentication“ und „B2B: renewRequestCheck for Standard Authentication“ muss auskommentiert werden.

 

SSO Konfiguration

Konfiguriert wird die SSO Verbindung in deployerConfigContext.xml und cas.properties:

deployerConfigContext.xml

<property name="jcifsServicePrincipal" value="HTTP/se0506.***REMOVED***@***REMOVED***" >

                 <property name="jcifsServicePassword" value="***REMOVED***" >

                 <property name="kerberosDebug" value="false" >

                 <property name="kerberosRealm" value="***REMOVED***" >

                 <property name="kerberosKdc" value="***REMOVED***" >

                 <property name="loginConf" value="***REMOVED***Tomcat2/webapps/cas/WEB-INF/login.conf" >

Hier werden die gleichen Daten angegeben, die auch am SSO Ldap Benutzer registriert wurden. Außerdem wird die IP des Domain Controllers und der Pfad zur login.conf Datei angegeben.

Cas.properties

In den ersten 3 Zeilen muss der Tomcat Port angepasst werden.

 

Damit SSO im Browser funktioniert, muss „windows authentication“ im internet explorer aktiviert werden und die URL der B2B muss in „vertrauneswürdige seiten“ aufgenommen werden, falls die Seite nicht in der Zone „lokales Internet“ angezeigt wird.

 

Weiterführende Infos: https://wiki.jasig.org/display/CASUM/SPNEGO

 

View Me   Edit Me