Procurar Resultados :

×

Registrar Contato

Guia para configurar o Kerberos Single Sign-On (SSO)

O Kerberos é um protocolo de autenticação baseado em criptografia que protege o acesso a aplicativos. Este protocolo foi projetado para fornecer autenticação segura em redes inseguras. A ideia principal por trás do Kerberos é autenticar usuários, impedindo que senhas sejam enviadas pela internet.


Integração LDAP/Active Directory descomplicada para vídeos WordPress.



Termos do Kerberos:

Kerberos: Kerberos é um protocolo de autenticação que suporta o conceito de Single Sign-On (SSO). No caso do HTTP, o suporte para Kerberos geralmente é fornecido usando o mecanismo de autenticação "SPNEGO".

Domínio Kerberos: Um domínio administrativo para autenticação é designado pelo termo "realm". Seu objetivo é definir as restrições sobre quando um servidor de autenticação pode autenticar um usuário, host ou serviço. Isso não implica que um usuário e um serviço devam ser membros do mesmo realm para que a autenticação ocorra: se os dois objetos estiverem conectados por meio de uma conexão de confiança, mesmo pertencendo a realms diferentes, a autenticação ainda poderá ocorrer.

Principal: Em um sistema Kerberos, um Principal Kerberos representa uma identidade distinta para a qual o Kerberos pode emitir tickets de acesso a serviços compatíveis com Kerberos. O separador "/" é usado para separar os vários componentes que compõem os nomes dos principais. O caractere "@" pode ser usado para identificar um domínio como o elemento final do nome. Se nenhum domínio for especificado, presume-se que o Principal pertença ao domínio padrão definido no arquivo krb5.conf.

Clientes/Usuários: Um processo que acessa um serviço em nome de um usuário. Pode haver vários clientes ou usuários em um domínio.

Serviço: Algo a que o usuário deseja ter acesso.

SSO: Single Sign-On (Autenticação Única) é um procedimento que permite ao usuário fazer login apenas uma vez e acessar diversos serviços após concluir a autenticação. Após o login em um serviço principal, isso implica na autenticação em todos os serviços aos quais o usuário concedeu autorização. O SSO oferece diversas vantagens, uma das quais é evitar o processo tedioso de validar repetidamente a identidade usando senhas ou outros sistemas de autenticação.

GSSAPI: Os programas podem acessar serviços de segurança por meio da Interface de Programação de Aplicativos de Serviço de Segurança Genérica (GSSAPI), que é uma interface de programação de aplicativos (API). O GSSAPI é um padrão da IETF. Ele não oferece segurança por si só. Em vez disso, implementações do GSSAPI são oferecidas por provedores de serviços de segurança. A troca de mensagens opacas (tokens), que oculta os detalhes da implementação do aplicativo de nível superior, é a característica distintiva dos aplicativos GSSAPI.

SPNEGO: O software cliente-servidor utiliza o Mecanismo de Negociação GSSAPI Simples e Protegido, frequentemente chamado de "spen-go", para negociar a seleção da tecnologia de segurança. Quando um aplicativo cliente precisa fazer login em um servidor remoto, mas nenhuma das partes tem certeza de quais protocolos de autenticação a outra suporta, o SPNEGO é empregado. O pseudo-mecanismo utiliza um protocolo para identificar os mecanismos GSSAPI comuns disponíveis, escolhe um e, em seguida, atribui todas as ações de segurança subsequentes a esse mecanismo escolhido.

KDC: Um Centro de Distribuição de Chaves é um serviço de rede que fornece tickets e chaves de sessão temporárias; ou uma instância desse serviço ou o host no qual ele é executado. O KDC atende tanto às solicitações iniciais de tickets quanto às solicitações de concessão de tickets. A parte referente ao ticket inicial é às vezes chamada de Servidor (ou serviço) de Autenticação. A parte referente à concessão de tickets é às vezes chamada de servidor (ou serviço) de concessão de tickets.



O acesso de um cliente a um recurso em um domínio do Active Directory pode ser autenticado usando o protocolo de autenticação de desafio-resposta conhecido como Gerenciador de LAN do Windows NT (NTLM). Quando um cliente solicita acesso a um serviço relacionado ao domínio, o serviço envia um desafio ao cliente, instruindo-o a usar seu token de autenticação para realizar uma operação matemática e, em seguida, fornecer o resultado ao serviço. O resultado pode ser verificado pelo serviço ou pelo Controlador de Domínio (DC). O serviço concede acesso ao cliente se o DC ou o serviço verificar se a resposta do cliente está correta.
Como permite que o usuário insira o fator de autenticação subjacente apenas uma vez, durante o login, o NTLM é uma espécie de logon único (SSO).


