OpenID Connect-godkendelse
OpenID Connect (OIDC) giver organisationer en moderne og sikker måde at godkende brugere på, samtidig med at adgangen til Windows-applikationer, der hostes af GO-Global, strømlines. Ved at integrere med identitetsudbydere som Okta, Azure AD eller ADFS kan administratorer centralisere godkendelsen og forbedre brugerens log-in-oplevelse – uanset om brugerne logger ind med lokale Windows-konti, domænekonti eller begge dele. Denne vejledning forklarer, hvordan man aktiverer OIDC-godkendelse i GO-Global, konfigurerer automatisk Windows-login, matcher identitetsudbyderkonti med Active Directory-brugere og administrerer yderligere indstillinger, der kræves for problemfri adgang. Den dækker også avancerede muligheder såsom tilpasning af brugernavnsfelter, håndtering af oprettelse af lokale konti, konfiguration af tilladelser og hentning af OIDC-tokens programmatisk.
Når en bruger har godkendt sig via OIDC, giver GO-Global administratorer flere muligheder for automatisk at godkende brugeren i Windows. Hvis identitetsudbyderen f.eks. er integreret med organisationens Active Directory, kan GO-Global automatisk logge brugeren ind på brugerens domænekonto. Hvis integration med Active Directory derimod ikke er påkrævet eller ønsket, kan GO-Global oprette en lokal Windows-konto til brugeren og automatisk logge brugeren ind på denne konto. Understøttelse af Single Sign-On er en tilvalgsmulighed. OpenID Connect-godkendelse vil være nedtonet (deaktiveret), medmindre funktionen er købt.
Sådan aktiveres OpenID Connect-godkendelse
- Klik på Værktøjer | Værtsindstillinger.
- Klik på fanen »Godkendelse «.
- Aktivér OpenID Connect-godkendelse.
- Vælg én af følgende muligheder eller ingen af dem:
- Log brugere automatisk ind på lokale Windows-konti. Når denne funktion er aktiveret, opretter GO-Global automatisk en lokal brugerkonto til brugere, der ikke har en domænekonto.
- Log brugerne automatisk ind på deres domænekonti. Når denne funktion er aktiveret, forsøger GO-Global at foretage en S4U-login ved hjælp af brugerens UPN, som hentes fra OIDC-identitetsudbyderen efter en vellykket OpenID Connect-login. En S4U-login giver i sig selv brugerne adgang til ressourcer på GO-Global-værten, men brugerne vil ikke kunne godkende sig over for tjenester, der kører på netværket. For at få adgang til tjenester, der kører på netværket, skal administratorer enten aktivere begrænset delegation (som beskrevet i Konfigurationskrav til understøttelse af delegering artikel) eller aktivere Indstilling for cachelagring af adgangskoder på værten.
- Hvis et program, der hostes af GO-Global, kan køre under en lokal konto på GO-Global-hostet, skal indstillingen »Log brugere automatisk ind på lokale Windows-konti« vælges. Hvis programmet derimod kræver adgang til ressourcer, der administreres af Active Directory, skal indstillingen »Log brugere automatisk ind på deres domænekonti« vælges. I sidstnævnte tilfælde skal identitetsudbyderen være integreret med Active Directory, så den kan levere brugerens UPN til GO-Global.
- Hvis hverken »Log brugere automatisk ind på lokale Windows-konti« eller »Log brugere automatisk ind på deres domænekonti« er valgt, bliver brugerne bedt om at logge ind på Windows som angivet i de øvrige indstillinger under fanen »Godkendelse«. Hvis f.eks. både OpenID Connect-godkendelse og standardgodkendelse er aktiveret, bliver brugerne bedt om at logge ind to gange. Først bliver de bedt om at logge ind på OpenID Connect-identitetsudbyderen. Når de er blevet godkendt hos OpenID Connect-identitetsudbyderen, bliver de bedt om at indtaste brugernavn og adgangskode til en Windows-konto.
- Hvis et program, der hostes af GO-Global, kan køre under en lokal konto på GO-Global-hostet, skal indstillingen »Log brugere automatisk ind på lokale Windows-konti« vælges. Hvis programmet derimod kræver adgang til ressourcer, der administreres af Active Directory, skal indstillingen »Log brugere automatisk ind på deres domænekonti« vælges. I sidstnævnte tilfælde skal identitetsudbyderen være integreret med Active Directory, så den kan levere brugerens UPN til GO-Global.
- Indtast den Client ID-streng, der fremgår af konfigurationen af din OpenID Connect-server, i feltet Client ID .
- Indtast den hemmelige nøgle fra din OpenID Connect-serverkonfiguration i feltet »Client Secret «.
- Indtast den autoriserings-URL, der bruges til at godkende brugere på din OpenID Connect-server, i feltet »Autoriserings-URL «.
- Indtast den token-URL, der bruges til at godkende brugere på din OpenID Connect-server, i feltet »Token-URL «.
- I feltet »Omdirigerings-URL« skal du indtaste den URL, som identitetsudbyderen skal bruge til at omdirigere brugerne tilbage til GO-Global Host, når de er blevet godkendt. Dette skal være den samme basis-URL, som brugerne anvender til at få adgang til GO-Global Host, med callback.html tilføjet i slutningen. Hvis du f.eks. bruger en separat webserver som IIS, og TLS ikke er aktiveret, vil callback-URL'en være http://hostname/goglobal/callback.html. Alternativt, hvis du bruger GO-Globals integrerede webserver, og TLS ikke er aktiveret, og GO-Global er konfigureret til at acceptere forbindelser på sin standardport, 491, vil callback-URL'en være http://hostname:491/callback.html.
- Klik på OK.
Sammenkobling af Active Directory-brugere med identitetsudbyderkonti
GO-Global tilbyder flere muligheder for at udlede en brugers UPN ud fra attributterne i et OIDC-ID-token. Brugerkonti skal stemme overens på en af tre måder i Active Directory (AD) og hos identitetsudbyderen.
Der er tre måder, hvorpå dette kan opnås:
- Brugerens oprindelige User Principal Name (UPN) stemmer allerede overens med , som er brugernavnet hos identitetsudbyderen. For eksempel er det lokale AD-domæne example.com, og identitetsudbyderens domæne er også example.com. Som standard søger GO-Global efter et gyldigt UPN i felterne e-mail, UPN, sub og userid i ID-tokenet, i den rækkefølge. Alternativt kan administratorer angive den påstand, der indeholder UPN'et, via egenskaben OpenIDConnectUserNameField i HostProperties.xml.
- Tilføj et UPN-suffiks, og brug det til AD-brugernavne, så AD-UPN'et og identitetsudbyderens UPN'er stemmer overens. For eksempel er det lokale AD-domæne company.local, men tilføj et UPN-suffiks for brugere, der hedder example.com. Identitetsudbyderens domæne er også example.com.
- Indstil brugerens AD-mailattribut, så det svarer til identitetsudbyderens UPN, og rediger en indstilling i HostProperties.xml. I visse installationer findes der ingen claim i ID-tokenet, der svarer til brugerens AD-UPN. For eksempel vil kundens domæne (f.eks. customercompany.com) i et hostingmiljø, hvor kundens identitetsudbyder anvendes, ikke matche AD-domænet i hostingmiljøet (f.eks. hostedapp.com). Da kundens identitetsudbyder anvendes, vil administratorer af hostingmiljøet ikke kunne tilføje en påstand til brugernes OIDC-ID-tokens, der specificerer AD-UPN'en.
I situationer som denne kan administratorer konfigurere GO-Global til at slå brugerens AD UPN op via brugerens e-mailadresse. Dette opnås ved at indstille værdien af egenskaben OpenIDConnectUserLookupByEmail i HostProperties.xml til true på alle relevante værter. Når denne egenskab er indstillet til true, søger GO-Global i Active Directory efter en brugerkonto med en e-mailattribut, der matcher OIDC-ID-tokenets e-mail-krav.
Lagring af brugernavne i alternative felter
Som standard henter GO-Global Windows-brugernavnet fra det brugerprincipnavn (User Principal Name) eller den e-mailadresse, som identitetsudbyderen har angivet i brugerens OpenID Connect-ID-token. Hvis identitetsudbyderen imidlertid er konfigureret til at gemme brugerens Windows-brugernavn i et andet felt, kan administratorer konfigurere GO-Global til at bruge dette alternative felt ved at indtaste navnet på feltet i egenskaben OpenIDConnectUserNameField i filen HostProperties.xml.
Sådan indstilles egenskaben OpenIDConnectUserNameField
- Stop tjenesten Application Publishing Service.
- Åbn %PROGRAMDATA%\GraphOn\GO-Global\HostProperties.xml i et tekstredigeringsprogram.
- Find egenskaben OpenIDConnectUserNameField, og ændr værdien til navnet på den påstand i brugerens OpenID Connect-token, der indeholder det brugerprincipnavn, som GO-Global skal bruge til at godkende brugeren i Windows.
- Gem filen HostProperties.xml.
- Genstart applikationsudgivelsestjenesten.
Når indstillingen »Log brugere automatisk ind på lokale Windows-konti« er aktiveret, genereres navne på lokale brugerkonti ud fra det primære brugernavn (User Principal Name) eller e-mailadressen, der er hentet fra OpenID Connect-godkendelsen. Da lokale konti ikke må indeholde tegnene '@' eller '.', erstattes disse henholdsvis med '_' og '-'. For eksempel vil e-mailadressen sales@graphon.com blive genereret til sales_graphon-com.
Bemærk: Windows har en begrænsning på 20 tegn for lokale kontonavne. Hvis det syntetiserede kontonavn er længere end 20 tegn, afkorter GO-Global navnet til 20 tegn
Adgangskoder til disse konti består af tegn, der vælges tilfældigt blandt små bogstaver, store bogstaver, tal og specialtegnene !@#$%& . Længden på den adgangskode, som GO-Global genererer, vil svare til den minimumslængde, der er angivet for brugerne på computeren, medmindre minimumslængden er mindre end 7. I så fald genererer GO-Global en adgangskode, der er 14 tegn længere end kravet til minimumslængde. Hvis computerens minimumslængde for adgangskoder f.eks. er 6, genererer GO-Global en adgangskode, der er 20 tegn lang, i følgende format: 8tw@m4b9Dek#vR76@t6%. Hvis GO-Global ikke kan hente computerens minimumslængde for adgangskoder, genererer den en adgangskode, der er 14 tegn lang.
Hvis kravet til minimumslængde er angivet via gruppepolitik, skal du aktivere gruppepolitik under fanen Session Startup i dialogboksen Host Options. Disse adgangskoder gemmes eller genbruges ikke. Adgangskoden ændres ved hver OpenID Connect-godkendelse.
Tilladelser til Windows-applikationer, der hostes i GO-Global-sessioner, administreres ikke af identitetsudbydere som Okta eller ADFS. De administreres i Windows eller Active Directory.
Integration med Active Directory er en funktion hos identitetsudbyderen. Active Directory Federated Services (ADFS) integreres automatisk med Active Directory. Andre identitetsudbydere leverer deres egne integrationer. Organisationer, der bruger en identitetsudbyder, har allerede konfigureret dette. Organisationer, der lige er ved at sætte dette op, skal konsultere deres identitetsudbyders dokumentation for at se, hvordan det skal konfigureres.
For mere information om Okta, besøg: https://help.okta.com/en/prod/Content/Topics/Directory/ad-agent-main.htm.
Når du bruger Azure, skal du sørge for at bruge OAuth 2.0-autorisationsendepunktet (v1) og OAuth 2.0-tokenendepunktet (v1) URL'er. URL'erne til v2-endpointet fungerer ikke.
Når du bruger ADFS, skal du vælge Serverapplikation, når du opretter OIDC-applikationen.
Tildeling af rettigheder til at starte og aktivere COM-komponenter til standardbrugere
Som standard giver Windows ikke standardbrugere, der ikke har logget interaktivt på Windows ved at indtaste et brugernavn og en adgangskode, ret til at starte og aktivere COM-objekter. Det betyder, at programmer som f.eks. Windows Stifinder, der er afhængige af COM-grænseflader, muligvis kun kører eller fungerer korrekt for brugere, der er medlemmer af gruppen Administratorer, når der anvendes OpenID Connect-godkendelse. Når OIDC-godkendelse er aktiveret, skal du derfor tildele standardbrugere rettighederne til at starte og aktivere COM-objekter på følgende måde:
- Kør dcomcnfg.
- Gå til Komponenttjenester | Computere | Denne computer.
- Højreklik på »Denne computer «, og vælg »Egenskaber«.
- Vælg fanen »COM-sikkerhed «.
- Under »Start- og aktiveringsrettigheder« skal du klikke på knappen »Rediger standard... «.
- Klik på knappen »Tilføj «. (Bemærk: Standardtilladelserne giver fulde rettigheder til grupperne INTERACTIVE og Administrators. Derfor fungerer dette for alle brugere, der er godkendt via et brugernavn og en adgangskode (INTERACTIVE-brugere), samt medlemmer af gruppen Administrators, når OIDC anvendes.
- Tilføj gruppen »Domænebrugere «.
- Markér afkrydsningsfelterne ved siden af »Lokal start « og »Lokal aktivering«.
- Klik på OK.
- Klik på OK.
Programmatisk hentning af OIDC-ID-token og adgangstoken
Nogle gange kan det være nyttigt for applikationer, der kører i en GO-Global-session, at kunne hente de påstande, der er indeholdt i OIDC-ID-tokenet og/eller adgangstokenet, som identitetsudbyderen udsteder, når brugeren autentificeres. Når dette er nødvendigt, kan applikationsudviklere tilføje kode til deres applikationer for at hente disse tokener.
For programmatisk at hente OIDC-ID-tokenet og adgangstokenet skal koden:
- Hent et HANDLE til redirector.dll ved at kalde GetModuleHandle()
- Hent procedureadressen til to eksporterede funktioner ved hjælp af GetProcAddress()-kald til „GetOpenIDConnectIDToken“ og „GetOpenIDConnectAccessToken“
- Kald disse to procedureadresser med parametrene 0 og NULL for at få længden på den nødvendige tegnbuffer
- allokere tegnbufferen
- kald de to funktioner igen for at hente de faktiske tokens
Eksempelkode:
/**
* 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 ();
}
Sådan kører du GetOidcIdAndAccessTokens-testapplikationerne
- Download og udpak filen GetOidcIdAndAccessTokens.zip fra https://cdn.graphon.com/portal_resources/Downloads/GetOidcIdAndAccessTokens.zip på en GO-Global-host, hvor OpenID Connect-godkendelse er aktiveret.
- Registrer de to testapps, GetOidcIdAndAccessTokens_32bit.exe og GetOidcIdAndAccessTokens_64bit.exe, hos GO-Global.
- Start en GO-Global-session.
- Kør testappsene i GO-Global-sessionen. OpenID Connect-ID-tokenet og adgangstokenet vises i et konsolvindue.
Konklusion
Implementering af OpenID Connect-godkendelse i GO-Global giver administratorer effektive værktøjer til at samle identitetsstyringen, mindske brugerfriktionen og styrke sikkerheden på tværs af hostede applikationer. Ved at vælge den rette login-workflow, sikre at OIDC-krav stemmer overens med Active Directory og anvende de nødvendige Windows-tilladelser, kan organisationer skabe en problemfri godkendelsesoplevelse for både lokale og domænebaserede miljøer. Med muligheden for at tilpasse håndtering af brugernavne og få adgang til OIDC-tokens programmatisk understøtter GO-Global også mere avancerede applikationsbehov. Sammen giver disse funktioner administratorer fleksibilitet til at integrere moderne identitetsløsninger, samtidig med at fuld kompatibilitet med Windows-godkendelseskrav opretholdes.
Er du en ISV, der udforsker cloud-baseret applikationslevering? Kontakt os for at høre, hvordan GO-Global kan hjælpe dig med at strømline adgangen til software for dine slutbrugere. Eller download en gratis prøveversion for at teste det selv.

