OpenID Connect-autentisering
OpenID Connect (OIDC) tilbyr organisasjoner en moderne og sikker måte å autentisere brukere på, samtidig som den effektiviserer tilgangen til GO-Global-hostede Windows-applikasjoner. Ved å integrere med identitetsleverandører som Okta, Azure AD eller ADFS, kan administratorer sentralisere autentisering og forbedre brukerpåloggingsopplevelsen – enten brukere logger på med lokale Windows-kontoer, domenekontoer eller begge deler. Denne veiledningen forklarer hvordan du aktiverer OIDC-autentisering i GO-Global, konfigurerer automatiske Windows-pålogginger, matcher identitetsleverandørkontoer med Active Directory-brukere og administrerer tilleggsinnstillinger som kreves for sømløs tilgang. Den dekker også avanserte alternativer som å tilpasse brukernavnfelt, håndtere opprettelse av lokal konto, konfigurere tillatelser og hente OIDC-tokener programmatisk.
Etter at en bruker har autentisert seg via OIDC, gir GO-Global administratorer flere alternativer for å autentisere brukeren automatisk på Windows. Hvis for eksempel identitetsleverandøren er integrert med organisasjonens Active Directory, kan GO-Global automatisk logge brukeren på brukerens domenekonto. Alternativt, hvis Active Directory-integrasjon ikke er nødvendig eller ønsket, kan GO-Global opprette en lokal Windows-konto for brukeren og automatisk logge brukeren på den kontoen. Støtte for enkeltpålogging er et tilleggsalternativ. OpenID Connect-autentisering vil være nedtonet (deaktivert) med mindre funksjonen er kjøpt.
Slik aktiverer du OpenID Connect-autentisering
- Klikk på Verktøy | Vertsalternativer.
- Klikk på Autentisering- fanen.
- Aktiver OpenID Connect-autentisering .
- Velg ett eller ingen av følgende alternativer:
- Logg brukere automatisk på lokale Windows-kontoer. Når dette er aktivert, vil GO-Global automatisk opprette en lokal brukerkonto for brukere som ikke har en domenekonto.
- Logg brukere automatisk på domenekontoene sine. Når dette er aktivert, prøver GO-Global å utføre en S4U-pålogging ved hjelp av brukerens UPN, som den henter fra OIDC-identitetsleverandøren etter en vellykket OpenID Connect-pålogging. En S4U-pålogging i seg selv vil gi brukere tilgang til ressurser på GO-Global-verten, men brukere vil ikke kunne autentisere seg til tjenester som kjører på nettverket. For å få tilgang til tjenester som kjører på nettverket, må administratorer enten aktivere begrenset delegering (som beskrevet i Konfigurasjonskrav for delegeringsstøtte artikkel) eller aktiver Lagre passord i mellomlagringsmodus på vertsalternativet.
- Hvis et program som driftes av GO-Global kan kjøres under en lokal konto på GO-Global-verten, bør du velge Logg brukere automatisk på lokale Windows-kontoer. Alternativt, hvis programmet krever tilgang til ressurser som administreres av Active Directory, må du velge Logg brukere automatisk på domenekontoene deres. I sistnevnte tilfelle må identitetsleverandøren være integrert med Active Directory slik at den kan gi GO-Global brukerens UPN.
- Hvis verken Logg brukere automatisk på lokale Windows-kontoer eller Logg brukere automatisk på domenekontoene deres er valgt, vil brukerne bli bedt om å logge på Windows som angitt av de andre alternativene i fanen Godkjenning. Hvis for eksempel både OpenID Connect-godkjenning og standardgodkjenning er aktivert, vil brukerne bli bedt om å logge på to ganger. Først vil de bli bedt om å logge på OpenID Connect-identitetsleverandøren. Etter at de har godkjent med OpenID Connect-identitetsleverandøren, vil de deretter bli bedt om å oppgi brukernavnet og passordet til en Windows-konto.
- Hvis et program som driftes av GO-Global kan kjøres under en lokal konto på GO-Global-verten, bør du velge Logg brukere automatisk på lokale Windows-kontoer. Alternativt, hvis programmet krever tilgang til ressurser som administreres av Active Directory, må du velge Logg brukere automatisk på domenekontoene deres. I sistnevnte tilfelle må identitetsleverandøren være integrert med Active Directory slik at den kan gi GO-Global brukerens UPN.
- Skriv inn klient-ID-strengen fra OpenID Connect-serverkonfigurasjonen din i Klient-ID- boksen.
- Skriv inn strengen Klienthemmelighet fra OpenID Connect-serverkonfigurasjonen i feltet Klienthemmelighet .
- Skriv inn autorisasjons-URL-en som brukes til å autentisere brukere med OpenID Connect-serveren din i feltet Autorisasjons-URL .
- Skriv inn token-URL-en som brukes til å autentisere brukere med OpenID Connect-serveren din i Token-URL- boksen.
- I boksen Omdiriger URL skriver du inn URL-en som identitetsleverandøren må bruke for å omdirigere brukere tilbake til GO-Global Host etter at de har autentisert seg. Dette bør være den samme basis-URL-en som brukere bruker for å få tilgang til GO-Global Host med callback.html lagt til på slutten. Hvis du for eksempel bruker en separat webserver som IIS og TLS ikke er aktivert, vil tilbakeringings-URL-en være http://hostname/goglobal/callback.html. Alternativt, hvis du bruker GO-Globals integrerte webserver og TLS ikke er aktivert og GO-Global er konfigurert til å godta tilkoblinger på standardporten 491, vil tilbakeringings-URL-en være http://hostname:491/callback.html.
- Klikk OK .
Samkjøre Active Directory-brukere med identitetsleverandørkontoer
GO-Global tilbyr flere alternativer for å utlede en brukers UPN fra krav i et OIDC ID-token. Brukerkontoer må samsvare på én av tre måter på Active Directory (AD) og identitetsleverandøren.
Det er tre måter dette kan oppnås på:
- Brukerens opprinnelige brukernavn (UPN) samsvarer allerede brukernavnet til identitetsleverandøren. For eksempel er det lokale AD-domenet example.com , og identitetsleverandørdomenet er også example.com . Som standard søker GO-Global etter et gyldig UPN i feltene e-post, UPN, undernavn og bruker-ID i ID-tokenet, i den rekkefølgen. Alternativt kan administratorer angi kravet som inneholder UPN-en via OpenIDConnectUserNameField -egenskapen i HostProperties.xml.
- Legg til et UPN-suffiks og bruk det for AD-brukernavn slik at AD UPN-en og identitetsleverandørens UPN-er samsvarer. For eksempel er det lokale AD-domenet company.local , men legg til et UPN-suffiks for brukere kalt example.com . Identitetsleverandørens domene er også example.com .
- Angi brukerens AD-postattributt slik at det samsvarer med identitetsleverandørens UPN, og endre en innstilling i HostProperties.xml. I noen distribusjoner er det ikke noe krav i ID-tokenet som samsvarer med brukerens AD UPN. I et vertsmiljø der kundens identitetsleverandør brukes, vil for eksempel ikke kundens domene (f.eks. customercompany.com ) samsvare med AD-domenet til vertsmiljøet (f.eks. hostedapp.com ). Ettersom kundens identitetsleverandør brukes, vil ikke administratorer av vertsmiljøet kunne legge til et krav til brukernes OIDC ID-tokener som spesifiserer AD UPN.
I slike situasjoner kan administratorer konfigurere GO-Global til å slå opp brukerens AD UPN via brukerens e-postadresse. Dette oppnås ved å sette verdien for OpenIDConnectUserLookupByEmail -egenskapen i HostProperties.xml til sann på alle aktuelle verter. Når denne egenskapen er satt til sann, søker GO-Global i Active Directory etter en brukerkonto med et e-postattributt som samsvarer med OIDC ID-tokenets e-postkrav.
Lagre brukernavn i alternative felt
Som standard henter GO-Global Windows-brukernavnet fra brukerens hovednavn eller e-postadresse som er spesifisert av identitetsleverandøren i brukerens OpenID Connect ID-token. Hvis identitetsleverandøren derimot er konfigurert til å lagre brukerens Windows-brukernavn i et alternativt felt, kan administratorer konfigurere GO-Global til å bruke det alternative feltet ved å skrive inn navnet på feltet i OpenIDConnectUserNameField -egenskapen i HostProperties.xml-filen.
Slik angir du egenskapen OpenIDConnectUserNameField
- Stopp programpubliseringstjenesten .
- Åpne %PROGRAMDATA%\GraphOn\GO-Global\HostProperties.xml i et tekstredigeringsprogram.
- Finn egenskapen OpenIDConnectUserNameField og endre verdien til navnet på kravet i brukerens OpenID Connect-token, som inneholder brukerens hovednavn som GO-Global skal bruke for å autentisere brukeren på Windows.
- Lagre HostProperties.xml-filen.
- Start publiseringstjenesten for applikasjoner på nytt.
Når Automatisk pålogging av brukere til lokale Windows-kontoer er aktivert, syntetiseres lokale brukerkontonavn fra brukerens hovednavn eller e-postadresse hentet fra OpenID Connect-godkjenningen. Fordi lokale kontoer ikke kan inneholde '@' eller '.', erstattes disse med henholdsvis '_' og '-'. Som et eksempel vil e-postadressen sales@graphon.com bli syntetisert til sales_graphon-com.
Merk : Windows har en grense på 20 tegn for lokale kontonavn. Hvis det syntetiserte kontonavnet er lengre enn 20 tegn, avkortes navnet til 20 tegn av GO-Global.
Passord for disse kontoene består av tegn tilfeldig valgt fra små bokstaver, store bokstaver, tall og spesialtegnene !@#$%& . Lengden på passordet som GO-Global genererer, vil være lik minimumslengden på passordet som er spesifisert for brukere på datamaskinen, med mindre minimumslengden er mindre enn 7. I så fall vil GO-Global generere et passord som er 14 tegn lengre enn minimumslengdekravet. Hvis for eksempel datamaskinens minimumspassordlengde er 6, vil GO-Global generere et passord som er 20 tegn langt, i følgende format: 8tw@m4b9Dek#vR76@t6%. Hvis GO-Global ikke klarer å hente datamaskinens minimumspassordlengde, vil de generere et passord som er 14 tegn langt.
Hvis minimumslengdekravet er angitt via gruppepolicy, aktiverer du gruppepolicy i fanen Oppstart av økt i dialogboksen Vertsalternativer . Disse passordene lagres eller brukes ikke på nytt. Passordet endres ved hver OpenID Connect-autentisering.
Tillatelser for Windows-applikasjoner som ligger i GO-Global-økter administreres ikke av identitetsleverandører som Okta eller ADFS. De administreres i Windows eller Active Directory.
Integrering med Active Directory er en funksjon hos identitetsleverandøren. Active Directory Federated Services (ADFS) integreres automatisk med Active Directory. Andre identitetsleverandører tilbyr sine egne integrasjoner. Organisasjoner som bruker en identitetsleverandør, har allerede konfigurert dette. Organisasjoner som nettopp konfigurerer dette, må se dokumentasjonen fra identitetsleverandøren for å få informasjon om hvordan dette konfigureres.
Hvis du vil ha mer informasjon om Okta, kan du gå til: https://help.okta.com/en/prod/Content/Topics/Directory/ad-agent-main.htm .
Når du bruker Azure, må du bruke URL-adressene for OAuth 2.0-autorisasjonsendepunktet (v1) og OAuth 2.0-tokenendepunktet (v1). URL-adressene for v2-endepunktet vil ikke fungere.
Når du bruker ADFS, velger du Server-applikasjon når du oppretter OIDC-applikasjonen.
Gi standardbrukere rettigheter til å starte og aktivere COM
Som standard gir ikke Windows standardbrukere som ikke har logget seg på Windows interaktivt ved å oppgi brukernavn og passord, rett til å starte og aktivere COM-objekter. Som et resultat av dette kan det hende at programmer som Windows Filutforsker som er avhengige av COM-grensesnitt, bare kjører eller fungerer som de skal for brukere som er medlemmer av administratorgruppen når OpenID Connect-autentisering brukes. Når OIDC-autentisering er aktivert, gir du derfor standardbrukere rettigheter til å starte og aktivere COM som følger:
- Kjør dcomcnfg .
- Naviger til Komponenttjenester | Datamaskiner | Min datamaskin.
- Høyreklikk på Min datamaskin og klikk på Egenskaper .
- Velg fanen COM-sikkerhet .
- Under Oppstarts- og aktiveringstillatelser klikker du på knappen Rediger standard... .
- Klikk på Legg til- knappen. ( Merk: Standardtillatelsene gir fulle rettigheter til gruppene INTERAKTIV og Administratorer. Dette er grunnen til at dette fungerer for alle brukere som er autentisert via brukernavn og passord (INTERAKTIV brukere) og medlemmer av administratorgruppen når OIDC brukes.
- Legg til domenebrukergruppen .
- Klikk på avmerkingsboksene Tillat ved siden av Lokal oppstart og Lokal aktivering .
- Klikk OK .
- Klikk OK .
Programmatisk henting av OIDC ID-token og tilgangstoken
Noen ganger er det nyttig for applikasjoner som kjører i en GO-Global-økt å kunne hente kravene i OIDC ID-tokenet og/eller tilgangstokenet som leveres av identitetsleverandøren når brukeren autentiseres. Når dette er nødvendig, kan applikasjonsutviklere legge til kode i applikasjonene sine for å hente disse tokenene.
Programmatisk henting av OIDC ID-token og tilgangstoken krever kode for å:
- få en HANDLE til redirector.dll med et kall til GetModuleHandle()
- Hent prosedyreadressen til to eksporterte funksjoner med kall til GetProcAddress() for «GetOpenIDConnectIDToken» og «GetOpenIDConnectAccessToken»
- kall disse to prosedyreadressene med parametere 0 og NULL for å få lengden på tegnbufferen som trengs
- tildel tegnbufferen
- kall de to funksjonene igjen for å få de faktiske tokenene
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 ();
}
For å kjøre GetOidcIdAndAccessTokens testapplikasjoner
- Last ned og pakk ut GetOidcIdAndAccessTokens.zip-filen fra https://cdn.graphon.com/portal_resources/Downloads/GetOidcIdAndAccessTokens.zip på en GO-Global-vert med OpenID Connect-autentisering aktivert.
- Registrer de to testappene GetOidcIdAndAccessTokens_32bit.exe og GetOidcIdAndAccessTokens_64bit.exe hos GO-Global.
- Start en GO-Global-økt.
- Kjør testappene i GO-Global-økten. OpenID Connect ID-token og tilgangstoken vises i et konsollvindu.
Konklusjon
Implementering av OpenID Connect-autentisering i GO-Global gir administratorer kraftige verktøy for å forene identitetsadministrasjon, redusere brukerfriksjon og styrke sikkerheten på tvers av vertsbaserte applikasjoner. Ved å velge riktig påloggingsarbeidsflyt, sikre at OIDC-krav samsvarer med Active Directory og bruke de nødvendige Windows-tillatelsene, kan organisasjoner skape en sømløs autentiseringsopplevelse for både lokale og domenebaserte miljøer. Med muligheten til å tilpasse brukernavnhåndtering og få tilgang til OIDC-tokener programmatisk, støtter GO-Global også mer avanserte applikasjonsbehov. Sammen gir disse funksjonene administratorer fleksibiliteten til å integrere moderne identitetsløsninger samtidig som de opprettholder full kompatibilitet med Windows-autentiseringskrav.
Er du en uavhengig leverandør av programvare (ISV) som utforsker levering av skybaserte applikasjoner? Kontakt oss for å finne ut hvordan GO-Global kan hjelpe deg med å effektivisere programvaretilgang for sluttbrukerne dine. Eller last ned en gratis prøveperiode for å teste det selv.

