Pular para o conteúdo

Portal Web com SSO (beta)

Pré-requisitos e limitações principais

Portal Web 2026 com SSO é projetado para o Criativo tema e usa todas as personalizações do AdminTool > Web > Personalização do Portal Web. Se o tema selecionado não Criativo , o Portal da Web não exibe.

Quando ativado em uma fazenda, todos os servidores devem executar o mesma versão de Remote Access e ser ativado para Portal Web 2026 com SSO

Este recurso é Beta e deve não ser implantado em servidores de produção.

Por que um novo Portal Web?

Comparado com o Portal Web anterior, esta implementação oferece maior confiabilidade e melhor desempenho sob carga. Além disso, permite:

  • Capacidades avançadas de SSO

    • Autenticação Integrada do Windows (Negociar / Kerberos / NTLM)
    • Integração de provedor de identidade de terceiros (atualmente SAML)
  • Controles de segurança mais robustos

    • Proteções anti-falsificação integradas
    • Limitação de taxa de endpoint
    • Autenticação moderna e controles de cookie/sessão

Sua arquitetura nos permitirá abordar facilmente qualquer feedback de auditoria de segurança potencial.

Também é uma produto mais acessível por meio de recomendações e contraste aprimorado.

Flexibilidade do servidor web (Kestrel por padrão)

A aplicação não está vinculada a um único servidor web front-end. Por padrão, ela é executada em Kestrel (Porta HTTP 81). Pode ser precedido por IIS ou Apache como um proxy reverso alterando a configuração do servidor web.

Exemplo: proxy reverso Apache para o serviço Web Portal

# Apache VirtualHost example
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:81/
ProxyPassReverse / http://127.0.0.1:81/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"

Isso mantém a lógica do Portal Web inalterada enquanto o Apache lida com a exposição pública de HTTP/HTTPS.

Por favor, entre em contato com a equipe de desenvolvimento se estiver interessado, pois este cenário ainda não está acessível pelo programa AdminTool e deve ser configurado manualmente.

Ativar Portal Web 2026 com SSO

  1. Abrir AdminTool
  2. Vá para: Web > Servidor web
  3. Ativar: Portal web 2026 com SSO

Enable Web Portal with SSO

Importante esta opção é Beta. Use apenas em ambientes de teste.

Modos de entrada suportados

Portal Web 2026 com SSO suporta:

  • Formulário de login tradicional usando credenciais do Windows
  • Credenciais da web. Veja: https://docs.tsplus.net/tsplus/web-credentials/
  • Autenticação Integrada do Windows (automática em cenários de confiança / locais)
  • Provedor de identidade externo via SAML como Entra ID (anteriormente Azure AD) ou Okta

Nota: Suporte para autenticação externa via OIDC planejado posteriormente, sob solicitação

comportamento de 2FA

2FA é aplicado aos fluxos de conta padrão, incluindo:

  • Formulário de login usando credenciais do Windows
  • Credenciais da Web
  • Autenticação Integrada do Windows

Provedores de autenticação externa frequentemente impõem seu próprio MFA / 2FA. Portanto, a configuração de 2FA definida no complemento 2FA do Remote Access não se aplica a este cenário.

O bypass de rede local está disponível através de CustomSettings:Bypass2FAParaRedeLocal parâmetro localizado no arquivo: C:\Program Files (x86)\TSplus\Clients\webportal\appsettings.json , onde C:\Program Files (x86)\TSplus é a pasta de configuração do TSplus Remote Access. Quando ativado, o bypass ocorre apenas se o cliente e o gateway estiverem na mesma sub-rede privada.

Configurar o fluxo de autenticação do Windows

Para usuários que fazem login com autenticação do Windows, um dos seguintes é necessário:

  1. Pré-registre credenciais com o comando TSplus: AdminTool.exe /windowscredential-addorupdate Veja a documentação em https://docs.tsplus.net/tsplus/commands-list/#adicionar-ou-atualizar-credenciais-no-gerenciador-de-credenciais-do-windows-windowscredential-addorupdate
  2. Ou deixe o usuário fazer login uma vez através do formulário de login do Portal Web com credenciais do Windows.

Para configurar a autenticação integrada do Windows, consulte: Ativar a autenticação integrada do Windows em um domínio do Active Directory. Como esse modo de autenticação é difícil de configurar, os clientes costumam preferir configurar um provedor de identidade externo.

Configurar autenticação externa (SAML)

Configurações necessárias em appsettings.json

O arquivo appsettings.json está localizado em C:\Program Files (x86)\TSplus\Clients\webportal , onde C:\Program Files (x86)\TSplus é a pasta de configuração do TSplus Remote Access.

Edite o Saml2 seção:

  • IdPMetadata
  • Emissor
  • DestinoSingleSignOn opcional se os metadados fornecerem isso
  • DestinoLogoutÚnico opcional se os metadados fornecerem isso
  • Campos relacionados ao certificado

Disponibilidade da senha do Windows para lançamento de sessão

Para autenticação SAML externa, o lançamento de sessões ainda requer credenciais do Windows utilizáveis. Use um dos:

  1. Registrar credenciais do Windows com o comando: AdminTool.exe /windowscredential-addorupdate Veja a documentação em https://docs.tsplus.net/tsplus/commands-list/#adicionar-ou-atualizar-credenciais-no-gerenciador-de-credenciais-do-windows-windowscredential-addorupdate
  2. Ou encaminhe a senha da reivindicação do IdP configurando CustomSettings:UseSamlPasswordClaim ao tipo de reclamação que contém a senha do Windows.

Se nenhuma senha estiver disponível no repositório de reivindicações ou credenciais, a validação do usuário falha.

