O IIS 7.5 Siteminder não está protegendo as solicitações do ASP.net MVC

4

Estamos tentando usar o ASP.Net MVC com o Siteminder para logon único. Isso está no Windows Server 2008 R2 com o IIS 7.5. Agente Siteminder versão 6QMR6.

Problema:       Siteminder protege arquivos físicos que existem.       E não está protegendo a pasta quando tentamos acessar um arquivo inexistente.       Ele deve redirecionar para a página de login, mesmo que o arquivo não exista quando o usuário estiver       acessando uma pasta protegida.

Como configurar no IIS 7.5 que não verifique se existe um arquivo, antes da autenticação pelo siteminder. O SiteMinderWebAgent é um manipulador (WildCard Script Map) que criamos usando o ISAPI6WebAgent.dll

Como proteger o pedido ASP.Net MVC com o Siteminder? (Adicionado isso como minha pergunta anterior não resolveu o problema). A solicitação do MVC aparece no log do IIS, mas não no log do Siteminder.

Atualização: O suporte da Microsoft diz que atualmente o IIS7.5, mesmo em versões anteriores, não suporta mapeamentos de curingas em nenhum dos dois Manipuladores Isapi com * curinga. Atualmente, no meu caso, o Siteminder tem * wildcard e asp.net mvc (o manipulador é aspnet_isapi) possui * curinga para lidar com as requisições. A prioridade ordenada não funciona no caso de mapeamentos de curinga com Apenas *. Não convenceu com a resposta, mas vai esperar até amanhã para voltarem.

    
por HariM 16.12.2010 / 17:51

5 respostas

0

Aqui está a explicação e a solução alternativa da Microsoft no ASP.Net MVC com o Siteminder.

Uma solicitação pode ser executada por qualquer manipulador ONE, mas pode ser trabalhada por vários módulos. Quando uma solicitação chega, o URLRoutingModule roteia as solicitações para o manipulador do MVC (se existir um mapa para ele na tabela de roteamento, conforme definido no evento Application_Start do Global.asax), e o manipulador do SiteMinder nunca é chamado. Como apenas um manipulador pode executar a solicitação e, nesse caso, deve ser a página de login do SiteMinder do manipulador MVC que nunca aparece. Um manipulador que executa uma solicitação é um comportamento por design.

Solução alternativa sugerida:

i) No método AuthenticateRequest em Global.asax, verifique se o cookie de sessão SSO está presente na solicitação.

ii) Se o cookie não estiver lá, redirecione para outra página de login do SSO.

iii) A página de login responsável pela autenticação não deve estar na tabela de roteamento MVC.

iv) Se uma solicitação de uma página que não está na tabela de roteamento MVC for recebida, o SiteMinder entrará em ação, pois o URLMappingsModule não roteará isso para o manipulador MVC conforme o esperado.

v) Nesta página, após a autenticação, o usuário pode ser redirecionado para o URL principal solicitado anteriormente. Como neste momento temos o cookie de sessão SSO, então o pedido não será redirecionado no AuthenticateRequest e será respondido pelo MVC.

Estamos seguindo esse trabalho. Isso deve ser implementado com cuidado, pois há uma chance de que o cookie do Siteminder possa ser invalidado, mas não verificado pelo siteminder, pois o pedido não passará pelo siteminder para solicitações do MVC.

    
por 27.12.2010 / 17:13
1

Atualize para a versão mais recente do Siteminder, remova todo o ISAPI, mova do ClassicMode para o IntegratedMode como a API do MVC / WEB necessária e use apenas o CASiteMinderWebagentModule

                

e esquecer toda a estupidez em torno de hacking MVC / Webapi porque ISAPi e siteminder, MVC / Webapi nunca foi projetado para ser executado sob ClassicMode.

    
por 02.07.2014 / 11:06
0

Você pode fazer isso no Gerenciador do IIS editando o manipulador do Siteminder, clicando em Restrições de Solicitação e certificando-se de que a caixa de seleção Mapeamento esteja desmarcada.

Como alternativa, se você fizer isso diretamente de applicationHost.config, defina o resourceType como "Unspecified". Isso fará com que o manipulador processe todas as solicitações, quer o arquivo ou a pasta exista ou não.

    
por 16.12.2010 / 19:20
0

Nossa equipe de infraestrutura do SiteMinder sugeriu que eu tentasse incluir a declaração de manipulador do Agente Web no arquivo web.config , listado antes do manipulador MVC da seguinte forma:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />    
    <handlers>
        <add name="wa-handler" path="*" verb="*" type="" modules="IsapiModule" scriptProcessor="%NETE_WA_PATH%\ISAPI6WebAgent.dll" resourceType="Unspecified" requireAccess="None" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
        <add name="MVC" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="" />            
    </handlers>
</system.webServer>

Isso funcionou para nós e não exigiu nenhuma solução especial (por exemplo, usando detecção de cookie / cabeçalho e redirecionamentos de URL) em Global.asax.

    
por 09.03.2011 / 16:29
0

Eu tive o mesmo problema no site do MVC-2, mesmo que a pasta virtual estivesse protegida pelo siteminder.

Finalmente, descobri qual era o problema.

Alterou o modo Pool de aplicativos para Clássico de Integrado e voila! problema resolvido. Não fez nenhuma alteração de configuração.

    
por 16.02.2013 / 13:57