Autenticação OpenID Connect

Configure o OpenID Connect no GO-Global, habilite o login automático no Windows, sincronize usuários do AD e simplifique a autenticação segura em todo o seu ambiente.

Publicado em:
21 de abril de 2026
Última atualização em:
21 de abril de 2026
Tabela de conteúdo

Autenticação OpenID Connect

O OpenID Connect (OIDC) oferece às organizações uma maneira moderna e segura de autenticar usuários, ao mesmo tempo em que simplifica o acesso a aplicativos Windows hospedados no GO-Global. Ao integrar-se a provedores de identidade como Okta, Azure AD ou ADFS, os administradores podem centralizar a autenticação e melhorar a experiência de login dos usuários — independentemente de eles estarem fazendo login com contas locais do Windows, contas de domínio ou ambas. Este guia explica como habilitar a autenticação OIDC no GO-Global, configurar logins automáticos no Windows, associar contas de provedores de identidade a usuários do Active Directory e gerenciar configurações adicionais necessárias para um acesso sem interrupções. Ele também aborda opções avançadas, como personalizar campos de nome de usuário, lidar com a criação de contas locais, configurar permissões e recuperar tokens OIDC programaticamente.

Depois que um usuário se autentica via OIDC, o GO-Global oferece aos administradores várias opções para autenticar o usuário automaticamente no Windows. Por exemplo, se o provedor de identidade estiver integrado ao Active Directory da organização, o GO-Global pode fazer o login automático do usuário na conta do domínio. Alternativamente, se a integração com o Active Directory não for necessária ou desejada, o GO-Global pode criar uma conta local do Windows para o usuário e fazer o login automático nessa conta. O suporte ao login único é uma opção adicional. A autenticação OpenID Connect ficará desativada (desabilitada) a menos que o recurso tenha sido adquirido.