Fluxo de logon único (SSO) do protocolo de autenticação NTLM

  • O NEGOCIAR_MENSAGEM define uma mensagem de Negociação NTLM enviada do cliente para o servidor. Essa mensagem permite que o cliente especifique suas opções NTLM suportadas para o servidor.
  • O MENSAGEM_DE_DESAFIO define uma mensagem de desafio NTLM que é enviada do servidor para o cliente e é usada pelo servidor para desafiar o cliente a provar sua identidade.
  • O MENSAGEM_AUTENTICADA define uma mensagem de autenticação NTLM que é enviada do cliente para o servidor após o CHALLENGE_MESSAGE ser processado pelo cliente.

Observação e contato conosco - login único SSO kerberos ldap

Observação: a autenticação do Windows usa o protocolo de autenticação Kerberos ou o protocolo de autenticação NTLM, dependendo das configurações do cliente e do servidor.



Um protocolo de segurança de rede de computadores chamado Kerberos autentica solicitações de serviço entre dois ou mais hosts confiáveis ​​em uma rede não confiável, como a Internet

  • Mensagem A: Chave de sessão cliente/TGS criptografada usando a chave secreta do cliente/usuário.
  • Mensagem B: Ticket-Granting-Ticket criptografado usando a chave secreta do TGS.
  • Mensagem C: Composto pelo TGT da mensagem B e pelo ID do serviço solicitado.
  • Mensagem D: Autenticador criptografado usando a chave de sessão do cliente/TGS.
  • Mensagem E: Ticket de cliente para servidor criptografado usando a chave secreta do serviço.
  • Mensagem F: Chave de sessão cliente/servidor criptografada com a chave de sessão cliente/TGS.
  • Mensagem G: Um novo autenticador, que inclui o ID do cliente, registro de data e hora e é criptografado usando a chave de sessão cliente/servidor.
  • Mensagem H: O registro de data e hora encontrado no Autenticador do cliente criptografado usando a Chave de Sessão Cliente/Servidor.


Pré-requisitos:

  1. Uma conta de serviço/conta de usuário no Active Directory.
  2. A senha da conta deve ter uma senha definida como Não expirado.

Etapa 1: Crie o arquivo Keytab no Controlador de Domínio do AD:

  • No Controlador de Domínio do AD, abra o prompt de comando no modo de administrador e execute o seguinte comando para criar o arquivo Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Observação e contato conosco - login único SSO kerberos ldap

Observação: Certifique-se de que EXAMPLE.COM esteja em maiúsculas. Se o usuário com o SPN já existir, use-o em vez de criar um novo. O princípio do Kerberos diferencia maiúsculas de minúsculas. Verifique se há diferenças entre maiúsculas e minúsculas antes de executar o comando keytab.


  • A seguir estão os componentes do comando.
Nome do host do servidor: É o nome do host do site hospedado no servidor.
EXEMPLO.COM: É o nome de domínio do Active Directory.
Nome de usuário: É uma conta de serviço no Active Directory.
Senha: É a senha da conta de serviço usada acima.
Caminho: Caminho para um local que armazenará o arquivo keytab. (C:\Temp\spn.keytab)
Observação e contato conosco - login único SSO kerberos ldap

Observação: O comando acima cria um arquivo keytab. Ele precisa ser colocado no servidor do cliente onde seu site WordPress está hospedado. O usuário que executa o Apache deve ter acesso total a este arquivo. O usuário deve ter permissão para acessar o arquivo keytab.


  • Abra Usuários e Computadores do Active Directory e, no menu superior, selecione Ver >> Recursos avançados.
  • Abra a conta de serviço e vá para a guia do editor de atributos, navegue até o servicePrincipalName para verificar a entrada SPN.
  • Navegue até a Delegação aba.
  • Selecionar Confiar neste usuário para delegação a qualquer serviço (somente Kerberos).
Delegação SSO do serviço Kerberos para o Windows Active Directory

  • Clique Inscreva-se.
  • Copie o Livro arquivo do Controlador de Domínio do AD para o servidor web hospedado no Apache.
  • Forneça permissão para o arquivo keytab do Kerberos:
chmod 644 etc/apache2/spn.keytab

Etapa 2: instalar bibliotecas de cliente Kerberos no servidor web:

  • Use o seguinte comando no seu terminal para instalar as bibliotecas do cliente Kerberos.
