Authentifizierung mit OpenID Connect

Zusätzlich zu den integrierten Benutzerkonten unterstützt WTS Offline die Benutzerauthentifizierung über externe Identitätsanbieter, die das OpenID Connect (OIDC)-Protokoll verwenden.

Unternehmen, die einen OIDC-kompatiblen Identitätsanbieter verwenden, können diesen in WTS integrieren, um Single Sign-On (SSO) zu ermöglichen. Dadurch können sich Benutzer mit ihren bestehenden Unternehmensanmeldedaten authentifizieren, die vom externen Anbieter verwaltet werden.

Die Authentifizierung über OpenID Connect ist ab WTS-Version 8.30 verfügbar und nur in lokalen WTS Offline Installationen möglich.

Setup und Konfiguration

Um einen OpenID Connect-Identitätsanbieter zu verwenden, müssen Sie die Einstellungen des Identity Servers mit der Konfiguration des Anbieters aktualisieren. Der Identity Server ist die Komponente von WTS, die für die Verwaltung der Benutzerauthentifizierung und die Bearbeitung aller Anmeldeanfragen zuständig ist.

Nachdem Sie den Anbieter konfiguriert haben, erstellen Sie neue Benutzer, die sich über den externen Identitätsanbieter anmelden, und deaktivieren Sie dann möglicherweise die Standardoption für die Anmeldung mit Benutzername und Passwort, sodass Sie sich nur noch über Ihren Anbieter anmelden können.

1. Verknüpfen Ihres OpenID Connect Anbieters

Für die Integration mit WTS sind möglicherweise zusätzliche Einstellungen bei Ihrem OpenID Connect (OIDC)-Anbieter erforderlich. In der Regel müssen Sie dazu eine neue Anwendung beim Anbieter registrieren. Während dieses Vorgangs erhalten Sie eine eindeutige Client-ID, die später von WTS verwendet wird. Möglicherweise werden Sie auch aufgefordert, Weiterleitungs- und Abmelde-URLs zu konfigurieren, um eine ordnungsgemäße Kommunikation zwischen dem OIDC-Anbieter und WTS sicherzustellen.

Die genauen URLs, die Sie konfigurieren müssen, hängen von Ihrer WTS-Installationsart ab – davon, ob das System für die Verwendung von „localhost” oder einem vollqualifizierten Domänennamen (FQDN) als Serveradresse konfiguriert ist.

In beiden Fällen müssen Sie die Weiterleitungs-URI (auch als Callback-URL bezeichnet) und die Abmelde-URLs wie unten gezeigt definieren:

Weiterleitungs-URI:
https://[your_domain_or_localhost]:7016/signin-oidc
Beispiel: https://localhost:7016/signin-oidc

Abmelde-URLs :
https://[your_domain_or_localhost]:7016/signout-callback-oidc
https://[your_domain_or_localhost]:7016/signout-oidc

Diese Endpunkte werden von WTS und dem Identitätsserver verwendet, um Benutzersitzungen zu verwalten und einen nahtlosen An- und Abmeldeprozess über den konfigurierten OIDC-Anbieter sicherzustellen.

2. Anpassen der Identity Server Konfigurationsdateien

Die Art der Anmeldemethode wird in der Konfigurationsdatei des Identity Servers definiert, die sich in der Regel unter folgendem Pfad befindet: %PROGRAMFILES%\SCHUHFRIED GmbH\Vienna Test System 8\Identity\appsettings.json

Hinweis: Dies ist der Standard-Installationspfad. Wenn das Wiener Testsystem an einem anderen Ort installiert wurde, kann der tatsächliche Pfad entsprechend abweichen.

