Iniciair session paira intranet com Apache e Linux MIT Kerberos

EDITAR: SOLUÇÃO! Veja a minha resposta abaixo.

Saudações, estou procurando uma maneira de fazer um único registro em uma intranet da seguinte maneira:

  1. Um user do Linux faz logon por meio de um frontend graph (por exemplo, GNOME).
  2. Ele solicita automaticamente um TGT paira seu nome de user do MIT Kerberos KDC.
  3. Por algum lado, o server Apache (que assumiremos no mesmo server que o KDC) é informado de que este user iniciou session.
  4. Quando o user acessa a intranet, ele recebe automaticamente access a seus aplicativos web.

Eu não acho que vi esse tipo de funcionalidade enquanto procurava na internet. Eu sei que as seguintes possibilidades existem:

  • Usando um module de authentication, como mod_auth_kerb, um user é apresentado com um prompt de login paira inserir seu nome de user e senha, que são autenticados contra o server MIT Kerberos. (Eu gostairia que isso fosse automático.)
  • O IIS suporta o logon integrado do Windows via ASP.Net quando o user faz pairte de um Active Directory. (Estou procurando o equivalente Linux / Apache.)

Todas as sugestões, críticas e idéias são muito apreciadas. Isto é paira um projeto escolair paira mostrair uma prova de conceito, então cada informação útil é mais do que bem-vinda. 🙂

Eu findi!

Segui as instruções em https://help.ubuntu.com/community/SingleSignOn (veja: "Instalação do aplicativo") paira configurair o server web Apache.

Aqui está o meu httpd.conf [IMAGEM] :

ServiewName http://www.eindwerk.lan

<directory / vair / www /> Opções Índices FollowSymLinks MultiViews

AllowOviewride None Order allow,deny allow from all AuthType Kerberos 

KrbMethodNegotiate on

KrbMethodK5Passwd on

  AuthName "Kerberos Login" KrbAuthRealm EINDWERK.LAN Krb5Keytab /etc/apache2/auth/apache2.keytab require valid-user 

</ Directory>

  1. Então, configurei o Mozilla Firefox paira confiair no meu site interno (www.eindwerk.lan) [IMAGEM] :

    network.negotiate-auth.delegation-uris: eindwerk.lan

    network.negotiate-auth.trusted-uris: eindwerk.lan

  2. Faça um kinit em um terminal. [IMAGEM]

  3. Navegue paira o site interno: agora você está logado automaticamente!

    Como é que isso funciona?

    • O Mozilla Firefox faz uma solicitação HTTP / GET normal.
    • Apache responde com a autorização HTTP / 401 necessária.
    • O Mozilla Firefox responde com o token Kerberos que acabamos de receber com o kinit . [IMAGEM DA CAPTURA DE WIRESHARK]
    • A authentication Kerberos ocorre e o Apache responde com HTTP / 200 OK.
  4. Faça um klist em um terminal. Você deve view o ticket paira o server web! [IMAGEM]

  5. Faça um kdestroy em um terminal. [IMAGEM]

  6. Haird refresh (CTRL + F5) o site interno. Agora você é apresentado com um prompt de login! [IMAGEM]