sudo apt-get install krb5-user

Etapa 3: instalar módulos para o Apache:


Observação e contato conosco - login único SSO kerberos ldap

Nota: Nas versões mais recentes do Ubuntu/Debian, o mod_auth_kerb foi descontinuado e substituído pelo mod_auth_gssapi.


  • Existem dois módulos do Apache, mas apenas um deles precisa ser instalado:

    1. Módulo mod-auth-gssapi para Apache.
    2. Módulo mod_auth_kerb para apache. (obsoleto)


1. Instale o módulo mod-auth-gssapi para o apache:

  • Use o seguinte comando para instalar o libapache2-mod-auth-gssapi módulo para Apache em sistemas baseados em Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Instale o módulo mod_auth_kerb para apache (obsoleto):

  • Use o seguinte comando para instalar o módulo auth_kerb para Apache em sistemas baseados em Debian:
sudo apt-get install libapache2-mod-auth-kerb
  • Depois que o módulo auth_kerb estiver instalado, ele precisa ser habilitado por meio do seguinte comando.
a2enmod auth_kerb
  • Após habilitar, Reinicie o Apache para fazer efeito.


Etapa 4: configure o domínio do Active Directory no arquivo de configuração do Kerberos:

  • Abra e edite o krb5.conf arquivo.
    O caminho para o arquivo krb5.conf para Linux é C:/etc/krb5.conf e para outros sistemas baseados em UNIX é c:/etc/krb5/krb5.conf
  • Adicione o seguinte trecho de configuração ao krb5.conf arquivo na seção mencionada:
[libdefaults]
default_realm = EXAMPLE.COM
# ...
# ...
[realms]
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Substituir o CONTROLADOR DE DOMÍNIO DE ANÚNCIOS IP/DNS com seu IP/DNS endereço. Garantir EXEMPLO.COM deve estar em letras maiúsculas.
Substituir o EXEMPLO.COM com o nome de domínio do Active Directory e certifique-se de que a porta 88 no Controlador de Domínio do AD esteja acessível a partir deste servidor.


  • Salve o arquivo.

Etapa 5: configurar o Kerberos SSO para o diretório do site:

  • Edite o arquivo de configuração do host virtual imposto que está armazenado em Diretório /etc/apache2/sites-enabled ou o arquivo host virtual padrão chamado 000-default.conf
Login LDAP para sites de intranet - login único SSO Kerberos

Nota: Adicione a seguinte seção no diretório de acordo com o módulo Apache utilizado. Exemplo: "mod_auth_kerb" ou "mod_auth_gssapi".


  • 1. Adicione a seguinte seção no diretório do site para mod_auth_gssapi.
<IfModule !mod_auth_gssapi.c>
    LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
</IfModule>
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiAllowedMech krb5
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    BrowserMatch Windows gssapi-no-negotiate
    Require valid-user
</Directory>

OR


  • 2. Adicione a seguinte seção no diretório do site para mod_auth_kerb (descontinuada).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Garantir EXEMPLO.COM deve estar em letras maiúsculas.
A seguir estão os componentes da configuração acima:


EXEMPLO.COM: Este é o domínio do Active Directory conforme configurado em krb5.conf.
CAMINHO PARA KEYTAB: Caminho acessível para o keytab neste servidor. (etc/spn.keytab)
  • Após essa configuração, o Apache precisa ser reiniciado para que as alterações tenham efeito.

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Depois de terminar de configurar as definições, clique aqui para configurar navegadores para Kerberos SSO.
Para testar sua configuração Kerberos/NTLM SSO, clique aqui.
Para solucionar qualquer erro, por favor clique aqui.


Etapa 1: Crie o arquivo Keytab no Controlador de Domínio do AD:

  • No Controlador de Domínio do AD, abra o prompt de comando no modo de administrador e execute o seguinte comando para criar o arquivo Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Certifique-se de que EXAMPLE.COM esteja em maiúsculas. O princípio do Kerberos diferencia maiúsculas de minúsculas. Verifique se há diferenças entre escrever em maiúsculas e minúsculas antes de executar o comando keytab.


  • A seguir estão os componentes do comando.
Nome do host do servidor: É o nome do host do site hospedado no servidor.
EXEMPLO.COM: É o nome de domínio do Active Directory.
Nome de usuário: É uma conta de serviço no Active Directory.
Senha: É a senha da conta de serviço usada acima.
Caminho: Caminho para um local que armazenará o arquivo keytab. (C:\Temp\spn.keytab)
Login LDAP para sites de intranet - login único SSO Kerberos

