Procurar Resultados :

×

Registrar Contato

Configurar NTLM/Kerberos SSO Single Sign-On para UBUNTU/RHEL/CentOS

A extensão Kerberos SSO facilita a obtenção de um tíquete de concessão de tíquete Kerberos (TGT) do Active Directory da sua organização ou de outro domínio de provedor de identidade, permitindo que os usuários se autentiquem em recursos como sites, aplicativos e servidores de arquivos.


Para UBUNTU:

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

Para RHEL/CentOS:

  • Use o seguinte comando no seu terminal para instalar as bibliotecas do cliente Kerberos.
  • yum install krb5-workstation krb5-libs krb5-auth-dialog

As etapas a seguir são usadas para configurar os domínios do Active Directory no arquivo de configuração Kerberos:

  • Abra e edite o arquivo /etc/krb5.conf.
  • Adicione o seguinte trecho de configuração ao arquivo krb5.conf.
  • EXAMPLE.ORG= { kdc = <AD DOMAIN CONTROLLER IP/DNS> :88 }

    OBSERVAÇÃO: Substituir o CONTROLADOR DE DOMÍNIO DE ANÚNCIOS IP/DNS com seu endereço IP/DNS. Certifique-se EXEMPLO.ORG deve estar em letras maiúsculas.

    Substituir o EXEMPLO.ORG 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.

Para UBUNTU:

  • Use o seguinte comando para instalar o módulo auth_kerb para o Apache.
  • 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 a ativação, reinicie o Apache para que a ação entre em vigor.

Para RHEL/CentOS:

  • Use o seguinte comando para instalar o módulo auth_kerb para o Apache.
  • yum install mod_auth_kerb
  • Reinicie o Apache para que as alterações entrem em vigor.
  • No Controlador de Domínio do AD, execute o seguinte comando para criar o arquivo Keytab.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.ORG -pass PASSWORD -mapuser <svc@EXAMPLE.ORG> -Ptype KRB5_NT_PRINCIPAL -out "<PATH>\spn.keytab"

    OBSERVAÇÃO: Certifique-se de que EXAMPLE.ORG esteja em letras maiúsculas.


Nome do host do servidor: É o nome do host do site hospedado no servidor.
Nome do host do servidor: É o nome do host do site hospedado no servidor.
EXEMPLO.ORG: É o nome de domínio do Active Directory.
SENHA: É a senha da conta de serviço usada acima.
svc@EXAMPLE.ORG: É uma conta de serviço no Active Directory.
Caminho: Caminho para um local que armazenará o arquivo keytab.

    OBSERVAÇÃO: O comando acima cria um arquivo keytab. Ele precisa ser salvo no servidor. 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.


  • A conta de serviço tem alguns pré-requisitos:
    • A senha da conta deve ter uma senha definida como Não expirado.
    • A conta deve ser confiável para delegação.
  • Copie o Livro arquivo do Controlador de Domínio do AD para o servidor web hospedado no Apache.

Para UBUNTU:

  • Edite o arquivo /etc/apache2/sites-enabled/000-default.conf.
  • Adicione a seguinte seção no diretório do site.
  • <Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>

Para RHEL/CentOS:

  • Edite o arquivo de configuração auth_kerb.conf na pasta /etc/httpd/conf.d/.
  • Adicione a seguinte seção no diretório do site.
  • LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so <Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>

    OBSERVAÇÃO: Certifique-se de que EXAMPLE.ORG esteja em letras maiúsculas.


A seguir estão os componentes da configuração acima:

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

Estas são as mensagens de erro mais comuns:

    gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied).
  • Permissões de sistema de arquivo erradas para /etc/krb5.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 400 nome do arquivo.
  • 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/krb5.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 errada em /etc/krb5.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.

ADFS_sso ×
Olá!

Preciso de ajuda? Estamos bem aqui!

ajuda