4D v16

Single Sign On (SSO) unter Windows

Home

 
4D v16
Single Sign On (SSO) unter Windows

Single Sign On (SSO) unter Windows  


 

 

4D Server ermöglicht, Ihre Client-Server Lösungen unter Windows mit SSO (Single Sign On - Einmalanmeldung) auszurüsten.

Ist SSO in Ihre 4D Lösung integriert, können 4D Benutzer auf die 4D Anwendung unter Windows zugreifen und müssen ihr Kennwort nicht erneut eingeben, wenn sie bereits im Windows Domain ihres Unternehmens angemeldet sind (über Active Directory). Hinter den Kulissen kann die 4D Server Applikation auf das Login zur Authentifizierung der Windows Sitzung zugreifen, das Sie über Ihre standardmäßige Login-Methode zum Einloggen der 4D Benutzer in die Anwendung verwenden können.

Hinweis: Einen Überblick über die Authentifizierung und andere Sicherheitsvorkehrungen in 4D finden Sie im 4D Security guide.

Das SSO Feature ist verfügbar:

SSO Features sind in 4D Server standardmäßig nicht aktiviert. Um diese Funktionalität zu nutzen, müssen Sie in den Datenbank-Eigenschaften von 4D Server auf der Seite Client-Server/Netzwerk die Option Benutzer-Authentifizierung mit Domain Server setzen:

Markieren Sie diese Option, verbindet sich 4D direkt mit der Active Directory Zone des Windows Domain Server und erhält die verfügbaren Tokens der Authentifizierung.

Diese Option bietet Standard Authentifizierung über das NTLM Protokoll. 4D unterstützt NTLM und Kerberos Protokolle. Es wird gemäß der aktuellen Konfiguration von 4D automatisch ausgewählt (siehe Anforderungen für SSO). Um das Kerberos Protokoll zu verwenden, müssen Sie zusätzlich den Bereich Dienstprinzipalname ausfüllen (siehe unten). 

Wollen Sie Kerberos als Authentifizierungsprotokoll nutzen, müssen Sie auf der Seite Client-Server/Netzwerk der Datenbank-Eigenschaften auch die Option Dienstprinzipalnamen ausfüllen:

Diese Option deklariert SPN als Set in der Active Directory Konfiguration. Ein Dienstprinzipalname ist eine einmalige Kennung der Service Instanz. Die Authentifizierung über Kerberos nutzt SPNs, um einem Service Logon Account eine Service Instanz zuzuweisen. So kann eine Client Anwendung den Service auffordern, ein Account zu authentifizieren, auch wenn der Client ohne Account Name ist. Weitere Informationen dazu finden Sie auf der msdn Web Site unter SPN.

Der SPN Identifier muss folgendermaßen aufgebaut sein:
  • "ServiceName/FQDN_user", wenn SPN ein Computer-Attribut ist
  • "ServiceName/FQDN_computer", wenn SPN ein Benutzer-Attribut ist
Definitionen:
  • ServiceName ist der Name des Service, für den der Client authentifiziert werden möchte.
  • Der "Fully Qualified Domain Name" (FQDN) ist ein Domain Name, der die exakte Position in der Baumhierarchie der Active Directory Zone für Computer und Benutzer angibt.

In 4D Anwendungen wird SPN an folgender Stelle eingerichtet:

  • in den Struktureinstellungen der Datenbank zur Verwendung mit 4D Server
  • oder in den Benutzereinstellungen für Deployment Zwecke (Datei settings.4DSettings im Ordner Preferences der Datenbank)

Sind SSO Features aktiviert (siehe oben), ist die Benutzer-Authentifizierung, die auf den Anmeldedaten zur Windows Sitzung basiert, zum Öffnen einer Sitzung auf 4D Server zuverlässig.

