Weitere Informationen zum OIDC-basierten Single Sign-On
Problembehandlung

In den Versionen 9.6 und neuer werden die Einstellungen aus den früheren appsettings.json-Dateien in zwei Dateien gespeichert:
- %PROGRAMDATA%\MemoQ Server\Oidc Backend\appsettings.User.json enthält alle Einstellungen, die bei einer Aktualisierung oder einem Upgrade von memoQ TMS unverändert bleiben.
- %PROGRAMFILES%\Kilgray\MemoQ Server\Oidc\appsettings.json enthält die Einstellungen, die auf ihre Standardwerte zurückgesetzt werden, wenn Sie memoQ TMS aktualisieren oder upgraden.
Das Upgrade berührt nicht die appsettings.json-Datei, die Sie in Version 9.5 verwendet haben. Um den Authentication Manager-Dienst wieder zu starten, müssen Sie alles aufräumen:
- Öffnen Sie im Ordner %PROGRAMDATA%\MemoQ Server\Oidc Backend die Dateien appsettings.json und appsettings.User.json in einem Texteditor.
- Kopieren Sie alles von appsettings.json nach appsettings.User.json, mit Ausnahme der Teile unter dem Serilog-Schlüssel.
- Wenn Sie eine der Protokollierungseinstellungen geändert haben, kopieren Sie die Teile unter dem Serilog-Schlüssel nach %PROGRAMFILES%\Kilgray\MemoQ Server\Oidc\appsettings.json.
- Löschen Sie appsettings.json aus dem Ordner %PROGRAMDATA%\MemoQ Server\Oidc Backend.
- Starten Sie den MemoQ Server service mit dem memoQ TMS Deployment Tool oder der Windows-Verwaltungskonsole services.msc.
- Starten Sie den Assistenten MemoQ OIDC Backend Service.

In diesem Fall müssen Sie nur den Authentication Manager-Dienst starten. Führen Sie den Befehl services.msc aus, klicken Sie mit der rechten Maustaste auf MemoQ OIDC Backend Service in der Liste und klicken Sie dann im Menü auf Start.

Dazu führen Sie einen beliebigen Befehl mit dem MemoQ.Security.Oidc.ConfigTool aus. Die sicherste Variante ist GetBackendBaseUrl, da sie nichts an der Konfiguration ändert.
Führen Sie diese Befehle in einer Eingabeaufforderung mit Administratorrechten aus:
cd "%PROGRAMFILES%\Kilgray\MemoQ Server\Oidc"
MemoQ.Security.Oidc.Backend.ConfigTool.exe GetBackendBaseUrl
Wenn die Eingabeaufforderung zurückgegeben wird, ist die Aktualisierung der Datenbank abgeschlossen.

Dies wird durch ein bekanntes Problem mit .NET Framework verursacht. Die .exe-Dateien im Ordner %PROGRAMFILES%\Kilgray\MemoQ Server\Oidc sind selbstextrahierende Archive. Ihr Inhalt (die eigentlichen Programme) wird in einen Unterordner des Benutzerordners %TEMP% extrahiert (und dort ausgeführt). Es kann vorkommen, dass etwas (z. B. eine Antiviren-Software, ein .NET-Update usw.) den Ordner %TEMP% aufräumt und der Authentication Manager und sein Konfigurationstool dann nicht mehr ausgeführt werden können.
So vermeiden Sie dies: Erstellen Sie eine Umgebungsvariable namens DOTNET_BUNDLE_EXTRACT_BASE_DIR mit dem Geltungsbereich Computer oder System. Setzen Sie den Wert auf %PROGRAMDATA%\Temp\.net. Starten Sie dann den Authentication Manager-Dienst erneut: Führen Sie den Befehl services.msc aus, klicken Sie mit der rechten Maustaste auf MemoQ OIDC Backend Service in der Liste und klicken Sie dann im Menü auf Start.

