Verwenden von LDAP oder Active Directory zur Authentifizierung

Sie können Spectrum™ Technology Platform konfigurieren, einen LDAP- oder Active Directory-Server zur Authentifizierung zu verwenden. Wenn sich ein Benutzer bei Spectrum™ Technology Platform anmeldet, werden die Anmeldeinformationen des Benutzers unter Verwendung von LDAP oder AD verifiziert. Das System überprüft dann, ob ein Spectrum™ Technology Platform-Benutzer mit demselben Namen vorhanden ist. Wenn das der Fall ist, wird der Benutzer angemeldet. Andernfalls wird automatisch ein Spectrum™ Technology Platform-Benutzerkonto für den Benutzer erstellt, dem dann die Rolle Benutzer zugewiesen wird.

Im folgenden Diagramm wird dieser Prozess veranschaulicht:



Bevor Sie Spectrum™ Technology Platform konfigurieren, einen Verzeichnisdienst zur Authentifizierung zu verwenden, vergewissern Sie sich, dass Ihr Verzeichnisdienst die folgenden Voraussetzungen erfüllt:

  • Für LDAP muss der Verzeichnisserver mit LDAP Version 3 kompatibel sein.
  • Für Active Directory-Server gibt es keine speziellen Voraussetzungen.
Anmerkung: Wir empfehlen Ihnen, den technischen Support oder Professional Services von Pitney Bowes zu kontaktieren, um Sie durch diesen Prozess zu leiten.
Anmerkung: Wenn Sie Spectrum mit LDAP oder STS oder SSO_STS einrichten und die Eigenschaft standardmäßig spectrum.security.account.createNonExisting=true ist, werden Active Directory-Benutzer nach ihrer ersten Anmeldung bei Spectrum automatisch in Spectrum™ Technology Platform erstellt. Wenn Sie die Eigenschaft deaktivieren ( spectrum.security.account.createNonExisting=false), werden LDAP-/Active Directory-Benutzer erst dann für Spectrum™ Technology Platform authentifiziert, wenn der Administrator Benutzer manuell erstellt.
  1. Wenn in der Management Console vorhandene Benutzer konfiguriert sind und Sie diese weiterverwenden möchten, nachdem Sie LDAP- oder Active Directory-Authentifizierung aktiviert haben, erstellen Sie diese Benutzer in Ihrem LDAP- oder Active Directory-System. Achten Sie darauf, denselben Benutzernamen wie in Spectrum™ Technology Platform zu verwenden.
    Anmerkung: Sie müssen den Benutzer „admin“ nicht in LDAP oder Active Directory erstellen, da dieser Benutzer weiterhin Spectrum™ Technology Platform zur Authentifizierung verwenden wird, nachdem Sie LDAP- oder Active Directory-Authentifizierung aktiviert haben.
  2. Stoppen Sie den Spectrum™ Technology Platform-Server.
  3. Aktivieren Sie LDAP oder Active Directory-Authentifizierung:
    1. Öffnen Sie folgende Konfigurationsdatei in einem Texteditor:

      server\app\conf\spectrum-container.properties

    2. Legen Sie die Eigenschaft spectrum.security.authentication.basic.authenticator auf LDAP fest:
      spectrum.security.authentication.basic.authenticator=LDAP

      Die Einstellung LDAP wird verwendet, um sowohl Active Directory als auch LDAP zu aktivieren.

    3. Speichern Sie die Datei und schließen Sie sie.
  4. Konfigurieren Sie die Verbindungseigenschaften:
    1. Öffnen Sie folgende Konfigurationsdatei in einem Texteditor:

      server\app\conf\spring\security\spectrum-config-ldap.properties

    2. Ändern Sie diese Eigenschaften.
      spectrum.ldap.url
      Dies ist die URL einschließlich Port des LDAP- oder Active Directory-Servers. Beispiel:
      spectrum.ldap.url=ldap://ldapserver.example.com:389/
      spectrum.ldap.dn.format
      Dies ist das Format, das zur Suche nach dem Benutzerkonto in LDAP oder Active Directory verwendet wird. Verwenden Sie die Variable %s für den Benutzernamen. Beispiel:

      LDAP:

      spectrum.ldap.dn.format=uid=%s,ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.format=%s@example.com
      spectrum.ldap.dn.base
      Dies ist der eindeutige Name (Distinguished Name, dn) über den in LDAP oder Active Directory nach Benutzerkonten gesucht wird. Beispiel:

      LDAP:

      spectrum.ldap.dn.base=ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.base=cn=Users,dc=example,dc=com
      spectrum.ldap.search.filter
      Dies ist ein Suchfilter, der verwendet wird, wenn nach Attributen wie Rolle gesucht wird. Der Suchfilter kann die folgenden Variablen enthalten:
      • {user} ist der Benutzername für die Anmeldung bei Spectrum™ Technology Platform.
      • {dn} ist der eindeutige Name, der in spectrum.ldap.dn.base angegeben ist.
      Beispiel:

      LDAP:

      spectrum.ldap.search.filter=uid={user}

      Active Directory:

      spectrum.ldap.search.filter=userPrincipalName={dn}
      spectrum.ldap.attribute.roles
      Optional: Gibt das LDAP- oder Active Directory-Attribut an, das den Namen der Spectrum™ Technology Platform-Rolle für den Benutzer enthält. Der Rollenname, den Sie im LDAP- oder Active Directory-Attribut angeben, muss mit dem in Spectrum™ Technology Platform definierten Rollennamen übereinstimmen.

      Um beispielsweise die im Attribut spectrumgecos definierten Rollen anzuwenden, müssen Sie Folgendes angeben:

      spectrum.ldap.attribute.roles=spectrumroles

      Wenn dieses Attribut eine Rolle namens Designer enthält, wird dem Benutzer die Rolle Designer zugewiesen.

      Sie können nur ein Attribut spezifizieren, doch kann das Attribut mehrere Rollen enthalten. Wenn Sie mehrere Rollen in einem Attribut angeben möchten, trennen Sie diese durch ein Komma. Sie können außerdem ein Multiwertattribut spezifizieren, bei dem jede Instanz des Attributs eine andere Rolle enthält. Nur die in diesem einen Attribut spezifizierten Rollen werden in Spectrum™ Technology Platform verwendet. Andere LDAP- oder Active Directory-Attribute haben keine Auswirkungen auf Spectrum™ Technology Platform-Rollen.

      Wenn dem Benutzer in Spectrum™ Technology Platform Rollen zugewiesen sind, setzen sich die Berechtigungen des Benutzers aus den Rollen aus LDAP oder Active Directory und den Rollen aus Spectrum™ Technology Platform zusammen.

      Anmerkung: Wenn sich ein Benutzer zum ersten Mal anmeldet und nicht nicht über ein Spectrum™ Technology Platform-Benutzerkonto verfügt, wird automatisch eins erstellt. Der Benutzer erhält die Rolle Benutzer. Die effektiven Berechtigungen des Benutzers setzen sich aus den Berechtigungen der Rolle Benutzer und denen der Rollen zusammen, die in den in der Eigenschaft spectrum.ldap.attribute.roles aufgelisteten Attributen spezifiziert sind.
      Anmerkung: Wenn Sie die Rollen des Benutzers in der Management Console anzeigen, werden die Rollen, die dem Benutzer über die Eigenschaft spectrum.ldap.attribute.roles zugewiesen wurden, nicht angezeigt.
      spectrum.ldap.pool.min
      Gibt die Mindestgröße des Verbindungspools für Verbindungen zum LDAP- oder Active Directory-Server.
      spectrum.ldap.pool.max
      Gibt die maximale Anzahl der gleichzeitigen Verbindungen zum LDAP- oder Active Directory-Server.
      spectrum.ldap.timeout.connect
      Gibt in Millisekunden an, wie lange auf die Verbindungsherstellung zum LDAP- oder Active Directory-Server zu warten ist. Der Standardwert ist 1000 Millisekunden.
      spectrum.ldap.timeout.response
      Gibt in Millisekunden an, wie lange auf eine Antwort vom LDAP- oder Active Directory-Server zu warten ist, nachdem die Verbindung hergestellt wurde. Der Standardwert ist 5000 Millisekunden.
      spectrum.ldap.retry.count
      Die Anzahl an Versuchen, die der Spectrum™ Technology Platform-Server durchführen wird, um eine Verbindung zum LDAP- oder Active Directory-Server herzustellen, wenn der erste Verbindungsversuch fehlschlägt. Setzen Sie diesen Wert auf 0, wenn Sie nur einen Verbindungsversuch zulassen möchten.
      Tipp: Wenn Ihre LDAP- oder Active Directory-Server geclustert sind, empfehlen wir, diesen Wert auf 1 oder höher festzulegen, damit die Verbindungsanforderung über den LDAP- oder Active Directory-Lastausgleich zu einem anderen Server umgeleitet werden kann, wenn der Server des ersten Verbindungsversuchs nicht verfügbar ist.
      spectrum.ldap.retry.wait
      Die Anzahl an Millisekunden, die zwischen Verbindungsversuchen gewartet werden soll.
      spectrum.ldap.retry.backoff
      Der Multiplikator, der verwendet wird, um die Wartezeit nach jedem fehlgeschlagenen Verbindungsversuch zu erhöhen.

      Beispiel:

      spectrum.ldap.timeout.connect=1000
      ...
      spectrum.ldap.retry.count=5
      spectrum.ldap.retry.wait=500
      spectrum.ldap.backoff=2

      In diesem Beispiel beträgt die Wartezeit für den ersten Verbindungsversuch 1.000 Millisekunden. Die Wartezeit für jeden der fünf nachfolgenden Verbindungsversuche wird um den Faktor 2 erhöht, woraus folgende Wartezeiten für die Verbindungsversuche resultieren:

      Erneuter Verbindungsversuch 1: 500 Millisekunden
      Erneuter Verbindungsversuch 2: 1.000 Millisekunden
      Erneuter Verbindungsversuch 3: 2.000 Millisekunden
      Erneuter Verbindungsversuch 4: 4.000 Millisekunden
      Erneuter Verbindungsversuch 5: 8.000 Millisekunden

    3. Speichern Sie die Eigenschaftsdatei und schließen Sie sie.
  5. Wenn Sie das Location Intelligence-Modul verwenden und planen, Rollen (wie in Zuordnen von LDAP-Attributwerten zu Rollen beschrieben) zuzuordnen, ist eine zusätzliche manuelle Konfiguration der Konfigurationsdatei von Jackrabbit (unter SpectrumFolder\server\modules\spatial\jackrabbit\workspaces\default\workspace.xml) erforderlich, damit Spectrum Spatial alle dynamisch zugewiesenen LDAP- oder Active Directory-Rollen erkennt. Fügen Sie den Parameter checkRoles hinzu, wie unten dargestellt:
     <!-- 
      Spectrum ACL provider.
     -->
     <WorkspaceSecurity>
      <AccessControlProvider class="com.mapinfo.repository.jackrabbit.acl
       .AccessControlProviderImpl">
       <param name="checkRoles" value="true"/>
      </AccessControlProvider>
     </WorkspaceSecurity>
    
  6. Starten Sie den Spectrum™ Technology Platform-Server.

Wenn Spectrum™ Technology Platform bei Ihnen in einem Cluster läuft, ändern Sie einfach die Dateien spectrum-container.properties und spectrum-config-ldap.properties auf jedem Server im Cluster. Beenden Sie den Server, bevor Sie die Dateien ändern, und starten Sie den Server anschließend wieder. Wenn Sie ein LDAP-Attribut einer Rolle zugeordnet haben, wird diese Zuordnung zu allen Knoten im Cluster repliziert. Sie müssen also die Zuordnungsprozedur in der JMX-Konsole nicht wiederholen.