Observação: O comando acima cria um arquivo keytab . Ele precisa ser colocado no servidor do cliente onde seu site WordPress está hospedado. O usuário que executa o Apache deve ter acesso total a este arquivo. O usuário deve ter permissão para acessar o arquivo keytab.


  • Copie o Arquivo Keytab do Controlador de Domínio do AD para o servidor web hospedado no Apache.
  • Forneça permissão para o arquivo keytab do Kerberos:
chmod 644 etc/httpd/spn.keytab

Etapa 2: instalar bibliotecas de cliente Kerberos no servidor web:

  • Use o seguinte comando no seu terminal para instalar as bibliotecas do cliente Kerberos.
yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session
Login LDAP para sites de intranet - login único SSO Kerberos

Nota: Nas versões mais recentes do CentOS, o mod_auth_kerb foi descontinuado e substituído pelo mod_auth_gssapi.


Etapa 3: instalar módulos para o Apache:

Login LDAP para sites de intranet - login único SSO Kerberos

Nota: Nas versões mais recentes do Ubuntu/Debian, o mod_auth_kerb foi descontinuado e substituído pelo mod_auth_gssapi.


  • Existem dois módulos do Apache, mas apenas um deles precisa ser instalado:

    1. Módulo mod-auth-gssapi para Apache.
    2. Módulo mod_auth_kerb para apache (obsoleto).


1. Instale o módulo mod-auth-gssapi para o apache:

  • Use o seguinte comando para instalar o Módulo libapache2-mod-auth-gssapi para Apache em sistemas baseados em Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Instale o módulo mod_auth_kerb para apache (obsoleto):

  • Use o seguinte comando para instalar o módulo auth_kerb para Apache em sistemas baseados em Red Hat. (Para as versões mais recentes do RHEL, use o módulo mod-auth-gssapi)
yum install mod_auth_kerb

Etapa 4: configure o domínio do Active Directory no arquivo de configuração do Kerberos:

  • Abra e edite o krb5.conf arquivo.
    O caminho para o arquivo krb5.conf para RHEL é C:/etc/krb5.conf
  • Adicione o seguinte trecho de configuração ao krb5.conf arquivo na seção mencionada:
  • Navegue até a [libdefaults] seção e adicione o seguinte:
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true

  • Navegue até a [reinos] seção e adicione o seguinte:
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}

  • Navegue até a [domínio_realm] seção e adicione o seguinte:
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Substituir o CONTROLADOR DE DOMÍNIO DE ANÚNCIOS IP/DNS com seu endereço IP/DNS. Garantir EXAMPLE.COM deve estar em letras maiúsculas.
Substituir o EXEMPLO.COM com o nome de domínio do Active Directory e certifique-se de que a porta 88 no Controlador de Domínio do AD esteja acessível a partir deste servidor.


  • Salve o arquivo.

Etapa 5: configure o domínio do Active Directory no arquivo de configuração do Kerberos:

  • Editar o arquivo de configuração do host imposto /etc/httpd/conf/httpd.conf
  • Adicione a seguinte seção no diretório do site para mod_auth_gssapi
LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    Require valid-user
</Directory>

OR


  • Adicione a seguinte seção no diretório do site para mod_auth_kerb (descontinuada).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

  • A seguir estão os componentes da configuração acima:
CAMINHO PARA KEYTAB Caminho acessível para o keytab neste servidor. (etc/apache2/spn.keytab)
"/espaço reservado" Caminho para a raiz do documento
  • Após essa configuração, o Apache precisa ser reiniciado para que as alterações tenham efeito.

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Depois de terminar de configurar as definições, clique aqui para configurar navegadores para Kerberos SSO.
Para testar sua configuração Kerberos/NTLM SSO, clique aqui.
Para solucionar qualquer erro, por favor clique aqui.



  • Abra o prompt de comando em Modo de administrador.
  • Execute o seguinte comando para adicionar Nome da entidade de serviço (SPN) para a conta de serviço.
Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Suponha que o site precise responder em http://nomedamáquina e http://nomedamáquina.dominio.com. Precisamos especificar esses endereços no atributo SPN da conta de serviço.


Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

Exemplo: C:\Users\Administrator> setspn -S HTTP/nome_da_máquina.dominio.com conta_de_serviço

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: "machinename.domain.com" aqui é o nome do computador. Certifique-se de que ele possa ser resolvido no servidor Windows que executa o serviço do Active Directory.


  • Verifique se isso foi definido corretamente executando o seguinte comando:
setspn -l domain or service_account