Wenn etwas mit Ihrer OIDC-Anmeldung nicht in Ordnung ist, gehen Sie diese Liste durch, bevor Sie sich an den memoQ-Support wenden.
-
Führen Sie MemoQ.Security.Oidc.Backend.ConfigTool.exe aus, das sich im Ordner %PROGRAMFILES%\Kilgray\MemoQ Server\Oidc befindet, um sicherzustellen, dass der OIDC-Teil in der Datenbank von memoQ TMS auf dem neuesten Stand ist (das ConfigTool führt die Aktualisierung automatisch durch).
-
Führen Sie MemoQ.Security.Oidc.Backend.ConfigTool.exe mit dem Befehl GetIdProvider aus, um die konfigurierten Identitätsanbieter aufzulisten. Dies ist sehr nützlich, wenn die Anmeldeseite von memoQweb die OIDC-Schaltflächen nicht anzeigt oder wenn die Option Einen externen Identitätsprovider verwenden in der memoQ-Desktop-App deaktiviert ist. (Diese Dinge sollten nicht passieren, wenn Sie mindestens einen Identitätsanbieter eingerichtet haben.)
-
Wenn es Probleme mit der Anmeldeseite von memoQweb gibt, führen Sie MemoQ.Security.Oidc.Backend.ConfigTool.exe mit dem Befehl GetMemoQWebBaseUrls aus. Prüfen Sie, ob die Basis-URL von memoQweb richtig konfiguriert ist.
-
Öffnen Sie die memoQ TMS-Datenbank in Microsoft SQL Server Management Studio und überprüfen Sie, ob sie eine Tabelle namens dbo.__EFMigrationsHistory beinhaltet. Wenn nicht, müssen Sie den OIDC-Teil der Datenbank installieren: Führen Sie MemoQ.Security.Oidc.Backend.ConfigTool.exe mit dem Befehl GetMemoQWebBaseUrls aus. Dies ist erforderlich, um CORS-Probleme beim Authentication Manager zu vermeiden, wenn dieser von memoQweb aus verwendet wird. Dann müssen Sie OIDC wie hier beschrieben einrichten. Beachten Sie, dass Sie hier mehrere Basis-URLs konfigurieren können.
-
So überprüfen Sie, welche OIDC-Identitätsanbieter in memoQ TMS eingerichtet sind: Öffnen Sie https://<Hostname des Authentication Manager>:<Port des Authentication Manager>/auth/id_providers (z. B. https://memoq.mycompany.com:5001/auth/id_providers) in einem Browser. memoQ TMS gibt eine .json-Datei mit den Basisdaten der konfigurierten Identitätsanbieter zurück.
-
So überprüfen Sie die OIDC-Anmeldemöglichkeiten in memoQ TMS: Öffnen Sie https://<Hostname des Authentication Manager>:<Port des Authentication Manager>/login (z. B. https://memoq.mycompany.com:5001/login) in einem Browser. memoQ TMS gibt den OIDC-Teil der Anmeldeseite zurück.
Benutzer von Windows-basiertem SSO auf die neue, OIDC-basierte Lösung migrieren
Ab Version 9.7 können Benutzer ihre Konten von Windows-basiertem SSO zu OIDC-basiertem SSO migrieren. Dies geschieht auf dieselbe Weise wie bei den Konten von memoQ TMS:
-
Die Benutzer melden sich bei memoQ TMS mit ihrem OIDC-Konto an.
-
Sie wählen die Option Ich habe bereits auf diesem Server gearbeitet und geben ihren Windows AD-Benutzernamen und ihr Kennwort ein.
-
memoQ TMS verknüpft die beiden Konten, und danach können sich die Benutzer nur noch mit ihrem OIDC-Konto anmelden.
Benutzer, die zu einem OIDC-Anbieter wechseln, behalten ihre bisherigen Berechtigungen und Gruppenmitgliedschaften. Wenn ein memoQ-Administrator memoQ TMS mit Windows Active Directory synchronisiert, werden die Gruppenmitgliedschaften dieser Benutzer aktualisiert.
Wenn das Unternehmen das Windows-basierte SSO auch nach der Einrichtung von OIDC-basiertem SSO beibehält, können Sie einen Benutzer zurück zum Windows-basierten System migrieren. Löschen Sie ihr Konto in memoQ oder memoQweb und synchronisieren Sie dann Ihr memoQ TMS mit Windows Active Directory. Das Konto wird in der Benutzerliste wieder als Windows AD-Benutzer angezeigt.
Allgemeines Schema der OIDC-basierten Benutzerauthentifizierung
Die neue Art der Genehmigung von Benutzeridentitäten basiert auf dem OpenID Connect-Protokoll, das von führenden Identitätsanbietern – auch bekannt als Identitäts- und Zugriffsmanagementsysteme (Identity and Access Management; IAM) – unterstützt wird. Diese Schemata zeigen, wie die Benutzerauthentifizierung in der memoQ-Desktop-App und in memoQweb abläuft.

