Autenticação de fallback se o mod_auth_kerb falhar

3

Existe uma maneira de o Apache retornar a um método de autenticação diferente se a autenticação Kerberos (por algum motivo) falhar? A ordem dos métodos de autenticação deve ser:

  • Kerberos
  • Active Directory
  • token RSA

A autenticação de token RSA é usada por terceiros externos que não possuem contas do AD.

Deixe-me saber se você precisar de mais informações. Obrigado.

Minha configuração atual é a seguinte:

<Directory "/path/to/directory">
  AuthType Kerberos
  AuthName "Please provide credentials to log in"
  KrbAuthoritative off
  AuthzLDAPAuthoritative off
  AuthBasicAuthoritative off
  AuthBasicProvider this-sso this-ad this-radius
  Require valid-user
  SSLRequireSSL
</Directory>

Os alias de autenticação estão abaixo:

<AuthnProviderAlias kerberos this-sso>
  KrbAuthRealms THIS.LOCAL
  KrbMethodNegotiate on
  KrbMethodK5Passwd off
  KrbDelegateBasic on
  Krb5Keytab /etc/apache2/this.keytab.key
  KrbServiceName HTTP
  KrbVerifyKDC off
</AuthnProviderAlias>

<AuthnProviderAlias ldap this-ad>
  Include /etc/apache2/.ldapbinddn
  AuthLDAPURL "ldaps://srv1.this.local srv2.this.local:636/OU=DIR,DC=this,DC=local?sAMAccountName?sub?(objectClass=user)"
</AuthnProviderAlias>

<AuthnProviderAlias xradius this-radius>
  AuthXRadiusAddServer "rsasrv1.this.local:1812" "Shared_key_here"
  AuthXRadiusTimeout 7
  AuthXRadiusRetries 2
  AuthXRadiusRejectBlank on
</AuthnProviderAlias>
    
por Ian 23.03.2011 / 15:31

1 resposta

1

O site do módulo mod_auth_kerb é um pouco claro sobre isso, afirmando em um ponto que AuthType deve ser definido como Kerberos, mas também implicando que "se seu AuthType for Basic" ele essencialmente usará o par nome de usuário / senha que AuthType Basic fornece para verificar seu servidor Kerberos.

As outras diretivas que você tem para o Kerberos, especificamente KrbDelegateBasic on , não parecem estar documentadas na página da fonte de origem deste módulo, fazendo-me pensar qual versão deste módulo você está usando.

Mas, deixando isso de lado por um momento, a menos que o módulo mod_auth_kerb seja de alguma forma capaz de entregar os valores que chega ao próximo módulo de autenticação na cadeia de forma que o próximo módulo possa entender, isso provavelmente não funcionará .

Como teste, altero AuthType para Basic , KrbMethodNegotiate para off e KrbMethodK5Passwd para on , e vejo se isso altera o comportamento. Espera-se que isso mod_auth_kerb colete os dados de login de uma forma que os outros módulos possam entender, impeça que o método de autenticação seja negociado e tente reunir um nome de usuário / senha em vez de um ticket.

A parte de negociação é importante, pois isso é feito para cada conexão e, portanto, se o navegador do cliente negociar um método que estraga o próximo método de autenticação, ele nunca passará da autenticação Kerberos.

Eu diria que nunca configurei a autenticação Kerberos no Apache, então isso é um pouco palpite. Eu fiz o LDAP voltar para a autenticação básica baseada em arquivos, então, eu sei que o mecanismo de fall-through funciona, em geral.

    
por 23.03.2011 / 18:20