OpenID Connect-Authentifizierung
OpenID Connect (OIDC) bietet Unternehmen eine moderne, sichere Möglichkeit zur Authentifizierung von Benutzern und vereinfacht gleichzeitig den Zugriff auf von GO-Global gehostete Windows-Anwendungen. Durch die Integration mit Identitätsanbietern wie Okta, Azure AD oder ADFS können Administratoren die Authentifizierung zentralisieren und das Anmeldeerlebnis für Benutzer verbessern – unabhängig davon, ob sich Benutzer mit lokalen Windows-Konten, Domänenkonten oder beidem anmelden. Dieser Leitfaden erläutert, wie Sie die OIDC-Authentifizierung in GO-Global aktivieren, automatische Windows-Anmeldungen konfigurieren, Identitätsanbieter-Konten mit Active Directory-Benutzern abgleichen und zusätzliche Einstellungen verwalten, die für einen nahtlosen Zugriff erforderlich sind. Er behandelt außerdem erweiterte Optionen wie die Anpassung von Benutzernamenfeldern, die Verwaltung der Erstellung lokaler Konten, die Konfiguration von Berechtigungen und das programmgesteuerte Abrufen von OIDC-Tokens.
Nachdem sich ein Benutzer über OIDC authentifiziert hat, bietet GO-Global Administratoren verschiedene Möglichkeiten, den Benutzer unter Windows automatisch zu authentifizieren. Ist der Identitätsanbieter beispielsweise in das Active Directory der Organisation integriert, kann GO-Global den Benutzer automatisch bei seinem Domänenkonto anmelden. Ist eine Active-Directory-Integration hingegen nicht erforderlich oder gewünscht, kann GO-Global ein lokales Windows-Konto für den Benutzer erstellen und ihn automatisch bei diesem Konto anmelden. Die Unterstützung für Single Sign-On ist eine Zusatzoption. Die OpenID Connect-Authentifizierung ist ausgegraut (deaktiviert), sofern die Funktion nicht erworben wurde.
So aktivieren Sie die OpenID Connect-Authentifizierung
- Klicken Sie auf „Extras“ | „Host-Optionen“.
- Klicken Sie auf die Registerkarte „Authentifizierung “.
- Aktivieren Sie die OpenID Connect-Authentifizierung.
- Wählen Sie eine der folgenden Optionen oder keine davon aus:
- Benutzer automatisch bei lokalen Windows-Konten anmelden. Wenn diese Option aktiviert ist, erstellt GO-Global automatisch ein lokales Benutzerkonto für Benutzer, die kein Domänenkonto besitzen.
- Benutzer automatisch bei ihren Domänenkonten anmelden. Wenn diese Option aktiviert ist, versucht GO-Global, eine S4U-Anmeldung unter Verwendung des UPN des Benutzers durchzuführen, den es nach einer erfolgreichen OpenID Connect-Anmeldung vom OIDC-Identitätsanbieter erhält. Eine S4U-Anmeldung allein ermöglicht es Benutzern zwar, auf Ressourcen auf dem GO-Global-Host zuzugreifen, jedoch können sich Benutzer nicht bei Diensten authentifizieren, die im Netzwerk ausgeführt werden. Um auf Dienste zuzugreifen, die im Netzwerk ausgeführt werden, müssen Administratoren entweder die eingeschränkte Delegierung aktivieren (wie in der Konfigurationsanforderungen für die Unterstützung von Delegierungen Artikel) oder aktivieren Sie die Option „Passwörter auf dem Host zwischenspeichern“.
- Wenn eine von GO-Global gehostete Anwendung unter einem lokalen Konto auf dem GO-Global-Host ausgeführt werden kann, sollte die Option „Benutzer automatisch bei lokalen Windows-Konten anmelden“ ausgewählt werden. Wenn die Anwendung hingegen Zugriff auf Ressourcen benötigt, die von Active Directory verwaltet werden, muss die Option „Benutzer automatisch bei ihren Domänenkonten anmelden“ ausgewählt werden. In diesem Fall muss der Identitätsanbieter in Active Directory integriert sein, damit er GO-Global den UPN des Benutzers bereitstellen kann.
- Wenn weder „Benutzer automatisch bei lokalen Windows-Konten anmelden“ noch „Benutzer automatisch bei ihren Domänenkonten anmelden“ ausgewählt ist, werden die Benutzer aufgefordert, sich bei Windows anzumelden, wie es durch die anderen Optionen auf der Registerkarte „Authentifizierung“ festgelegt ist. Sind beispielsweise sowohl die OpenID Connect-Authentifizierung als auch die Standardauthentifizierung aktiviert, werden die Benutzer aufgefordert, sich zweimal anzumelden. Zunächst werden sie aufgefordert, sich beim OpenID Connect-Identitätsanbieter anzumelden. Nach erfolgreicher Authentifizierung beim OpenID Connect-Identitätsanbieter werden sie dann aufgefordert, den Benutzernamen und das Passwort eines Windows-Kontos einzugeben.
- Wenn eine von GO-Global gehostete Anwendung unter einem lokalen Konto auf dem GO-Global-Host ausgeführt werden kann, sollte die Option „Benutzer automatisch bei lokalen Windows-Konten anmelden“ ausgewählt werden. Wenn die Anwendung hingegen Zugriff auf Ressourcen benötigt, die von Active Directory verwaltet werden, muss die Option „Benutzer automatisch bei ihren Domänenkonten anmelden“ ausgewählt werden. In diesem Fall muss der Identitätsanbieter in Active Directory integriert sein, damit er GO-Global den UPN des Benutzers bereitstellen kann.
- Geben Sie die Client-ID aus der Konfiguration Ihres OpenID Connect-Servers in das Feld „Client-ID“ ein.
- Geben Sie die Zeichenfolge für das Client-Geheimnis aus der Konfiguration Ihres OpenID Connect-Servers in das Feld „Client-Geheimnis“ ein.
- Geben Sie die Autorisierungs-URL, die zur Authentifizierung von Benutzern bei Ihrem OpenID Connect-Server verwendet wird, in das Feld „Autorisierungs-URL“ ein.
- Geben Sie die Token-URL, die zur Authentifizierung von Benutzern bei Ihrem OpenID Connect-Server verwendet wird, in das Feld „Token-URL“ ein.
- Geben Sie im Feld „Weiterleitungs-URL“ die URL ein, über die der Identitätsanbieter Benutzer nach erfolgreicher Authentifizierung zurück zum GO-Global-Host weiterleiten muss. Dies sollte dieselbe Basis-URL sein, über die Benutzer auf den GO-Global-Host zugreifen, wobei am Ende „callback.html“ angehängt wird. Wenn Sie beispielsweise einen separaten Webserver wie IIS verwenden und TLS nicht aktiviert ist, lautet die Callback-URL http://hostname/goglobal/callback.html. Wenn Sie hingegen den integrierten Webserver von GO-Global verwenden, TLS nicht aktiviert ist und GO-Global so konfiguriert ist, dass es Verbindungen auf seinem Standardport 491 akzeptiert, lautet die Callback-URL http://hostname:491/callback.html.
- Klicken Sie auf „OK“.
Zuordnung von Active Directory-Benutzern zu Identitätsanbieter-Konten
GO-Global bietet mehrere Möglichkeiten, den UPN eines Benutzers aus den Claims eines OIDC-ID-Tokens abzuleiten. Benutzerkonten müssen in Active Directory (AD) und beim Identitätsanbieter auf eine von drei Arten übereinstimmen.
Es gibt drei Möglichkeiten, dies zu erreichen:
- Der native User Principal Name (UPN) des Benutzers stimmt bereits mit , dem Benutzernamen des Identitätsanbieters, überein. Beispielsweise lautet die lokale AD-Domäne example.com und die Domäne des Identitätsanbieters ebenfalls example.com. Standardmäßig sucht GO-Global in dieser Reihenfolge in den Feldern „email“, „UPN“, „sub“ und „userid“ des ID-Tokens nach einem gültigen UPN. Alternativ können Administratoren den Anspruch, der den UPN enthält, über die Eigenschaft „OpenIDConnectUserNameField“ in der Datei „HostProperties.xml“ angeben.
- Fügen Sie ein UPN-Suffix hinzu und verwenden Sie dieses für AD-Benutzernamen, damit die AD-UPNs und die UPNs des Identitätsanbieters übereinstimmen. Die lokale AD-Domäne lautet beispielsweise „company.local“, aber fügen Sie für Benutzer ein UPN-Suffix namens „example.com“ hinzu. Die Domäne des Identitätsanbieters lautet ebenfalls „example.com“.
- Stellen Sie das AD-E-Mail-Attribut des Benutzers so ein, dass es mit dem UPN des Identitätsanbieters übereinstimmt, und ändern Sie eine Einstellung in der Datei „HostProperties.xml“. In einigen Bereitstellungen enthält das ID-Token keinen Claim, der mit dem AD-UPN des Benutzers übereinstimmt. Beispielsweise stimmt in einer Hosting-Umgebung, in der der Identitätsanbieter des Kunden verwendet wird, die Domäne des Kunden (z. B. customercompany.com) nicht mit der AD-Domäne der Hosting-Umgebung (z. B. hostedapp.com) überein. Da der Identitätsanbieter des Kunden verwendet wird, können Administratoren der Hosting-Umgebung den OIDC-ID-Tokens der Benutzer keinen Claim hinzufügen, der den AD-UPN angibt.
In solchen Situationen können Administratoren GO-Global so konfigurieren, dass die AD-UPN des Benutzers über dessen E-Mail-Adresse ermittelt wird. Dies wird erreicht, indem der Wert der Eigenschaft „OpenIDConnectUserLookupByEmail“ in der Datei „HostProperties.xml“ auf allen betroffenen Hosts auf „true“ gesetzt wird. Wenn diese Eigenschaft auf „true“ gesetzt ist, durchsucht GO-Global das Active Directory nach einem Benutzerkonto mit einem E-Mail-Attribut, das mit dem E-Mail-Claim des OIDC-ID-Tokens übereinstimmt.
Speichern von Benutzernamen in alternativen Feldern
Standardmäßig bezieht GO-Global den Windows-Benutzernamen aus dem vom Identitätsanbieter im OpenID Connect-ID-Token des Benutzers angegebenen User Principal Name oder der E-Mail-Adresse. Ist der Identitätsanbieter jedoch so konfiguriert, dass er den Windows-Benutzernamen des Benutzers in einem anderen Feld speichert, können Administratoren GO-Global so konfigurieren, dass dieses alternative Feld verwendet wird, indem sie den Namen des Feldes in die Eigenschaft „OpenIDConnectUserNameField“ in der Datei „HostProperties.xml“ eingeben.
So legen Sie die Eigenschaft „OpenIDConnectUserNameField“ fest
- Beenden Sie den Anwendungsveröffentlichungsdienst.
- Öffnen Sie die Datei „%PROGRAMDATA%\GraphOn\GO-Global\HostProperties.xml“ in einem Texteditor.
- Suchen Sie die Eigenschaft „OpenIDConnectUserNameField“ und ändern Sie den Wert in den Namen des Claims im OpenID-Connect-Token des Benutzers, der den User Principal Name enthält, den GO-Global zur Authentifizierung des Benutzers unter Windows verwenden soll.
- Speichern Sie die Datei „HostProperties.xml“.
- Starten Sie den Anwendungsbereitstellungsdienst neu.
Wenn die Option „Benutzer automatisch bei lokalen Windows-Konten anmelden“ aktiviert ist, werden die Namen lokaler Benutzerkonten aus dem User Principal Name oder der E-Mail-Adresse generiert, die bei der OpenID Connect-Authentifizierung ermittelt wurden. Da lokale Konten keine Zeichen wie „@“ oder „.“ enthalten dürfen, werden diese durch „_“ bzw. „-“ ersetzt. So würde beispielsweise die E-Mail-Adresse sales@graphon.com zu sales_graphon-com generiert werden.
Hinweis: Windows begrenzt die Länge lokaler Kontonamen auf 20 Zeichen. Wenn der generierte Kontoname länger als 20 Zeichen ist, kürzt GO-Global den Namen auf 20 Zeichen
Die Passwörter für diese Konten bestehen aus Zeichen, die zufällig aus Kleinbuchstaben, Großbuchstaben, Zahlen und den Sonderzeichen !@#$%& ausgewählt werden. Die Länge des von GO-Global generierten Passworts entspricht der für Benutzer auf dem Computer festgelegten Mindestpasswortlänge, es sei denn, diese beträgt weniger als 7 Zeichen. In diesem Fall generiert GO-Global ein Passwort, das 14 Zeichen länger ist als die geforderte Mindestlänge. Wenn die Mindestlänge für Passwörter auf dem Computer beispielsweise 6 beträgt, generiert GO-Global ein Passwort mit einer Länge von 20 Zeichen im folgenden Format: 8tw@m4b9Dek#vR76@t6%. Wenn GO-Global die Mindestlänge für Passwörter auf dem Computer nicht ermitteln kann, generiert es ein Passwort mit einer Länge von 14 Zeichen.
Wenn die Mindestlänge über Gruppenrichtlinien festgelegt wird, aktivieren Sie die Gruppenrichtlinien auf der Registerkarte „Sitzungsstart“ des Dialogfelds „Host-Optionen “. Diese Passwörter werden nicht gespeichert oder wiederverwendet. Das Passwort wird bei jeder OpenID Connect-Authentifizierung geändert.
Berechtigungen für Windows-Anwendungen, die in GO-Global-Sitzungen gehostet werden, werden nicht von Identitätsanbietern wie Okta oder ADFS verwaltet. Sie werden in Windows oder Active Directory verwaltet.
Die Integration mit Active Directory ist eine Funktion des Identitätsanbieters. Active Directory Federated Services (ADFS) ist automatisch in Active Directory integriert. Andere Identitätsanbieter bieten ihre eigenen Integrationen an. Organisationen, die einen Identitätsanbieter nutzen, haben dies bereits konfiguriert. Organisationen, die dies gerade erst einrichten, müssen die Dokumentation ihres Identitätsanbieters konsultieren, um zu erfahren, wie dies einzurichten ist.
Weitere Informationen zu Okta finden Sie unter: https://help.okta.com/en/prod/Content/Topics/Directory/ad-agent-main.htm.
Wenn Sie Azure verwenden, stellen Sie sicher, dass Sie die URLs für den OAuth 2.0-Autorisierungsendpunkt (v1) und den OAuth 2.0-Token-Endpunkt (v1) verwenden. Die Endpunkt-URLs der Version 2 funktionieren nicht.
Wenn Sie ADFS verwenden, wählen Sie bei der Erstellung der OIDC-Anwendung die Option „Serveranwendung“ aus.
Standardbenutzern die Rechte zum Starten und Aktivieren von COM-Objekten gewähren
Standardmäßig gewährt Windows Standardbenutzern, die sich nicht interaktiv durch Eingabe eines Benutzernamens und eines Kennworts bei Windows angemeldet haben, nicht das Recht, COM-Objekte zu starten und zu aktivieren. Infolgedessen funktionieren Anwendungen wie der Windows-Datei-Explorer, die auf COM-Schnittstellen basieren, bei Verwendung der OpenID Connect-Authentifizierung möglicherweise nur für Benutzer, die Mitglieder der Gruppe „Administratoren“ sind. Wenn die OIDC-Authentifizierung aktiviert ist, gewähren Sie Standardbenutzern daher wie folgt die COM-Rechte zum Starten und Aktivieren:
- Führen Sie „dcomcnfg.“ aus.
- Navigieren Sie zu „Komponentendienste“ | „Computer“ | „Arbeitsplatz“.
- Klicken Sie mit der rechten Maustaste auf „Arbeitsplatz“ und wählen Sie „Eigenschaften“.
- Wählen Sie die Registerkarte „COM-Sicherheit“ aus.
- Klicken Sie unter „Start- und Aktivierungsberechtigungen“ auf die Schaltfläche „Standard bearbeiten... “.
- Klicken Sie auf die Schaltfläche „Hinzufügen “. (Hinweis: Die Standardberechtigungen gewähren den Gruppen „INTERACTIVE“ und „Administrators“ volle Rechte. Deshalb funktioniert dies für alle Benutzer, die sich über Benutzername und Passwort authentifizieren (INTERACTIVE-Benutzer), sowie für Mitglieder der Gruppe „Administrators“, wenn OIDC verwendet wird.
- Fügen Sie die Gruppe „Domänenbenutzer“ hinzu.
- Aktivieren Sie die Kontrollkästchen neben „Lokaler Start “ und „Lokale Aktivierung“.
- Klicken Sie auf „OK“.
- Klicken Sie auf „OK“.
Programmgesteuertes Abrufen des OIDC-ID-Tokens und des Zugriffstokens
Manchmal ist es für Anwendungen, die in einer GO-Global-Sitzung ausgeführt werden, hilfreich, die Claims aus dem OIDC-ID-Token und/oder dem Zugriffstoken abrufen zu können, die vom Identitätsanbieter bereitgestellt werden, wenn der Benutzer authentifiziert wird. Ist dies erforderlich, können Anwendungsentwickler ihren Anwendungen Code hinzufügen, um diese Token abzurufen.
Um das OIDC-ID-Token und das Zugriffstoken programmgesteuert abzurufen, muss der Code Folgendes tun:
- Rufe mit einem Aufruf von GetModuleHandle() einen Handle für redirector.dll ab
- Ermitteln Sie die Prozeduradressen von zwei exportierten Funktionen mithilfe von Aufrufen von `GetProcAddress()` für „GetOpenIDConnectIDToken“ und „GetOpenIDConnectAccessToken“
- Rufe diese beiden Prozeduradressen mit den Parametern 0 und NULL auf, um die Länge des benötigten Zeichenpuffers zu ermitteln
- den Zeichenpuffer zuweisen
- Rufe diese beiden Funktionen erneut auf, um die eigentlichen Token zu erhalten
Beispielcode:
/**
* File: GetOidcIdAndAccessTokens.cpp
*
* Copyright 2025 by GraphOn Corporation
* All rights reserved.
*
* This software is the confidential and proprietary information
* of GraphOn Corporation ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with GraphOn.
*/
#include <Windows.h>
#include <stdio.h>
int main()
{
printf ("GetOidcIdAndAccessTokens\n");
HMODULE hRedirector = ::GetModuleHandleA ("redirector.dll");
if (hRedirector)
{
typedef unsigned int (WINAPI* fnGetOpenIDConnectToken)(unsigned int, char*);
fnGetOpenIDConnectToken pfnGetOpenIDConnectIDToken = (fnGetOpenIDConnectToken)::GetProcAddress (hRedirector, "GetOpenIDConnectIDToken");
if (pfnGetOpenIDConnectIDToken)
{
unsigned int length = pfnGetOpenIDConnectIDToken (0, NULL);
if (length)
{
printf ("GetOpenIDConnectIDToken(1) returned OIDC ID token length %d.\n", length);
char* oidcCustomClaims = NULL;
try { oidcCustomClaims = new char[length]; }
catch (...) {}
if (oidcCustomClaims)
{
length = pfnGetOpenIDConnectIDToken (length, oidcCustomClaims);
if (length)
{
printf ("GetOpenIDConnectIDToken(2) returned OIDC ID token length %d.\n", length);
printf ("GetOpenIDConnectIDToken(2) returned OIDC ID token %hs.\n", oidcCustomClaims);
}
else
printf ("ERROR GetOpenIDConnectIDToken(2) returned OIDC ID token length %d\n", length);
}
else
printf ("ERROR Failed to allocate ID token string length %d\n", length);
}
else
printf ("ERROR GetOpenIDConnectIDToken(1) returned OIDC ID token length %d\n", length);
}
else
printf ("ERROR ::GetProcAddress (hRedirector, \"GetOpenIDConnectIDToken\") failed!\n");
fnGetOpenIDConnectToken pfnGetOpenIDConnectAccessToken = (fnGetOpenIDConnectToken)::GetProcAddress (hRedirector, "GetOpenIDConnectAccessToken");
if (pfnGetOpenIDConnectAccessToken)
{
unsigned int length = pfnGetOpenIDConnectAccessToken (0, NULL);
if (length)
{
printf ("GetOpenIDConnectAccessToken(1) returned OIDC access token length %d.\n", length);
char* oidcCustomClaims = NULL;
try { oidcCustomClaims = new char[length]; }
catch (...) {}
if (oidcCustomClaims)
{
length = pfnGetOpenIDConnectAccessToken (length, oidcCustomClaims);
if (length)
{
printf ("GetOpenIDConnectAccessToken(2) returned OIDC access token length %d.\n", length);
printf ("GetOpenIDConnectAccessToken(2) returned OIDC access token %hs.\n", oidcCustomClaims);
}
else
printf ("ERROR GetOpenIDConnectAccessToken(2) returned OIDC access token length %d\n", length);
}
else
printf ("ERROR Failed to allocate access token string length %d\n", length);
}
else
printf ("ERROR GetOpenIDConnectAccessToken(1) returned OIDC access token length %d\n", length);
}
else
printf ("ERROR ::GetProcAddress (hRedirector, \"GetOpenIDConnectAccessToken\") failed!\n");
}
else
printf ("ERROR ::GetModuleHandle (\"redirector.dll\") failed!\n");
printf ("\nPress Enter to exit.\n");
::getchar ();
}
So führen Sie die Testanwendungen „GetOidcIdAndAccessTokens“ aus
- Laden Sie die Datei „GetOidcIdAndAccessTokens.zip“ vonhttps://cdn.graphon.com/portal_resources/Downloads/GetOidcIdAndAccessTokens.zip herunter und entpacken Sie sie auf einem GO-Global-Host, auf dem die OpenID-Connect-Authentifizierung aktiviert ist.
- Registrieren Sie die beiden Testanwendungen „GetOidcIdAndAccessTokens_32bit.exe“ und „GetOidcIdAndAccessTokens_64bit.exe“ bei GO-Global.
- Starten Sie eine GO-Global-Sitzung.
- Führen Sie die Test-Apps in der GO-Global-Sitzung aus. Das OpenID Connect-ID-Token und das Zugriffstoken werden in einem Konsolenfenster angezeigt.
Schlussfolgerung
Die Implementierung der OpenID Connect-Authentifizierung in GO-Global bietet Administratoren leistungsstarke Werkzeuge, um das Identitätsmanagement zu vereinheitlichen, die Benutzerfreundlichkeit zu verbessern und die Sicherheit in allen gehosteten Anwendungen zu erhöhen. Durch die Wahl des geeigneten Anmeldeworkflows, die Sicherstellung, dass OIDC-Claims mit Active Directory übereinstimmen, und die Anwendung der erforderlichen Windows-Berechtigungen können Unternehmen ein nahtloses Authentifizierungserlebnis sowohl für lokale als auch für domänenbasierte Umgebungen schaffen. Mit der Möglichkeit, die Handhabung von Benutzernamen anzupassen und programmgesteuert auf OIDC-Token zuzugreifen, unterstützt GO-Global auch anspruchsvollere Anwendungsanforderungen. Zusammen bieten diese Funktionen Administratoren die Flexibilität, moderne Identitätslösungen zu integrieren und gleichzeitig die volle Kompatibilität mit den Anforderungen der Windows-Authentifizierung zu gewährleisten.
Sind Sie ein ISV, der sich mit der Bereitstellung von Cloud-basierten Anwendungen beschäftigt? Setzen Sie sich mit uns in Verbindung, um zu erfahren, wie GO-Global Ihnen helfen kann, den Software-Zugang für Ihre Endbenutzer zu optimieren. Oder laden Sie eine kostenlose Testversion herunter, um es selbst zu testen.

