mod_auth_kerb é específico do Kerberos: ele implementa a autenticação do Kerberos via HTTP Negotiate. Na variável de ambiente REMOTE_USER, ele informa a identificação do Kerberos ("nome principal") do cliente autenticado. Os nomes principais do Kerberos são escritos foo / bar / baz /...@ REALM; os componentes principais são chamados de "instâncias" (um deles geralmente vê apenas um ou dois), e o "domínio" é um domínio de confiança dentro do sistema Kerberos, um mecanismo de federação integrado. No AD, o território do Kerberos é o mesmo que o nome do "domínio" do AD, em maiúsculas.
mod_auth_kerb (uma versão nova o suficiente) tem um recurso chamado KrbLocalUserMapping. Isso chama a função de biblioteca Kerberos krb5_aname_to_localname () para converter um nome principal em um "nome local"; isto é, algo significativo no host local. O que essa função faz depende da implementação do Kerberos. No MIT Kerberos, você pode personalizar o mapeamento com as regras "auth_to_local" em krb5.conf. A regra padrão traduz apenas foo @ [default realm] - > foo, que é suficiente em situações simples em que há um único domínio e seus nomes de usuários são os mesmos que os nomes principais do Kerberos. No entanto, você pode querer regras mais complexas. Por exemplo, temos uma convenção segundo a qual os administradores do Windows têm uma conta "user-admin" com direitos de administrador de domínio, além de suas contas de "usuário". Quando logados em suas contas "admin", eles seriam rejeitados quando fossem para serviços da web autenticados em execução no Unix, já que "user-admin" não era reconhecido. Acabamos de adicionar um mapeamento para que user-admin @ REALM seja mapeado para "user", assim como o user @ REALM, e isso foi imediatamente corrigido de forma transparente para todos os aplicativos da web. A outra coisa boa sobre fazer isso dessa maneira é que ele funciona para qualquer serviço kerberizado que usa krb5_aname_to_localname (), ao invés de fazê-lo com o mod_map_user, que só se aplica ao Apache.
Algumas pessoas sugeriram apenas o mapeamento geral de todos os nomes user @ REALM para "usuário", independentemente do domínio (isso é o que a solução mod_map_user sugerida faria). Observe que esse é um problema de segurança em potencial: se você tiver várias regiões do Kerberos conectadas por confiança entre domínios, a porção da região se tornará significativa; faz parte da identificação do usuário. Se você acabou de tira-lo, isso significa que um administrador em outro reino pode representar um usuário local para o Apache apenas criando uma conta com o mesmo nome.