- In memoQ entscheidet sich der Benutzer für die Anmeldung mit einem externen Identitätsanbieter (Okta, Azure AD usw.).
- Die memoQ-Desktop-App fordert die URL der Anmeldeseite des Authentication Manager an und erhält diese (um einen Identitätsanbieter auszuwählen).
- Die memoQ-Desktop-App generiert eine zufällige Anmelde-ID zur Identifizierung der Anmeldesitzung. Sie öffnet die (in Schritt 2 erhaltene) Anmelde-URL im Standardbrowser des Computers und übergibt den Hash der generierten Anmelde-ID an die Anmeldeseite. Diese Seite wird von Authentication Manager über HTTPS bereitgestellt.
- Auf der Anmeldeseite wählt der Benutzer einen Identitätsanbieter aus. Die Anmeldefunktion des Authentication Manager übergibt den Hash der Anmelde-ID und den Namen des Identitätsanbieters. Als Antwort erhält er eine Weiterleitung zur Anmeldeseite des Identitätsanbieters, mit dem Hash der Anmelde-ID und einem Rückrufpfad als Parameter.
- Der Browser wird an den Identitätsanbieter weitergeleitet, wobei der Hash der Anmelde-ID und der Rückrufpfad als Parameter übergeben werden.
- Der Identitätsanbieter authentifiziert den Benutzer und generiert einen Authentifizierungscode. Dann leitet er den Browser zum Rückrufpfad um und übergibt den generierten Authentifizierungscode.
- Der Browser wird auf den Rückrufpfad umgeleitet und leitet den Hash der Anmelde-ID und den Authentifizierungscode als Parameter an den Authentication Manager weiter.
- Der Authentication Manager ruft den Identitätsanbieter auf, um den erhaltenen Authentifizierungscode in ein ID-Token umzuwandeln. Dies geschieht über eine sicherere Rückkanal-Kommunikation.
- Der Authentication Manager empfängt und validiert das empfangene ID-Token, das die Benutzerangaben (die Details des authentifizierten Benutzers) enthält, und speichert es in der memoQ-Datenbank, wobei das ID-Token als Schlüssel des Datensatzes verwendet wird.
- Die memoQ-Desktop-App sendet die Anmelde-ID an memoQ TMS und fordert eine memoQ-Sitzung an.
- memoQ TMS erstellt einen Hash aus der Anmelde-ID und versucht, das ID-Token auf der Grundlage dieses Hashs zu erhalten. Bei Erfolg wird eine memoQ-Sitzung für den authentifizierten Benutzer des ID-Tokens erstellt.

Der Anmeldeprozess von memoQweb folgt der gleichen Logik wie in der Desktop-App:
- Der Benutzer öffnet memoQweb (praktisch das zentrale webbasierte Anmeldemodul), um in webtrans oder webPM zu arbeiten. Der Anmeldebildschirm zeigt die Liste der registrierten Identitätsanbieter unterhalb des traditionellen memoQ-Anmeldeformulars an.
- Auf der Anmeldeseite wählt der Benutzer einen Identitätsanbieter aus. Der Web-Client generiert eine zufällige Anmelde-ID zur Identifizierung der Anmeldesitzung.
- Der Browser wird an den Identitätsanbieter weitergeleitet, wobei der Hash der Anmelde-ID und der Rückrufpfad als Parameter übergeben werden.
- Der Identitätsanbieter authentifiziert den Benutzer und generiert einen Authentifizierungscode. Dann leitet er den Browser zum Rückrufpfad um und übergibt den generierten Authentifizierungscode.
- Der Browser wird auf den Rückrufpfad umgeleitet und leitet den Hash der Anmelde-ID und den Authentifizierungscode als Parameter an den Authentication Manager weiter.
- Der Authentication Manager ruft den Identitätsanbieter auf, um den erhaltenen Authentifizierungscode in ein ID-Token umzuwandeln. Dies geschieht über eine sicherere Rückkanal-Kommunikation.
- Der Authentication Manager empfängt und validiert das empfangene ID-Token, das die Benutzerangaben (die Details des authentifizierten Benutzers) enthält, und speichert es in der memoQ-Datenbank, wobei das ID-Token als Schlüssel des Datensatzes verwendet wird.
- Das memoQweb Front-End sendet die Anmelde-ID an memoQ TMS und fordert eine memoQ-Sitzung an.
- memoQ TMS erstellt einen Hash aus der Anmelde-ID und versucht, das ID-Token auf der Grundlage dieses Hashs zu erhalten. Bei Erfolg wird eine memoQ-Sitzung für den authentifizierten Benutzer des ID-Tokens erstellt.
Benutzer in der memoQ-Benutzerdatenbank identifizieren
- Wenn der Benutzer in der Benutzerdatenbank gefunden wird, beginnt der normale Autorisierungsprozess von memoQ, und der Benutzer erhält seine Lizenz und Berechtigungen (d. h. er wird angemeldet).
- Wenn der Benutzer nicht gefunden wird, bedeutet dies, dass er zum ersten Mal versucht, sich mit diesen Anmeldedaten seines Identitätsanbieters anzumelden. Je nachdem, ob der Benutzer bereits zuvor mit diesem memoQ TMS gearbeitet hat, legt der Authentication Manager einen neuen Benutzer für ihn an oder aktualisiert den alten Benutzer (Details siehe unten).
Tipps für Testumgebungen
Es gibt zwei Dinge, die die SSO-Einrichtung vereinfachen können, die aber in Produktionsumgebungen nicht verwendet werden sollten. Wenn Sie diese Funktion jedoch zum ersten Mal ausprobieren, möchten Sie vielleicht schneller durch die Einrichtung kommen.

