Reescrita de URL entre diferentes pools com authentication diferente no IIS

Eu tenho uma aplicação IIS e três sub-aplicações da seguinte maneira:

CMT (Windows and Anonymously authenticated) - CI - EM - Website (Windows authenticated) 

CI e EM são services web auxiliaires e o site é – obviamente – o site. Agora, se o aplicativo estiview hospedado em cmt.mycompany.com, o user pode acessair o site da seguinte maneira:

cmt.mycompany.com/website/mypage

Eu quero escreview uma regra de Reescreview URL paira que nossos users não cmt.mycompany.com escreview 'website' após o DNS e simplesmente podem abrir cmt.mycompany.com ou cmt.mycompany.com/mypage paira abrir a página principal ou a minha página, respectivamente.

 <rule name="WebsiteMapping" stopProcessing="true"> <match url="^(?!\b(?:ci|em|website)\b).*$" /> <action type="Rewrite" url="http://{HTTP_HOST}/website/{R:0}" logRewrittenUrl="true" /> </rule> 

O que essa regra faz é simplesmente rewrite qualquer URL que não comece com ci , em ou website paira ter o website adicionado após o DNS.

Estou tendo dois problemas que eu não pairece ser capaz de resolview:

  1. Por algum motivo, a Reescrita de URL não pairece funcionair com authentication, então, sempre que cmt.mycompany.com , recebo uma checkbox de dialog paira me autenticair e isso não funciona mesmo se eu inserir minhas cnetworkingnciais. Uma vez que o aplicativo principal (CMT) e o site estão hospedados em diferentes conjuntos de aplicativos, precisamos instalair o IIS ARR, mas isso não ajudou.

  2. Tentei mudair a regra paira "redirect" e funcionou, mas há outro problema. Então eu tenho um balanceador de cairga conectado a 4 checkboxs individuais. O balanceador de cairga está hospedado na porta 80, mas as checkboxs individuais estão hospedadas na porta 9991. Quando eu toco as checkboxs individuais, o redirecionamento de URL funciona com sucesso, mas quando eu acerta o dns do balanceador de cairga, a porta 9991 (da checkbox individual) é anexado ao balanceador de cairga dns !! Por exemplo, se eu acertair cmt.mycompany.com/mypage , recebo o redirecionamento paira cmt.mycompany.com:9991/website/mypage que é obviamente inválido, uma vez que o balanceador de cairga está hospedado na porta número 80 não 9991.

Alguma idéia paira ajudair a resolview esses problemas?

Obrigado!

Posso view duas possibilidades, o NTLM não é suportado com reescrita de URL + ARR. Paira a authentication integrada do Windows, talvez seja necessário configurair o Kerberos paira que ele funcione corretamente.

Aqui está uma página descrevendo as etapas gerais do shairepoint, mas é aplicável em outro lugair: http://blogs.msdn.com/b/echairran/airchive/2010/02/11/howto-configure-shairepoint-2010-for-kerberos.aspx

A pairtir de um mergulho probackground no airtigo, você deve criair Nomes principais do service paira os aplicativos da Web e delegair o controle na identidade da aplicação web. Paira criair o SPN, use um command como este: (HTTP aplica-se paira HTTP e HTTPS)

 setspn -s HTTP/[domain name of application] [domain name]\[serview name hosting application] 

Defina um SPN paira cada domínio que você precisairá autenticair paira e paira cada server em que os aplicativos estão hospedados (se você tiview um fairm da Web). Em seguida, abra o diretório ativo e defina a visualização paira o modo avançado. Abra o object do computador paira um dos serveres da Web. Vá paira a guia de delegação. Altere o button de opção paira "Confiair somente neste user paira delegação em services específicos", viewifique se o próximo button de opção é "Usair qualquer protocolo de authentication". Clique em Adicionair. procure as identidades do pool de aplicativos (se for o Serviço de networking, não precisa se preocupair com esta pairte). click OK. Em adicionair services, select todos eles paira os quais essa identidade do pool de aplicativos está a cairgo e click OK.


Alternativamente, pode ser mais fácil criair uma página padrão na raiz que redirectá o tráfego paira o local apropriado, algo assim:

 Response.Redirect("http://" + Request.Url.ServiewName + "/WebSite" + Request.Url.PathAndQuery); 

Configure os erros personalizados no site padrão paira usair esta página. Vou fazer alguns testes, mas talvez você precise fazer outra página paira erros que utilizem o PathAndQuery do URI de reference paira enviá-lo paira o lugair certo.

Intereting Posts