Apache “require valid-user” é válido em vários tipos de autenticação

Apache “require valid-user” é válido em vários tipos de autenticação

Nosso Apache usa mod_shib_24 (SAML-SP) e mod_auth_openidc (OIDC-RP), ambos conectados a um Shibboleth IdP (atua como SAML-IDP e OIDC-OP).

Além disso, temos 2 locais protegidos, um protegido por SAML e outro protegido por OIDC:

  ShibCompatValidUser On

  <Location "/">
    Require shib-session
    AuthType Shibboleth
    ShibRequestSetting requireSession 1
    ShibUseHeaders On
  </Location>


  <Location "/oidctest">
    Require valid-user
    AuthType openid-connect
  </Location>

Agora vem a parte confusa:

Se eu acessar qualquer coisa diferente de /oidctest/, tenho que fazer login usando SAML (mod_shib_24 é envolvido, como esperado), mas após uma autenticação bem-sucedida também posso acessar /oidctest/ sem precisar autenticar com OIDC.

Isso também funciona ao contrário. Se eu acessar /oidctest/ primeiro (nova janela privada), terei que autenticar usando OIDC (mod_auth_openidc se envolve, conforme esperado) e, após uma autenticação bem-sucedida, também posso acessar todos os outros locais (exceto /oidctest/).

Então, como o Apache lida com diretivas de usuário válido? Como um “usuário válido” é definido no Apache?

Um usuário é válido para tudo depois de fazer login, não importa o tipo de autenticação, não importa o módulo, não importa o protocolo?

Ou este é um comportamento inesperado?

Responder1

Pelo que entendi no wiki do Shibboleth, oShibCompatValidUser ativadoconfigurações são expressamente destinadas a serem compatíveis comrequer usuário válidodeclarações.

Antes da V2.5.2, e quando ShibCompatValidUser está desativado (o padrão), isso é equivalente à regra de sessão shib acima. Quando a opção ShibCompatValidUser está habilitada, esta regra é implementada de forma compatível com a regra implementada pelo próprio Apache e requer que um valor REMOTE_USER não nulo seja definido para a solicitação. Isso restaura a capacidade de implantar o Shibboleth junto com outros módulos e regras. Uma versão futura do SP poderá remover a definição "especial" e tais regras deverão ser alteradas para se basearem na sessão shib.

Verhttps://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPhtaccess

Para diferenciar os módulos você também pode usar testes comExigir ambientepara procurar variáveis ​​de ambiente definidas pelo módulo. Shibboleth por padrão define umID da sessão Shibpor exemplo.

Verhttps://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAttributeAccess

informação relacionada