In einer Testumgebung können Sie anstelle eines kommerziellen Zertifikats ein selbstsigniertes Zertifikat verwenden.
- Laden Sie die PowerShell-Skriptdatei CreateAndInstallSelfSignedCert.ps1 herunter, entpacken Sie sie und führen Sie sie im Administratormodus aus. Dieser Schritt erstellt ein selbstsigniertes Zertifikat, registriert es als vertrauenswürdiges Zertifikat und exportiert es in eine kennwortgeschützte .pfx-Datei in den aktuellen Ordner.
- Öffnen Sie die Anwendung Computerzertifikate verwalten, und auf den Knoten Zertifikate – Lokaler Computer/Persönlich/Zertifikat und Zertifikate – Lokaler Computer/Vertrauenswürdige Stammzertifizierungsstellen/Zertifikat sollten Sie das neu erstellte Zertifikat sehen.
- Bearbeiten Sie die Datei appsettings.json und setzen Sie die Eigenschaft Kestrel.Certificates.Default.Subject auf den Wert, der zuvor als <dns name for the certificate> verwendet wurde.
Auf jedem Client-Computer, auf dem jemand die memoQ-Desktop-App oder memoQweb verwenden wird, müssen Sie das Zertifikat als vertrauenswürdig registrieren:
- Kopieren Sie die auf dem Server-Computer erstellte Zertifikatsdatei auf den Client-Computer.
- Doppelklicken Sie auf die Datei und der Assistent für den Zertifikatsimport wird geöffnet.
- Wählen Sie Aktueller Benutzer als Speicherort und klicken Sie auf Weiter.
- Klicken Sie erneut auf Weiter.
- Geben Sie das Kennwort der Zertifikatsdatei ein (das Sie beim Exportieren des Zertifikats festgelegt haben) und klicken Sie auf Weiter.
- Klicken Sie erneut auf Weiter.
- Klicken Sie auf Beenden.
Wenn Sie den Authentication Manager auf dem Server-Computer mit selbstsignierten Zertifikaten verwenden müssen, müssen Sie dies auch auf dem Server-Computer tun, beginnend mit Schritt 2.

In einer Testumgebung können Sie eine Zertifikatsdatei anstelle eines Zertifikatspeichers verwenden.
"Kestrel": {
"Certificates": {
"Default": {
"Path": "<absolute-path-of-certificate-file>",
"Password": "",
},
},
},
Gewähren Sie dem Authentication Manager Lesezugriff auf dieses Zertifikat:
- Öffnen Sie den Ordner, der die PFX-Datei enthält.
- Right-click the certificate. In the context menu, choose Properties.
- In the <certificate> properties window, click the Security tab, then click the Edit button.
- In the Permissions for <certificate> window, click the Add button.
- In the Select users... window, enter the name of the Authentication Manager service (if needed, run services.msc to see the list of all services), and click the Check names button.
- When Windows recognizes the service name, click the OK button.
- In the Permissions for <certificate> private keys window, click the service's name. Make sure the service only has Read permission, then click the OK button.