Referência completa do arquivo de configuração appsettings.json

O arquivo appsettings.json está localizado em C:\Program Files (x86)\TSplus\Clients\webportal , onde C:\Program Files (x86)\TSplus é a pasta de configuração do TSplus Remote Access.

Registro

Parâmetro Propósito Valores possíveis Padrão
Registro:NívelDeLog:Padrão Nível mínimo de log global. Rastrear , Depuração , Informação , Atenção , Erro , Crítico , Nenhum Informação
Logging:LogLevel:Microsoft.AspNetCore Nível de log do framework ASP.NET Core. Mesmo que acima Atenção
Logging:LogLevel:Microsoft.AspNetCore.Authentication Nível de log do subsistema de autenticação. Mesmo que acima Atenção

Configuração global do host

Parâmetro Propósito Valores possíveis Padrão
Hosts Permitidos Filtragem de cabeçalho do host para proteção de host ASP.NET Core. * (todos) ou lista de hosts separada por ponto e vírgula *

Limitação de Taxa de IP

Parâmetro Propósito Valores possíveis Padrão
IpRateLimiting:AtivarLimitaçãoDeTaxaDeEndpoint Habilita regras de limitação específicas para endpoints. verdadeiro / falso verdadeiro
IpRateLimiting:StackBlockedRequests Se verdadeiro , solicitações bloqueadas continuam aumentando contadores. verdadeiro / falso falso
IpRateLimiting:HttpStatusCode Status HTTP retornado quando a solicitação é bloqueada. Código HTTP inteiro (tipicamente 429 ) 429
IpRateLimiting:RealIpHeader Cabeçalho usado para resolver o IP do cliente atrás do proxy. Nome do cabeçalho X-Forwarded-For
IpRateLimiting:ClientIdHeader Cabeçalho opcional de client-id para limitação de taxa personalizada. Nome do cabeçalho X-ClientId

IpRateLimiting:Regras Gerais

Cada objeto de regra possui:

Parâmetro Propósito Valores possíveis Padrão no arquivo enviado
Endpoint Rota/padrão de método para proteger. Formato VERBO:/caminho Múltiplas configurações padrão (veja abaixo)
Período Janela de taxa. e.g. 1s , 1m , 5m , 1h , 1d 5m (para todas as regras padrão)
Limite Máximo de solicitações no período. Número inteiro positivo 5 (para todas as regras padrão)

Endpoints protegidos por padrão:

  • POST:/Conta/Login
  • POST:/Conta/RedefinirSenha
  • POST:/Lançamento
  • POST:/RemoteApp
  • POST:/2FA/Validate
  • POST:/2FA/ReenviarCódigo
  • POST:/2FA/Status

Saml2

Parâmetro Propósito Valores possíveis Padrão
Saml2:IdPMetadata URL de metadados do IdP usada para carregar a configuração do provedor SAML. URL HTTPS Válido ""
Saml2:Issuer ID da entidade SP (esta identidade do Portal Web). string URI ""
Saml2:DestinoDeAutenticaçãoÚnica URL do endpoint SSO do IdP (pode ser resolvido automaticamente a partir dos metadados). URL HTTPS ""
Saml2:SingleLogoutDestination URL do endpoint SLO do IdP (pode ser resolvido automaticamente a partir dos metadados). URL HTTPS ""
Saml2:SignatureAlgorithm Algoritmo de assinatura XML. Valor URI aceito pela biblioteca SAML http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
Saml2:ArquivoDoCertificadoDeAssinatura Arquivo de certificado de assinatura local SP (relativo ao caminho base do aplicativo). Nome/caminho do arquivo ""
Saml2:SenhaDoCertificadoDeAssinatura Senha para o arquivo de certificado de assinatura. String ""
Saml2:ArquivoDeCertificadoDeValidaçãoDeAssinatura Arquivo de certificado IdP usado para validar assinaturas (opcional se os metadados fornecerem certificados). Nome/caminho do arquivo ""
Saml2:ModoDeValidaçãoDoCertificado Modo de validação da cadeia de certificados. Nenhum , PeerTrust , ChainTrust , Confiança de Parceria ou Cadeia , CustomRootTrust ChainTrust
Saml2:ModoDeRevogação Comportamento de revogação de certificado. NoCheck , Online , Offline Offline
Saml2:XmlCanonicalizationMethod URI do algoritmo de canonização XML. URI de canonização XML-DSig http://www.w3.org/2001/10/xml-exc-c14n#

ConfiguraçõesPersonalizadas

Em appsettings.json , esses valores são armazenados como strings ( true / falso ) e mapeado para booleanos por vinculação de configuração .NET.

Parâmetro Propósito Valores possíveis Padrão
CustomSettings:UsarCaminhoCompletoDoAplicativo Controla se o caminho completo do aplicativo é usado ao listar/iniciar aplicativos atribuídos. true / falso falso
CustomSettings:AtivarAutenticaçãoAutomáticaWindowsNoLocalhost Permite autenticação automática do Windows no cenário localhost/loopback. true / falso falso
CustomSettings:AtivarCriptografiaDeSenha Criptografa domínio/nome de usuário/senha na string de conexão de lançamento HTML5 usando parâmetros RSA. true / falso true
CustomSettings:Bypass2FAParaRedeLocal Ignora o 2FA do Portal Web quando o cliente está na mesma sub-rede privada que o servidor. true / falso falso
CustomSettings:UseSamlPasswordClaim Tipo de reivindicação SAML usado como senha do Windows encaminhada para o lançamento da sessão. Tipo de reivindicação URI/nome ou string vazia ""