Exemplo: C:\Users\Administrator> setspn -l service_account ou C:\Users\Administrator> setspn -l domain_name

Definir entrada de nome principal do serviço (SPN) para autenticação Kerberos SSO no servidor Windows IIS

  • O resultado deve listar http/nomedamáquina.domínio.com
  • Abra Usuários e Computadores do Active Directory e, no menu superior, selecione Ver >> Recursos avançados.
  • Abra a conta de serviço e vá para editor de atributos guia, navegue até a servicePrincipalName para verificar o Entrada SPN.
  • Navegue até a Delegação aba.
  • Selecionar Confiar neste usuário para delegação a qualquer serviço (somente Kerberos).
Delegação de serviço Kerberos para logon único Kerberos para sistemas RHEL, CentOS, Ubuntu e Fedora

  • Clique Inscreva-se.
  • Abra o Gerenciador do IIS e clique no site para o qual você deseja habilitar a autenticação do Windows.
  • Clique duas vezes em Autenticação.
Gerenciador do Windows IIS para configurar as definições de autenticação do Windows para sites para habilitar o SSO do Kerberos

  • Na seção Autenticação, você pode ver que apenas a Autenticação Anônima está habilitada por padrão. O IIS sempre tenta realizar a autenticação anônima, então Desativar autenticação anônima e Habilitar autenticação do Windows.
Habilitar a autenticação do Windows a partir do gerenciador do IIS do Windows para o SSO do Kerberos no aplicativo configurado

  • Botão direito do mouse sobre a Autenticação do Windows e clique no prestadores.
serviço de informações da Internet Gerenciador do IIS Lista de provedores de autenticação do Windows

  • A seguinte janela aparecerá. Certifique-se "Negociar" está no topo da lista de provedores.
O gerenciador do IIS do Windows habilita o provedor de autenticação do Windows para logon único SSO com protocolo Kerberos

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Por padrão, existem dois provedores disponíveis: Negotiate e NTLM. O Negotiate é um contêiner que usa o Kerberos como primeiro método de autenticação e, se a autenticação falhar, o NTLM é usado. Portanto, é necessário que o Negotiate seja o primeiro na lista de provedores.


  • Clique em Ok para fechar a janela.
  • Para configurar o pool de aplicativos do IIS para iniciá-lo a partir da conta SPN criada, clique em Pools de aplicativos para abrir a janela Pools de Aplicativos.
  • Clique com o botão direito do mouse no domínio e, na lista, clique em Configurações avançadas.
Configurações avançadas do site do pool de aplicativos do gerenciador do Serviço de Informações da Internet (IIS) do Windows para habilitar o SSO do Kerberos

  • Na janela Configurações avançadas, em Modelo de processo, clique em Identidade.
Configurar a identidade das configurações avançadas do pool de aplicativos do gerenciador do IIS do Windows para habilitar o SSO do Kerberos

  • Na Identidade do Pool de Aplicativos, selecione Conta personalizada e clique no conjunto botão para definir a Identidade.
  • Mudá-lo de ApplicationPoolIdentidade para \.

Exemplo: domain.com\service_account

Kerberos SSO no Windows configura conta personalizada a partir das configurações de identidade do pool de aplicativos do gerenciador do IIS

  • Vou ao Editor de configuração.
Acesse o editor de configuração do gerenciador do IIS do Windows para habilitar a autenticação Kerberos/NTLM no site

  • Na lista suspensa, selecione system.webServer > segurança > autenticação > windowsAuthentication.
Configurar useAppPoolCredentials para configurar a autenticação Kerberos para o servidor Windows IIS

  • Mudar useAppPoolCredentials como Verdadeiro. e useKernelMode para Falso.
Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Definir useAppPoolCredentials como True significa que permitimos que o IIS use a conta de domínio para descriptografar o tíquete Kerberos dos clientes.


  • Clique Inscreva-se.
  • Reinicie o servidor IIS.
  • Você pode verificar se a autenticação Kerberos está sendo usada no site monitorando o tráfego HTTP usando o Fiddler.

Inicie o Fiddler e abra o navegador no site desejado. Localize a linha de acesso ao site no lado esquerdo da janela. Selecione a aba Inspecionar no lado direito da janela. É evidente que o Kerberos foi usado para autenticação no site do IIS a partir da linha "Cabeçalho de Autorização (Negociar) parece conter um tíquete Kerberos".