So konfigurieren Sie die Anmeldemethode:

  1. Öffnen Sie die Datei appsettings.json in einem Texteditor. Der Texteditor muss mit Administratorrechten ausgeführt werden, damit die Datei gespeichert werden kann.

  2. Fügen Sie den folgenden Konfigurationsausschnitt in einer neuen Zeile direkt nach der ersten öffnenden geschweiften Klammer ({) ein.

"CustomOpenIdProvider": {
    "DisplayName": "enter desired display name here",
    "Authority": "enter url of your authority here",
    "ClientId": "123f1e4f-12b8-1234-bdcc-ef1234567b36",
    "Prompt": "select_account",
	"IsRegistrationEnabled": true,
	"ClaimMappings": {
	  "idp": "idp",
      "oid": "oid",
      "email": "email",
      "name": "name",
      "preferred_username": "preferred_username",
      "alt_oids": "alt_oids",
      "given_name": "given_name",
      "family_name": "family_name",      
      "/objectidentifier": "/objectidentifier",
      "/nameidentifier": "/nameidentifier",
      "emails": "emails",
      "emailaddress": "emailaddress",
      "/surname": "/surname",
      "/givenname": "/givenname",
      "sub": "sub",
      "tenantid": "tenantid"
    }
  },
  "LocalProvider": {
	"IsEnabled": true,
	"IsRegistrationEnabled": false
  },

2.1. Geben Sie die Anmeldedaten Ihres Anbieters ein

Im hinzugefügten Abschnitt der Konfigurationsdatei, müssen Sie nun die Details zu Ihrem OpenID Connect-Anbieter hinzufügen.

Geben Sie die folgenden Informationen ein:

Anzeigename

Geben Sie Ihren bevorzugten Anzeigenamen in das Feld DisplayName ein. Dieser Text wird auf der Anmeldeseite angezeigt, damit Benutzer erkennen können, welche Anmeldemethode sie verwenden. Der Wert muss in doppelten Anführungszeichen stehen, zum Beispiel: "Melden Sie sich mit Ihrem Unternehmenskonto an".

Authority

Geben Sie die Basis-URL Ihres Anbieters in das Feld Authority ein. Dies ist die Hauptadresse Ihres OpenID Connect (OIDC)-Anbieters, über die WTS dessen Konfiguration ermitteln kann.

Beispiele:

  • Microsoft Entra ID (Azure AD): https://login.microsoftonline.com/{tenant}/v2.0

    • Im Azure-Portal als Verzeichnis-ID (Mandanten-ID, engl: Directory (tenant) ID) bezeichnet.

  • Okta: https://{yourOktaDomain}/oauth2/default

  • Auth0: https://{yourDomain}.auth0.com/

  • Google: https://accounts.google.com

Sie können die URL überprüfen, indem Sie <authority>/.well-known/openid-configuration in einem Browser aufrufen — es sollte ein JSON Dokument abrufen.

Der Wert muss in doppelte Anführungszeichen gesetzt werden, zum Beispiel: "https://login.microsoftonline.com/38a14f1a-05af-444b-a31f-db50fa2009ac/v2.0"

Client ID

Geben Sie Ihre vom Anbieter ausgestellte Kundennummer in das Feld ClientId ein.

Der Wert muss in doppelte Anführungszeichen gesetzt werden, zum Beispiel: "60ba08e8-f906-4886-885c-fa0d03d3507c"

Beispiel von appsettings.json mit hinzugefügter Konfiguration

appsettings.json
{
"CustomOpenIdProvider": {
    "DisplayName": "Melden Sie sich mit Ihrem Unternehmenskonto an.",
    "Authority": "https://login.microsoftonline.com/38a14f1a-05af-444b-a31f-db50fa2009ac/v2.0",
    "ClientId": "60ba08e8-f906-4886-885c-fa0d03d3507c",
    "Prompt": "select_account",
	"IsRegistrationEnabled": true,
	"ClaimMappings": {
	  "idp": "idp",
      "oid": "oid",
      "email": "email",
      "name": "name",
      "preferred_username": "preferred_username",
      "alt_oids": "alt_oids",
      "given_name": "given_name",
      "family_name": "family_name",      
      "/objectidentifier": "/objectidentifier",
      "/nameidentifier": "/nameidentifier",
      "emails": "emails",
      "emailaddress": "emailaddress",
      "/surname": "/surname",
      "/givenname": "/givenname",
      "sub": "sub",
      "tenantid": "tenantid"
    }
  },
  "LocalProvider": {
	"IsEnabled": true,
	"IsRegistrationEnabled": true
  },
  
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AppSettings": {
    "IsLocalSetup": "true",
    "ChangeToNoPasswordAllowed": "true",
    "LocalCertificateFileName": "",
    "LocalCertificatePwd": "",
    "PasswordExpirationEnabled": "false",
    //Will only be considered if PasswordExpirationEnabled = true
    "PasswordExpirationInDays": "90",
    "PasswordTokenExpirationInDays": "7",
    "PasswordExpirationShowWarningPeriodInDays": "7",
    "CertificateSearchKind": "FindBySubjectName",
    "CertificateSearchValue": "SchuhfriedSelfSignedCertificate",
	  //allowed range is 6 - 30. If not specified or outside of range, 8 will be used as a fallback.
    "PasswordMinLength": 8
  },
  "ConnectionStrings": {
    "WtsEntities": "Server=localhost\\WTSNXEXPRESS;Initial Catalog=wts;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;" //EFC = EntityFrameworkCore
  },
  "AzureAd": {
    "Authority": "https://login.microsoftonline.com/common/v2.0",
    "ClientId": "NOT_NEEDED",
    "Prompt": "select_account"
  },
  "AzureAdB2C": {
    "Instance": "https://login.schuhfried.com",
    "ClientId": "NOT_NEEDED",
    "ClientSecret": "NOT_NEEDED",
    "Domain": "login.schuhfried.com",
    "SignedOutCallbackPath": "/signout/B2C_1_signupsignin",
    "SignUpSignInPolicyId": "B2C_1_signupsignin",
    "CallbackPath": "/signin-b2c",
    "RemoteSignOutPath": "/signout-b2c"
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http1"
    },
    "EndPoints": {
      "Http": {
        "Url": "http://localhost:7015"
      },
      "HttpsInlineCertStore": {
        "Url": "https://localhost:7016"
      }
    }
  },
  "SecureValueStore": {
    "Type": "Keypass"
  }
}