Beachten Sie, dass das SSO Feature nur das authentifizierte Login liefert, Sie müssen es in Ihre Standard 4D Login-Methode übernehmen. Versucht eine 4D remote Anwendung, sich an den Server anzumelden, müssen Sie die 4D Funktion Current client authentication aufrufen, die das Benutzer-Login gemäß der Definition in der Active Directory Zone zurückgibt. Dieses Login können Sie dann in Ihr eigenes Identifikationssystem übernehmen (über die eingebauten Benutzer und Gruppen, LDAP Befehle oder einen eigenen Mechanismus), um in Ihrer 4D Anwendung die passende Sitzung für den remote Benutzer zu öffnen. 

Folgende Übersicht zeigt die Vorgehensweise:

Die Funktion Current client authentication muss in der Datenbankmethode On Server Open Connection aufgerufen werden. Sie wird jedes Mal aufgerufen, wenn ein remote 4D eine neue Verbindung zur 4D Server Datenbank öffnet. Schlägt die Authentifizierung fehl, können Sie in $0 einen nicht-Nullwert zurückgeben, um die Anmeldung abzuweisen.

Die Funktion Current client authentication rufen Sie mit folgender Syntax auf:

 login:=Current client authentication(Domain;Protokoll)

  • login ist die vom Client verwendete ID zum Einloggen in die Active Directory Zone (Wert vom Typ Text). Diesen Wert müssen Sie verwenden, um den Benutzer in Ihrer Anwendung zu identifieren. Wurde der Benutzer nicht korrekt authentifiziert, wird ein leerer String zurückgegeben und es wird kein Fehler angezeigt.
  • Domain und Protokoll sind optionale Textparameter. Sie werden von der Funktion gefüllt und ermöglichen, Verbindungen anhand dieser Werte zuzulassen oder abzuweisen:
    • Domain ist der Domain Name der Active Directory Zone
    • Protokoll ist der Name des Protokolls, das Windows zum Authentifizieren des Benutzers verwendet.

Weitere Informationen dazu finden Sie unter der Funktion Current client authentication.

4D Server verwaltet verschiedene SSO Konfigurationen, die sich nach der aktuellen Architektur und Einstellungen richten. Das Protokoll zur Authentifizierung (NTLM oder Kerberos) sowie die von der Funktion Current client authentication zurückgegebene Information richten sich nach der aktuellen Konfiguration, wenn alle Anforderungen erfüllt sind. Der Parameter Protokoll von Current client authentication gibt das aktuell verwendete Protokoll für die Authentifizierung zurück.

Nachfolgende Übersicht zeigt die verschiedenen Situationen:

NTLMKerberos
4D Server und 4D remote auf verschiedenen Rechnernjaja
4D Server Benutzer ist in Domainjaja
4D remote in der gleichen AD Zone wie 4D Server Benutzerja oder nein(*)ja
SPN in 4D Server eingetragenneinja(**)
von Current client authentication zurückgegebene Information, wenn die Anforderungen berücksichtigt werdenuser=erwartetes Login, domain=erwartetes Domain, protocol="NTLM"user=erwartetes Login, domain=erwartetes Domain, protocol="Kerberos"

(*) Folgende spezifische Konfiguration wird unterstützt: der 4D remote Benutzer ist ein lokaler Account auf dem Rechner, der zur selben AD Zone wie 4D Server gehört. In diesem Fall wird im Parameter Domain der Name des Rechners mit 4D Server eingesetzt. Beachten Sie, dass die Anzeige von den aktuellen Benutzereinstellungen abhängt: Ist keine verfügbar, werden leere Strings zurückgegeben.

(**) Wurden alle Kerberos Anforderungen berücksichtigt, die Funktion Current client authentication gibt jedoch in Protokoll "NTLM" zurück, hat das folgende Gründe:

Hinweis: Eine gültige Syntax bedeutet nicht, dass die SPN Deklaration ansich korrekt ist; existiert SPN nicht in der AD Zone, gibt Current client authentication leere Strings zurück.



Siehe auch 


 
EIGENSCHAFTEN 

Produkt: 4D
Thema: 4D Server verwenden

 
GESCHICHTE 

Erstellt: 4D v15 R5

 
ARTIKELVERWENDUNG

4D Server Handbuch ( 4D v16)