O tíquete Kerberos está contido no cabeçalho de autorização durante o processo de SSO do Kerberos

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Depois de terminar de configurar as definições, clique aqui para configurar navegadores para Kerberos SSO.
Para testar sua configuração Kerberos/NTLM SSO, clique aqui.
Para solucionar qualquer erro, por favor clique aqui.



  • Abra o prompt de comando em Modo de administrador.
  • Execute o seguinte comando para adicionar Nome da entidade de serviço (SPN) para a conta de serviço.
Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

Exemplo: C:\Users\Administrator> setspn -S HTTP/ nome_da_máquina.dominio.com conta_de_serviço


Login LDAP para sites de intranet - login único SSO Kerberos

Observação: "machinename.domain.com" aqui é o nome do computador. Certifique-se de que ele possa ser resolvido no servidor Windows que executa o serviço do Active Directory.


  • Verifique se isso foi definido corretamente executando o seguinte comando:
setspn -l domain\service_account
  • O resultado deve listar http/nomedamáquina.domínio.com
  • Abra Usuários e Computadores do Active Directory e, no menu superior, selecione Ver >> Recursos avançados.
  • Abra a conta de serviço e vá para editor de atributos guia, navegue até a servicePrincipalName para verificar o Entrada SPN.
  • Navegue até a Delegação aba.
  • Selecionar Confiar neste usuário para delegação a qualquer serviço (somente Kerberos).
Kerberos para autenticação do Windows no servidor IIS

  • Clique Inscreva-se.
  • Clique aqui para baixar o módulo apache.
  • Copie o mod_authnz_sspi.so da Apache24 > módulos pasta e coloque-a no diretório de módulos (C:\xampp\apache\modules).
  • Copie o sspipkgs.exe arquivo de Apache24 -> bin pasta e coloque-a na pasta bin da sua pasta Xampp Apache (.....\xampp\apache\bin) no seu servidor web.
  • Abra httpd.conf (.....\xampp\apache\conf) e coloque a linha de código abaixo na seção LoadModule.
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • Certifique-se de que os seguintes módulos não estejam comentados:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

  • Além disso, certifique-se de habilitar extensão ldap.
  • Abra o arquivo httpd.conf em (.....\xampp\apache\conf\httpd.conf).
    Acesse e cole as linhas abaixo depois de #Require all grants.
<Directory "...../xampp/htdocs">
......
......
#Require all granted
AllowOverride None Options None
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user
</Directory>

  • Reinicie seu Servidor Apache.

Login LDAP para sites de intranet - login único SSO Kerberos

Observação: Depois de terminar de configurar as definições, clique aqui para configurar navegadores para Kerberos SSO.
Para testar sua configuração Kerberos/NTLM SSO, clique aqui.
Para solucionar qualquer erro, por favor clique aqui.




Login LDAP para sites de intranet - login único SSO Kerberos

Nota: A configuração do lado do cliente permite que o navegador utilize o SPNEGO para negociar a autenticação Kerberos. É necessário garantir que o navegador no sistema do usuário final esteja configurado para suportar a autenticação Kerberos.



Configuração geral do Kerberos SSO para todos os navegadores:

  • Vá ao Painel de Controle e clique em Rede e Internet >> Opções de Internet.
  • Isso abrirá uma janela de Propriedades da Internet. Clique em Segurança >> Intranet Local >> Sites.
Configurar navegadores para autenticação Kerberos com configurações de opções de internet

  • Depois disso, clique no Botão Avançado.
Configurar as configurações avançadas das opções da Internet para o Kerberos SSO no Chrome e no Internet Explorer

  • De acordo com o relatório Adicione este site à zona seção adicione a URL do site no qual você deseja fazer login com SSO.
Configurar site na Zona de Intranet a partir das opções de internet para Kerberos SSO

  • Clique Ferramentas > Opções da Internet > Segurança > Intranet local > Nível personalizado.
  • Role para baixo até as opções de Autenticação do Usuário e selecione Login automático apenas na zona da Intranet.
Logon automático na zona da intranet usando o protocolo de autenticação Kerberos

  • Clique em Ok botão e reinicie o navegador.


Depois de fazer as configurações acima, você não precisa configurar os navegadores Internet Explorer, Google Chrome e Apple Safari.

Internet Explorer:

Por padrão, as configurações gerais do navegador serão aplicáveis, não sendo necessárias mais configurações adicionais para o Internet Explorer.

Google Chrome:

Por padrão, as configurações gerais do navegador serão aplicáveis, não sendo necessárias mais configurações adicionais para o Google Chrome.

