OpenID Connect-authenticatie
OpenID Connect (OIDC) biedt organisaties een moderne, veilige manier om gebruikers te authenticeren en tegelijkertijd de toegang tot door GO-Global gehoste Windows-toepassingen te stroomlijnen. Door te integreren met identiteitsproviders zoals Okta, Azure AD of ADFS kunnen beheerders de authenticatie centraliseren en de aanmeldingservaring voor gebruikers verbeteren – of gebruikers zich nu aanmelden met lokale Windows-accounts, domeinaccounts of beide. In deze handleiding wordt uitgelegd hoe u OIDC-authenticatie in GO-Global inschakelt, automatische Windows-aanmeldingen configureert, accounts van identiteitsproviders koppelt aan Active Directory-gebruikers en aanvullende instellingen beheert die nodig zijn voor naadloze toegang. Ook worden geavanceerde opties behandeld, zoals het aanpassen van gebruikersnaamvelden, het aanmaken van lokale accounts, het configureren van machtigingen en het programmatisch ophalen van OIDC-tokens.
Nadat een gebruiker zich via OIDC heeft geauthenticeerd, biedt GO-Global beheerders verschillende mogelijkheden om de gebruiker automatisch in te loggen op Windows. Als de identiteitsprovider bijvoorbeeld is geïntegreerd met de Active Directory van de organisatie, kan GO-Global de gebruiker automatisch aanmelden bij zijn domeinaccount. Als integratie met Active Directory daarentegen niet nodig of gewenst is, kan GO-Global een lokaal Windows-account voor de gebruiker aanmaken en de gebruiker automatisch bij dat account aanmelden. Ondersteuning voor Single Sign-On is een optionele add-on. OpenID Connect-authenticatie wordt grijs weergegeven (uitgeschakeld) tenzij de functie is aangeschaft.
OpenID Connect-verificatie inschakelen
- Klik op Extra | Hostopties.
- Klik op het tabblad 'Authenticatie '.
- Schakel OpenID Connect-verificatie in.
- Kies een van de volgende opties, of geen van beide:
- Gebruikers automatisch aanmelden bij lokale Windows-accounts. Wanneer deze optie is ingeschakeld, maakt GO-Global automatisch een lokaal gebruikersaccount aan voor gebruikers die geen domeinaccount hebben.
- Gebruikers automatisch aanmelden bij hun domeinaccounts. Wanneer deze optie is ingeschakeld, probeert GO-Global een S4U-aanmelding uit te voeren met behulp van de UPN van de gebruiker, die het na een succesvolle OpenID Connect-aanmelding van de OIDC-identiteitsprovider ontvangt. Op zichzelf geeft een S4U-aanmelding gebruikers toegang tot bronnen op de GO-Global Host, maar kunnen gebruikers zich niet authenticeren bij diensten die op het netwerk draaien. Om toegang te krijgen tot diensten die op het netwerk draaien, moeten beheerders ofwel beperkte delegatie inschakelen (zoals beschreven in de Configuratievereisten voor ondersteuning van delegatie (artikel) of de Optie 'Wachtwoorden op de host opslaan'.
- Als een applicatie die door GO-Global wordt gehost, kan draaien onder een lokaal account op de GO-Global Host, moet de optie ‘Gebruikers automatisch aanmelden bij lokale Windows-accounts’ worden geselecteerd. Als de applicatie daarentegen toegang vereist tot bronnen die door Active Directory worden beheerd, moet de optie ‘Gebruikers automatisch aanmelden bij hun domeinaccounts’ worden geselecteerd. In dat laatste geval moet de identiteitsprovider zijn geïntegreerd met Active Directory, zodat deze GO-Global de UPN van de gebruiker kan verstrekken.
- Als noch de optie 'Gebruikers automatisch aanmelden bij lokale Windows-accounts' noch de optie 'Gebruikers automatisch aanmelden bij hun domeinaccounts' is geselecteerd, wordt gebruikers gevraagd zich aan te melden bij Windows volgens de instellingen van de andere opties op het tabblad 'Verificatie'. Als bijvoorbeeld zowel OpenID Connect-verificatie als Standaardverificatie is ingeschakeld, wordt gebruikers gevraagd zich twee keer aan te melden. Eerst wordt hen gevraagd zich aan te melden bij de OpenID Connect-identiteitsprovider. Nadat ze zich met succes hebben geauthenticeerd bij de OpenID Connect-identiteitsprovider, wordt hen gevraagd de gebruikersnaam en het wachtwoord van een Windows-account in te voeren.
- Als een applicatie die door GO-Global wordt gehost, kan draaien onder een lokaal account op de GO-Global Host, moet de optie ‘Gebruikers automatisch aanmelden bij lokale Windows-accounts’ worden geselecteerd. Als de applicatie daarentegen toegang vereist tot bronnen die door Active Directory worden beheerd, moet de optie ‘Gebruikers automatisch aanmelden bij hun domeinaccounts’ worden geselecteerd. In dat laatste geval moet de identiteitsprovider zijn geïntegreerd met Active Directory, zodat deze GO-Global de UPN van de gebruiker kan verstrekken.
- Typ de Client ID-reeks uit de configuratie van uw OpenID Connect-server in het veld Client ID .
- Typ de tekenreeks met het clientgeheim uit de configuratie van uw OpenID Connect-server in het veld ‘Clientgeheim ’.
- Voer de autorisatie-URL in die wordt gebruikt om gebruikers te authenticeren bij uw OpenID Connect-server in het veld 'Autorisatie-URL '.
- Voer de token-URL in die wordt gebruikt om gebruikers te authenticeren bij uw OpenID Connect-server in het veld 'Token-URL '.
- Typ in het veld ‘Omleidings-URL’ de URL die de identiteitsprovider moet gebruiken om gebruikers terug te leiden naar de GO-Global Host nadat ze zich met succes hebben geauthenticeerd. Dit moet dezelfde basis-URL zijn die gebruikers gebruiken om toegang te krijgen tot de GO-Global Host, met ‘callback.html’ aan het einde toegevoegd. Als u bijvoorbeeld een aparte webserver zoals IIS gebruikt en TLS niet is ingeschakeld, is de callback-URL http://hostname/goglobal/callback.html. Als u daarentegen de geïntegreerde webserver van GO-Global gebruikt en TLS is niet ingeschakeld en GO-Global is geconfigureerd om verbindingen te accepteren op de standaardpoort, 491, dan is de callback-URL http://hostname:491/callback.html.
- Klik op OK.
Active Directory-gebruikers koppelen aan accounts bij de identiteitsprovider
GO-Global biedt verschillende mogelijkheden om de UPN van een gebruiker af te leiden uit claims in een OIDC-ID-token. Gebruikersaccounts moeten op een van de volgende drie manieren overeenkomen in Active Directory (AD) en bij de identiteitsprovider.
Dit kan op drie manieren worden bereikt:
- De oorspronkelijke User Principal Name (UPN) van de gebruiker komt al overeen met , de gebruikersnaam van de identiteitsprovider. Het lokale AD-domein is bijvoorbeeld example.com en het domein van de identiteitsprovider is eveneens example.com. Standaard zoekt GO-Global naar een geldige UPN in de velden e-mail, UPN, sub en userid van het ID-token, in die volgorde. Als alternatief kunnen beheerders de claim specificeren die de UPN bevat via de eigenschap OpenIDConnectUserNameField in HostProperties.xml.
- Voeg een UPN-achtervoegsel toe en gebruik dat voor AD-gebruikersnamen, zodat de AD-UPN en de UPN’s van de identiteitsprovider met elkaar overeenkomen. Het lokale AD-domein is bijvoorbeeld company.local, maar voeg een UPN-achtervoegsel toe voor gebruikers met de naam example.com. Het domein van de identiteitsprovider is ook example.com.
- Stel het AD-e-mailattribuut van de gebruiker zo in dat het overeenkomt met de UPN van de identiteitsprovider en pas een instelling in HostProperties.xml aan. In sommige implementaties bevat het ID-token geen claim die overeenkomt met de AD-UPN van de gebruiker. In een hostingomgeving waar de identiteitsprovider van de klant wordt gebruikt, komt het domein van de klant (bijv. customercompany.com) bijvoorbeeld niet overeen met het AD-domein van de hostingomgeving (bijv. hostedapp.com). Aangezien de identiteitsprovider van de klant wordt gebruikt, kunnen beheerders van de hostingomgeving geen claim toevoegen aan de OIDC-ID-tokens van gebruikers waarin de AD-UPN wordt gespecificeerd.
In dergelijke situaties kunnen beheerders GO-Global configureren om de AD UPN van de gebruiker op te zoeken via het e-mailadres van de gebruiker. Dit wordt bereikt door de waarde van de eigenschap OpenIDConnectUserLookupByEmail in HostProperties.xml op alle toepasselijke hosts in te stellen op true. Wanneer deze eigenschap is ingesteld op true, doorzoekt GO-Global de Active Directory naar een gebruikersaccount met een e-mailattribuut dat overeenkomt met de e-mailclaim van het OIDC-ID-token.
Gebruikersnamen opslaan in alternatieve velden
Standaard haalt GO-Global de Windows-gebruikersnaam op uit de User Principal Name of het e-mailadres dat door de identiteitsprovider is opgegeven in het OpenID Connect-ID-token van de gebruiker. Als de identiteitsprovider echter is geconfigureerd om de Windows-gebruikersnaam van de gebruiker in een ander veld op te slaan, kunnen beheerders GO-Global zo instellen dat het dit alternatieve veld gebruikt door de naam van het veld in te voeren in de eigenschap ` OpenIDConnectUserNameField` in het bestand `HostProperties.xml`.
De eigenschap OpenIDConnectUserNameField instellen
- Stop de Application Publishing Service.
- Open %PROGRAMDATA%\GraphOn\GO-Global\HostProperties.xml in een teksteditor.
- Zoek de eigenschap ` OpenIDConnectUserNameField ` en wijzig de waarde in de naam van de claim in het OpenID Connect-token van de gebruiker die de User Principal Name bevat die GO-Global moet gebruiken om de gebruiker op Windows te authenticeren.
- Sla het bestand HostProperties.xml op.
- Start de Application Publishing Service opnieuw op.
Wanneer de optie 'Gebruikers automatisch aanmelden bij lokale Windows-accounts' is ingeschakeld, worden de namen van lokale gebruikersaccounts samengesteld op basis van de User Principal Name of het e-mailadres dat is verkregen via de OpenID Connect-authenticatie. Aangezien lokale accounts geen '@' of '.' mogen bevatten, worden deze respectievelijk vervangen door '_' en '-'. Het e-mailadres sales@graphon.com zou bijvoorbeeld worden samengesteld tot sales_graphon-com.
Opmerking: Windows hanteert een limiet van 20 tekens voor lokale accountnamen. Als de gegenereerde accountnaam langer is dan 20 tekens, kort GO-Global de naam in tot 20 tekens
Wachtwoorden voor deze accounts bestaan uit tekens die willekeurig worden gekozen uit kleine letters, hoofdletters, cijfers en de speciale tekens!@#$%& . De lengte van het wachtwoord dat GO-Global genereert, komt overeen met de minimale wachtwoordlengte die voor gebruikers op de computer is ingesteld, tenzij deze minimale lengte minder dan 7 is. In dat geval genereert GO-Global een wachtwoord dat 14 tekens langer is dan de vereiste minimale lengte. Als de minimale wachtwoordlengte van de computer bijvoorbeeld 6 is, genereert GO-Global een wachtwoord van 20 tekens, in de volgende indeling: 8tw@m4b9Dek#vR76@t6%. Als GO-Global de minimale wachtwoordlengte van de computer niet kan achterhalen, genereert het een wachtwoord van 14 tekens.
Als de vereiste minimale lengte is ingesteld via Groepsbeleid, schakel dan Groepsbeleid in op het tabblad Sessiestart van het dialoogvenster Hostopties. Deze wachtwoorden worden niet opgeslagen of hergebruikt. Het wachtwoord wordt bij elke OpenID Connect-authenticatie gewijzigd.
Machtigingen voor Windows-toepassingen die in GO-Global-sessies worden gehost, worden niet beheerd door identiteitsproviders zoals Okta of ADFS. Ze worden beheerd in Windows of Active Directory.
Integratie met Active Directory is een functie van de identiteitsprovider. Active Directory Federated Services (ADFS) wordt automatisch geïntegreerd met Active Directory. Andere identiteitsproviders bieden hun eigen integraties aan. Organisaties die een identiteitsprovider gebruiken, hebben dit al geconfigureerd. Organisaties die dit net aan het opzetten zijn, moeten de documentatie van hun identiteitsprovider raadplegen voor informatie over hoe dit moet worden ingesteld.
Ga voor meer informatie over Okta naar: https://help.okta.com/en/prod/Content/Topics/Directory/ad-agent-main.htm.
Zorg er bij het gebruik van Azure voor dat u de URL's van het OAuth 2.0-autorisatie-eindpunt (v1) en het OAuth 2.0-token-eindpunt (v1) gebruikt. De v2-eindpunt-URL's werken niet.
Selecteer bij het gebruik van ADFS Servertoepassing bij het maken van de OIDC-toepassing.
COM-rechten voor starten en activeren toekennen aan standaardgebruikers
Standaard verleent Windows standaardgebruikers die zich niet interactief bij Windows hebben aangemeld door een gebruikersnaam en wachtwoord in te voeren, geen rechten om COM-objecten te starten en te activeren. Als gevolg hiervan werken toepassingen zoals Windows Verkenner, die gebruikmaken van COM-interfaces, mogelijk alleen correct voor gebruikers die lid zijn van de groep Administrators wanneer OpenID Connect-verificatie wordt gebruikt. Verleen daarom, wanneer OIDC-verificatie is ingeschakeld, standaardgebruikers de COM-rechten voor starten en activeren als volgt:
- Voer dcomcnfg uit.
- Ga naar Component Services | Computers | Deze computer.
- Klik met de rechtermuisknop op „Deze computer “ en klik op „Eigenschappen“.
- Selecteer het tabblad COM-beveiliging.
- Klik onder 'Rechten voor lancering en activering' op de knop 'Standaard bewerken... '.
- Klik op de knop Toevoegen . (Opmerking: De standaardmachtigingen verlenen volledige rechten aan de groepen INTERACTIVE en Administrators. Daarom werkt dit voor alle gebruikers die zich via een gebruikersnaam en wachtwoord authenticeren (INTERACTIVE-gebruikers) en voor leden van de groep Administrators wanneer OIDC wordt gebruikt.
- Voeg de groep 'Domeingebruikers' toe.
- Vink de selectievakjes ‘Toestaan ’ aan naast ‘Lokaal starten ’ en ‘Lokale activering’.
- Klik op OK.
- Klik op OK.
Het OIDC-ID-token en het toegangstoken programmatisch ophalen
Soms is het handig als applicaties die in een GO-Global-sessie draaien, de claims kunnen ophalen uit het OIDC-ID-token en/of toegangstoken die door de identiteitsprovider worden verstrekt wanneer de gebruiker wordt geauthenticeerd. Wanneer dit nodig is, kunnen applicatieontwikkelaars code aan hun applicaties toevoegen om deze tokens op te halen.
Om het OIDC-ID-token en het toegangstoken programmatisch op te halen, moet de code:
- verkrijg een HANDLE naar redirector.dll door GetModuleHandle() aan te roepen
- het adres van de procedure ophalen voor twee geëxporteerde functies met aanroepen van GetProcAddress() voor „GetOpenIDConnectIDToken“ en „GetOpenIDConnectAccessToken“
- roep die twee procedureadressen aan met de parameters 0 en NULL om de lengte van de benodigde tekenreeksbuffer te bepalen
- de tekenreeksbuffer toewijzen
- roep die twee functies nogmaals aan om de daadwerkelijke tokens op te halen
Voorbeeldcode:
/**
* 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 ();
}
Om de GetOidcIdAndAccessTokens-testtoepassingen uit te voeren
- Download het bestand GetOidcIdAndAccessTokens.zip van https://cdn.graphon.com/portal_resources/Downloads/GetOidcIdAndAccessTokens.zip en pak het uit op een GO-Global-host waarop OpenID Connect-verificatie is ingeschakeld.
- Registreer de twee testapps GetOidcIdAndAccessTokens_32bit.exe en GetOidcIdAndAccessTokens_64bit.exe bij GO-Global.
- Start een GO-Global-sessie.
- Voer de testapps uit in de GO-Global-sessie. Het OpenID Connect-ID-token en het toegangstoken worden weergegeven in een consolevenster.
Conclusie
Door OpenID Connect-authenticatie in GO-Global te implementeren, krijgen beheerders krachtige tools in handen om identiteitsbeheer te stroomlijnen, de gebruikerservaring te verbeteren en de beveiliging van alle gehoste applicaties te versterken. Door de juiste aanmeldingsworkflow te kiezen, ervoor te zorgen dat OIDC-claims aansluiten bij Active Directory en de vereiste Windows-machtigingen toe te passen, kunnen organisaties een naadloze authenticatie-ervaring creëren voor zowel lokale als domeingebaseerde omgevingen. Met de mogelijkheid om de verwerking van gebruikersnamen aan te passen en programmatisch toegang te krijgen tot OIDC-tokens, ondersteunt GO-Global ook meer geavanceerde applicatiebehoeften. Samen bieden deze mogelijkheden beheerders de flexibiliteit om moderne identiteitsoplossingen te integreren met behoud van volledige compatibiliteit met de authenticatievereisten van Windows.
Bent u een ISV die de levering van toepassingen in de cloud onderzoekt? Neem contact met ons op om te ontdekken hoe GO-Global u kan helpen de toegang tot software voor uw eindgebruikers te stroomlijnen. Of download een gratis proefversie om het zelf te testen.