Para habilitar a autenticação OpenID Connect

  1. Clique em Ferramentas | Opções do host.
  2. Clique na guia " Autenticação ".
  3. Ative a autenticação OpenID Connect.
  4. Selecione uma das opções a seguir ou nenhuma delas:
    • Fazer o login automático dos usuários em contas locais do Windows. Quando essa opção estiver ativada, o GO-Global criará automaticamente uma conta de usuário local para os usuários que não possuírem uma conta de domínio.
    • Faça o login automático dos usuários em suas contas de domínio. Quando essa opção está ativada, o GO-Global tenta realizar um login S4U usando o UPN do usuário, obtido do provedor de identidade OIDC após um login bem-sucedido via OpenID Connect. Por si só, um login S4U permitirá que os usuários acessem recursos no host GO-Global, mas os usuários não poderão se autenticar nos serviços em execução na rede. Para acessar os serviços em execução na rede, os administradores devem ativar a delegação restrita (conforme descrito no Requisitos de configuração para suporte à delegação (artigo) ou ativar o Opção “Armazenar senhas em cache no host”.

      • Se uma aplicação hospedada pelo GO-Global puder ser executada em uma conta local no servidor GO-Global, deve-se selecionar a opção “Iniciar sessão automaticamente dos usuários em contas locais do Windows”. Por outro lado, se a aplicação exigir acesso a recursos gerenciados pelo Active Directory, deve-se selecionar a opção “Iniciar sessão automaticamente dos usuários em suas contas de domínio”. Neste último caso, o provedor de identidade deve estar integrado ao Active Directory para que possa fornecer ao GO-Global o UPN do usuário.
      • Se nenhuma das opções “Fazer login automático dos usuários em contas locais do Windows” ou “Fazer login automático dos usuários em suas contas de domínio ” estiver selecionada, os usuários serão solicitados a fazer login no Windows conforme especificado pelas outras opções na guia “Autenticação”. Por exemplo, se tanto a autenticação OpenID Connect quanto a autenticação padrão estiverem habilitadas, os usuários serão solicitados a fazer login duas vezes. Primeiro, eles serão solicitados a fazer login no provedor de identidade do OpenID Connect. Em seguida, após a autenticação bem-sucedida com o provedor de identidade do OpenID Connect, eles serão solicitados a inserir o nome de usuário e a senha de uma conta do Windows.

  5. Digite a sequência de caracteres do ID do cliente, conforme consta na configuração do seu servidor OpenID Connect, na caixa “ID do cliente ”.
  6. Digite a sequência do segredo do cliente, conforme consta na configuração do seu servidor OpenID Connect, na caixa “Segredo do cliente ”.
  7. Digite a URL de autorização usada para autenticar usuários no seu servidor OpenID Connect na caixa “URL de autorização ”.
  8. Digite a URL do token usada para autenticar usuários no seu servidor OpenID Connect na caixa “URL do token ”.
  9. Na caixa “URL de redirecionamento”, digite a URL que o provedor de identidade deve usar para redirecionar os usuários de volta ao GO-Global Host após a autenticação bem-sucedida. Essa deve ser a mesma URL base que os usuários utilizam para acessar o GO-Global Host, com “callback.html” anexado ao final. Por exemplo, se você estiver usando um servidor web separado, como o IIS, e o TLS não estiver habilitado, a URL de retorno de chamada seria http://hostname/goglobal/callback.html. Alternativamente, se você estiver usando o servidor web integrado do GO-Global e o TLS não estiver habilitado, e o GO-Global estiver configurado para aceitar conexões em sua porta padrão, 491, a URL de retorno seria http://hostname:491/callback.html.
  10. Clique em OK.

Correspondência entre usuários do Active Directory e contas do provedor de identidade

O GO-Global oferece várias opções para derivar o UPN de um usuário a partir das reivindicações contidas em um token de identidade OIDC. As contas de usuário devem corresponder de uma das três maneiras no Active Directory (AD) e no provedor de identidade.

Existem três maneiras de fazer isso:

  • O Nome Principal do Usuário (UPN) nativo do usuário já corresponde a , o nome de usuário do provedor de identidade. Por exemplo, o domínio AD local é example.com e o domínio do provedor de identidade também é example.com. Por padrão, o GO-Global procura um UPN válido nos campos email, UPN, sub e userid do token de identificação, nessa ordem. Como alternativa, os administradores podem especificar a reivindicação que contém o UPN por meio da propriedade OpenIDConnectUserNameField no arquivo HostProperties.xml.
  • Adicione um sufixo UPN e utilize-o nos nomes de usuário do AD, para que o UPN do AD e o UPN do provedor de identidade coincidam. Por exemplo, o domínio local do AD é company.local, mas adicione um sufixo UPN para os usuários chamado example.com. O domínio do provedor de identidade também é example.com.
  • Defina o atributo de e-mail do AD do usuário para que corresponda ao UPN do provedor de identidade e modifique uma configuração no arquivo HostProperties.xml. Em algumas implantações, não há nenhuma reivindicação no token de identificação que corresponda ao UPN do AD do usuário. Por exemplo, em um ambiente de hospedagem onde o provedor de identidade do cliente é usado, o domínio do cliente (por exemplo, customercompany.com) não corresponderá ao domínio AD do ambiente de hospedagem (por exemplo, hostedapp.com). Como o provedor de identidade do cliente é usado, os administradores do ambiente de hospedagem não poderão adicionar uma reivindicação aos tokens de identificação OIDC dos usuários que especifique o UPN do AD.

    Em situações como essa, os administradores podem configurar o GO-Global para pesquisar o UPN do AD do usuário por meio do endereço de e-mail do usuário. Isso é feito definindo o valor da propriedade OpenIDConnectUserLookupByEmail no HostProperties.xml como true em todos os hosts aplicáveis. Quando essa propriedade é definida como true, o GO-Global pesquisa no Active Directory por uma conta de usuário com um atributo de e-mail que corresponda à reivindicação de e-mail do token de identificação OIDC.

Armazenamento de nomes de usuário em campos alternativos

Por padrão, o GO-Global obtém o nome de usuário do Windows a partir do Nome Principal do Usuário (UPN) ou do endereço de e-mail especificado pelo provedor de identidade no token de identificação OpenID Connect do usuário. No entanto, se o provedor de identidade estiver configurado para armazenar o nome de usuário do Windows em um campo alternativo, os administradores podem configurar o GO-Global para usar esse campo alternativo inserindo o nome do campo na propriedade OpenIDConnectUserNameField no arquivo HostProperties.xml.

Para definir a propriedade OpenIDConnectUserNameField

  1. Interrompa o Serviço de Publicação de Aplicativos.
  2. Abra o arquivo %PROGRAMDATA%\GraphOn\GO-Global\HostProperties.xml em um editor de texto.
  3. Encontre a propriedade OpenIDConnectUserNameField e altere o valor para o nome da reivindicação no token OpenID Connect do usuário que contém o Nome Principal do Usuário (UPN) que o GO-Global deve usar para autenticar o usuário no Windows.
  4. Salve o arquivo HostProperties.xml.
  5. Reinicie o Serviço de Publicação de Aplicativos.

Quando a opção “Fazer login automático dos usuários em contas locais do Windows” está ativada, os nomes das contas de usuário locais são gerados a partir do Nome Principal do Usuário (UPN) ou do endereço de e-mail obtido na autenticação do OpenID Connect. Como as contas locais não podem conter os caracteres “@” ou “.”, estes são substituídos por “_” e “-”, respectivamente. Por exemplo, o endereço de e-mail sales@graphon.com seria gerado como sales_graphon-com.

Observação: O Windows tem um limite de 20 caracteres para nomes de contas locais. Se o nome da conta gerado for maior que 20 caracteres, o GO-Global o trunca para 20 caracteres

As senhas dessas contas são compostas por caracteres selecionados aleatoriamente entre letras minúsculas, letras maiúsculas, números e os caracteres especiais !@#$%& . O comprimento da senha gerada pelo GO-Global será igual ao comprimento mínimo especificado para os usuários no computador, a menos que esse comprimento mínimo seja inferior a 7. Nesse caso, o GO-Global gerará uma senha com 14 caracteres a mais do que o requisito de comprimento mínimo. Por exemplo, se o comprimento mínimo da senha do computador for 6, o GO-Global gerará uma senha com 20 caracteres, no seguinte formato: 8tw@m4b9Dek#vR76@t6%. Se o GO-Global não conseguir obter o comprimento mínimo da senha do computador, ele gerará uma senha com 14 caracteres.
 
Se o requisito de comprimento mínimo for definido por meio da Política de Grupo, habilite a Política de Grupo na guia Inicialização da Sessão da caixa de diálogo Opções do Host. Essas senhas não são salvas nem reutilizadas. A senha é alterada a cada autenticação do OpenID Connect.

As permissões para aplicativos do Windows hospedados em sessões do GO-Global não são gerenciadas por provedores de identidade como Okta ou ADFS. Elas são gerenciadas no Windows ou no Active Directory.

A integração com o Active Directory é uma função do provedor de identidade. O Active Directory Federated Services (ADFS) é integrado automaticamente ao Active Directory. Outros provedores de identidade oferecem suas próprias integrações. As organizações que já utilizam um provedor de identidade provavelmente já terão configurado isso. As organizações que estão apenas começando a configurar isso precisarão consultar a documentação do seu provedor de identidade para saber como proceder.

Para obter mais informações sobre o Okta, acesse: https://help.okta.com/en/prod/Content/Topics/Directory/ad-agent-main.htm.

Ao usar o Azure, certifique-se de usar as URLs do endpoint de autorização OAuth 2.0 (v1) e do endpoint de token OAuth 2.0 (v1). As URLs do endpoint v2 não funcionarão.

Ao usar o ADFS, selecione Aplicativo de servidor ao criar o aplicativo OIDC.

Conceder direitos de “Iniciar” e “Ativar” COM a usuários padrão

Por padrão, o Windows não concede aos usuários padrão que não tenham feito login no sistema de forma interativa, digitando um nome de usuário e uma senha, o direito de iniciar e ativar objetos COM. Como resultado, aplicativos como o Explorador de Arquivos do Windows, que dependem de interfaces COM, podem funcionar corretamente apenas para usuários que sejam membros do grupo Administradores quando a autenticação OpenID Connect é utilizada. Portanto, quando a autenticação OIDC estiver habilitada, conceda aos usuários padrão os direitos de Início e Ativação de objetos COM da seguinte forma:

  1. Execute o dcomcnfg.
  2. Acesse Serviços de Componentes | Computadores | Meu Computador.
  3. Clique com o botão direito do mouse em “Meu Computador ” e selecione “Propriedades”.
  4. Selecione a guia Segurança COM.
  5. Em “Permissões de inicialização e ativação”, clique no botão “Editar padrão... ”.
  6. Clique no botão Adicionar . (Observação: As permissões padrão concedem direitos totais aos grupos INTERACTIVE e Administradores. É por isso que isso funciona para todos os usuários autenticados por meio de nome de usuário e senha (usuários INTERACTIVE) e para membros do grupo Administradores quando o OIDC é utilizado.
  7. Adicione o grupo de usuários do domínio.
  8. Marque as caixas de seleção “Permitir ” ao lado de “Inicialização local ” e “Ativação local”.
  9. Clique em OK.
  10. Clique em OK.

Recuperação programática do token de identificação OIDC e do token de acesso

Às vezes, é útil que os aplicativos em execução em uma sessão GO-Global possam recuperar as reivindicações contidas no token de identificação OIDC e/ou no token de acesso fornecidos pelo provedor de identidade quando o usuário é autenticado. Quando isso for necessário, os desenvolvedores de aplicativos podem adicionar código aos seus aplicativos para recuperar esses tokens.

Para recuperar programaticamente o token de identificação OIDC e o token de acesso, é necessário que o código:

  • Obter um identificador (HANDLE) para o arquivo redirector.dll com uma chamada à função GetModuleHandle()
  • obter o endereço de procedimento de duas funções exportadas usando chamadas à função GetProcAddress() para “GetOpenIDConnectIDToken” e “GetOpenIDConnectAccessToken”
  • chame esses dois endereços de procedimento com os parâmetros 0 e NULL para obter o comprimento do buffer de caracteres necessário
  • alocar o buffer de caracteres
  • chame essas duas funções novamente para obter os tokens propriamente ditos

Código de exemplo:

/**
* 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 ();
}

Para executar os aplicativos de teste GetOidcIdAndAccessTokens  

  1. Baixe e descompacte o arquivo GetOidcIdAndAccessTokens.zip disponível emhttps://cdn.graphon.com/portal_resources/Downloads/GetOidcIdAndAccessTokens.zip em um servidor GO-Global com a autenticação OpenID Connect ativada.  
  2. Registre os dois aplicativos de teste GetOidcIdAndAccessTokens_32bit.exe e GetOidcIdAndAccessTokens_64bit.exe na GO-Global.
  3. Inicie uma sessão do GO-Global.
  4. Execute os aplicativos de teste na sessão GO-Global. O token de identificação e o token de acesso do OpenID Connect são exibidos em uma janela do console.

Conclusão

A implementação da autenticação OpenID Connect no GO-Global oferece aos administradores ferramentas poderosas para unificar o gerenciamento de identidades, reduzir o atrito com o usuário e reforçar a segurança em todas as aplicações hospedadas. Ao escolher o fluxo de trabalho de login adequado, garantir que as reivindicações OIDC estejam alinhadas com o Active Directory e aplicar as permissões necessárias do Windows, as organizações podem criar uma experiência de autenticação integrada tanto para ambientes locais quanto para ambientes baseados em domínio. Com a capacidade de personalizar o tratamento de nomes de usuário e acessar tokens OIDC programaticamente, o GO-Global também atende a necessidades mais avançadas de aplicativos. Juntas, essas capacidades oferecem aos administradores a flexibilidade de integrar soluções modernas de identidade, mantendo total compatibilidade com os requisitos de autenticação do Windows.

Você é um ISV que está explorando o fornecimento de aplicativos baseados em nuvem? Entre em contato conosco para saber como a GO-Global pode ajudá-lo a simplificar o acesso ao software para seus usuários finais. Ou faça o download de uma avaliação gratuita para testá-la você mesmo.