Mozilla Firefox:

  • Abra o navegador Mozilla Firefox e digite about: config na barra de endereços.
  • Procurar por rede.negotiate-auth.trusted-uris Nome da preferência e clique em Editar. insira o nome do host ou o domínio do servidor web protegido pelo Kerberos HTTP SPNEGO. Especifique vários domínios e nomes de host separados por vírgula.
Configurar o Mozilla Firefox para Kerberos SSO (logon único)

  • Procurar por rede.automatic-ntlm-auth.trusted-uris Nome da Preferência e clique em Editar. Insira o nome do host ou o domínio do servidor web protegido pelo Kerberos HTTP SPNEGO. Especifique vários domínios e nomes de host separados por vírgula.
configurar as configurações do Mozilla Firefox para autenticação Kerberos

  • Clique OK e reinicie o navegador.

Safári de maçã:

O Safari no Windows suporta SPNEGO sem necessidade de configuração adicional. Ele suporta Kerberos e NTLM como submecanismo do SPNEGO.



Sincronização de tempo:

O protocolo Kerberos exige que o horário do cliente e do servidor coincidam: se o relógio do sistema do cliente não coincidir com o do servidor, a autenticação falhará. A maneira mais simples de sincronizar os relógios do sistema é usar um servidor NTP (Network Time Protocol).



Verificar com comandos:

Para verificar sua configuração keytab e kerberos, você pode executar os seguintes comandos:

  1. Lista de K: O comando klist exibe o conteúdo de um cache de credenciais Kerberos ou de uma tabela de chaves. Com este comando, você pode verificar se obteve um tíquete válido ou não.
  2. klist -t -k etc/apache2/spn.keytab: Para listar todas as entradas na tabela de chaves etc/apache2/spn.keytab com registros de data e hora.
  3. klist -ek /etc/apache2/spn.keytab: Exibe o tipo de criptografia da chave de sessão e do tíquete e lista as entradas em uma tabela de chaves.
  4. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/ webserver.seudominio.com @SEUDOMÍNIO.COM: Verifique a autenticação Kerberos com o arquivo keytab.
  5. kdestroy -A: Você pode usar este comando no Linux para redefinir qualquer token Kerberos na sua máquina local. O comando destrói seu tíquete Kerberos anterior.
  6. limpeza da lista k: Você pode usar este comando no Windows para redefinir qualquer token Kerberos na sua máquina local. O comando destrói seu tíquete Kerberos anterior.
  7. KRB5_TRACE=/dev/stdout kinit -kt /etc/krb5.keytab HTTP/≶Nome do host do servidor>: Você pode usar este comando no seu servidor web Linux para obter o tíquete Kerberos usando o arquivo keytab e obter informações detalhadas para depuração do processo de autenticação Kerberos habilitando o rastreamento Kerberos.


Configuração de teste:

  • Para testar a configuração do SSO, crie um test.php arquivo em seu diretório raiz do WordPress.
  • Digite a linha abaixo:
<?php
var_dump($_SERVER);
?>
  • Salve o arquivo e acesse-o no navegador da web. Você verá o Conteúdo $_SERVER.
  • Procurar por "REMOTE_USER" e deve conter o nome de usuário atualmente conectado.
Login LDAP para sites de intranet Kerberos SSO

Nota: Remova o arquivo test.php após verificar sua configuração, pois ele contém informações importantes.


  • Crie Keytabs separadas em cada domínio e mescle-as com a ferramenta ktutil:
ktutil
ktutil: read_kt <keytab_filename_1>
ktutil: read_kt <keytab_filename_2>
ktutil: read_kt <keytab_filename_3>
ktutil: write_kt spn.keytab
ktutil: quit
  • Verifique a mesclagem com o comando abaixo:
klist -k spn.keytab
  • Configurar krb5.conf:

O arquivo krb5.conf contém informações de configuração do Kerberos, incluindo KDC e servidores de administração para um ou mais domínios Kerberos, valores padrão para o domínio atual e mapeamentos de nomes de host para domínios Kerberos. No caso de múltiplos domínios, o arquivo krb5.conf deve ser atualizado com informações sobre vários domínios/domínios de domínio para que a autenticação funcione.