2.2. Neustart des WTS Service Dienstes

warning Nachdem Sie die Änderungen an der Einstellungsdatei gespeichert haben, müssen Sie den Windows-Dienst „WTS Service“ neu starten, damit das System die Aktualisierungen übernimmt und das Plugin mit der neuen Konfiguration lädt. Wenn Sie sich nicht sicher sind, wie Sie einen Windows-Dienst neu starten, können Sie stattdessen auch Ihren Computer neu starten.

3. Erstellen des ersten Benutzers

Wenn der OpenID Connect (OIDC)-Anbieter konfiguriert und der WTS Service neu gestartet wurde, starten Sie die Wiener Testsystem Administrationssoftware. Auf dem Anmeldebildschirm werden nun zwei verfügbare Authentifizierungsmethoden angezeigt: die herkömmliche Anmeldung mit Benutzername und Passwort und die konfigurierte OIDC-Anbieteranmeldung.

Um den Zugriff über den Anbieter zu ermöglichen, melden Sie sich zunächst als Administrator an. Entweder über die mit den bei der Systeminstallation erstellten Administrator-Anmeldedaten oder mit einem anderen Administratorkonto, wenn Sie ein Upgrade durchführen. Erstellen Sie über die Benutzeroberfläche einen neuen Benutzer, der den Administrator repräsentiert, der sich über den externen OIDC-Anbieter authentifiziert. Für Details siehe: Benutzer hinzufügen und Zugriffsrechte beschränken.

image-20251015-143618.png

Kopieren Sie anschließend den Einladungslink für diesen Benutzer und öffnen Sie ihn in einem Browser. Schließen Sie den Registrierungsprozess ab – während dieses Vorgangs werden Sie aufgefordert, sich mit Ihrem Konto bei Ihrem externen Identitätsanbieter anzumelden. Nach erfolgreicher Authentifizierung wird der neue Benutzer in WTS dem externen Konto zugeordnet, wodurch die Verbindung zwischen den beiden Identitäten hergestellt wird.

image-20251015-144858.png
Öffnen Sie den Einladungslink in einem Browserfenster und wählen Sie den neu konfigurierten OpenID Connect-Anbieter aus.
image-20251015-145047.png
Nach der Anmeldung beim OIDC-Anbieter ist Ihr WTS-Benutzer verbunden und Sie können sich beim Wiener Testsystem anmelden.

4. Migration von Benutzern

Das System unterstützt keine automatische Aktualisierung oder Migration bestehender Benutzerkonten zur OpenID Connect (OIDC)-Authentifizierung. Jeder bestehende Benutzer muss manuell ersetzt werden, indem ein neues Konto erstellt wird, das mit dem OIDC-Anbieter verknüpft ist.

Erstellen Sie für jeden aktuellen Benutzer einen entsprechenden neuen Benutzer und verteilen Sie den generierten Einladungslink. Benutzer sollten den Link in einem Browser öffnen und den Registrierungsprozess abschließen, indem sie sich mit ihrem externen OIDC-Anbieterkonto anmelden. Bei der ersten Anmeldung koppelt das System den neuen WTS-Benutzer mit dem externen Konto.

Nachdem Sie sichergestellt haben, dass alle Benutzer über den konfigurierten Anbieter auf den Wiener Testsystem Client zugreifen können, können die zuvor verwendeten (lokalen) Benutzerkonten aus dem System entfernt werden.

5. Deaktivieren der Anmeldung mit Benutzername und Passwort

Sobald das erste Administratorkonto, das über den OpenID Connect (OIDC)-Anbieter authentifiziert wurde, erstellt wurde, können Sie die lokale Authentifizierung deaktivieren, um ausschließlich providerbasierte Anmeldungen zuzulassen.

Um dies zu deaktivieren, öffnen Sie die Identity Server-Konfigurationsdatei, auf die im vorherigen Einrichtungsschritt verwiesen wurde, und suchen Sie den folgenden Konfigurationsblock:

  "LocalProvider": {
	"IsEnabled": true,
	"IsRegistrationEnabled": false
  },

Ändern Sie den Parameter "IsEnabled" von true zu false.

Nach dem Speichern der Änderungen wird der lokale Anmeldemechanismus mit Benutzername/Passwort deaktiviert, und nur die Authentifizierung über den konfigurierten OIDC-Anbieter bleibt aktiv.

Neustart des WTS Service Dienstes

warning Nachdem Sie die Änderungen an der Einstellungsdatei gespeichert haben, müssen Sie den Windows-Dienst „WTS Service“ neu starten, damit das System die Aktualisierungen übernimmt und das Plugin mit der neuen Konfiguration lädt. Wenn Sie sich nicht sicher sind, wie Sie einen Windows-Dienst neu starten, können Sie stattdessen auch Ihren Computer neu starten.