A seguir estão as mensagens de erro mais comuns:


  • kinit: Pre-authentication failed: Invalid argument while getting initial credentials
    or
    GSS ERROR gss_accept_sec_context(): [Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/<Server Host Name>@EXAMPLE.COM kvno x enctype rc4-hmac found in keytab but cannot decrypt ticket)]
    O tipo de criptografia rc4, ainda muito utilizado em ambientes AD, mas já desabilitado por padrão no RHEL-8.3. Você pode consultar o exemplo abaixo para adicionar o tipo de criptografia ao seu arquivo keytab.
    Exemplo: ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

    Certifique-se de que a criptografia Kerberos AES de 256 bits seja compatível com as configurações da "Conta" do usuário.

    propriedades do kerberos krbtgt


  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
    O Kerberos é muito sensível ao tempo. Verifique se os relógios nos hosts do Active Directory e do servidor web são idênticos. Configure um dos seus controladores de domínio para servir como servidor NTP para os computadores clientes.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied) Permissões de sistema de arquivo erradas para /etc/apache2/spn.keytab, ou seja, não legível para o usuário Linux do servidor web.
    Para alterar as permissões do sistema de arquivos, use chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found). Principal de serviço ausente (possivelmente HTTP/ webserver.yourdomain.com @YOURDOMAIN.COM) em /etc/apache2/spn.keytab.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error) O site não está na zona "Intranet Local" no IE ou o IE está configurado incorretamente, consulte A autenticação usa NTLM em vez de Kerberos.

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ). Senha de máquina ou kvno incorreta em etc/apache2/spn.keytab. Recrie o keytab usando as informações corretas.
    Problema com o cache de tickets Kerberos local na sua estação de trabalho, use Kerbtray.exe para limpar o cache de tickets e abrir o site no IE novamente.

  • kinit: KDC has no support for encryption type while getting initial credentials Altere o tipo de criptografia padrão na seção libdefaults do arquivo /etc/apache2/krb5.conf. Adicione default_tgs_enctypes e default_tkt_enctypes à sua configuração.

  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
    Sua conta Kerberos não está mais ativa. As credenciais da conta precisam ser renovadas.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
    O domínio errado foi direcionado ao executar o comando kinit. Verifique o nome do domínio; ele deve estar em letras maiúsculas. EXEMPLO.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials O arquivo /etc/apache2/krb5.conf não contém o nome de domínio do diretório ativo (.EXAMPLE.COM).

  • kinit: Preauthentication failed while getting initial credentials Causado por erro de digitação da senha do Kerberos. Tente novamente. Ou devido ao relógio do seu sistema. Certifique-se de que o comando date retorne uma hora correta, com uma diferença de 5 minutos.

  • kinit: Client not found in Kerberos database while getting initial credentials Seu principal Kerberos pode ser diferente do seu nome de usuário no sistema local.

  • kinit: Client's entry in database has expired Você deve alterar sua senha do Kerberos.


Mais perguntas frequentes ➔

Sim, você pode usar um usuário LDAP existente como principal do serviço Kerberos. No entanto, esse usuário deve ter uma senha definida para nunca expirar. Certifique-se de que essa conta não seja usada por nenhum usuário, pois o aplicativo a utiliza como principal do serviço Kerberos e o keytab correspondente para obter um tíquete Kerberos.

Toda a autenticação no Kerberos ocorre entre clientes e servidores. Portanto, qualquer entidade que receba um tíquete de serviço para um serviço Kerberos é chamada de "cliente Kerberos" na terminologia Kerberos. Usuários são frequentemente considerados clientes, mas qualquer entidade principal pode ser um.
O Centro de Distribuição de Chaves, ou KDC, é normalmente chamado de "servidor Kerberos". Tanto o Serviço de Autenticação (AS) quanto o Serviço de Concessão de Tíquetes (TGS) são implementados pelo KDC. Todas as senhas conectadas a cada entidade principal são armazenadas no KDC. Por isso, é essencial que o KDC seja o mais seguro possível.
O termo "servidor de aplicações" geralmente se refere a softwares Kerberizados que os clientes usam para interagir durante a autenticação usando tickets Kerberos. Um exemplo de servidor de aplicações é o daemon telnet Kerberos.

Isso acontece quando o protocolo NTLM é usado para autenticação em vez do Kerberos.
Isso pode ocorrer por vários motivos:

  • Verifique se você está usando uma máquina associada a um domínio para acessar o site.
  • Certifique-se de que o horário esteja sincronizado entre o servidor LDAP e o servidor web.
  • Confirme se as configurações do seu navegador e as opções da Internet estão configuradas para o Kerberos SSO.
  • Se você ainda estiver enfrentando esse problema, sinta-se à vontade para entrar em contato conosco.




 Obrigado pela sua resposta. Entraremos em contato em breve.

Algo deu errado. Envie sua consulta novamente.

Entraremos em contato com você o mais breve possível!


ADFS_sso ×
Olá!

Preciso de ajuda? Estamos bem aqui!

ajuda