/ / ADFS com base em declarações do SharePoint 2010 e IFrame incorporado ao ASP.NET clama que o logon único do aplicativo está ciente - sharepoint-2010, wif, identity-based-identity, adfs2.0

Reivindicações do ADFS com base no SharePoint 2010 e no IFrame incorporado. O ASP.NET clama no logon único do aplicativo com reconhecimento - sharepoint-2010, wif, identity-based-identity, adfs2.0

Eu tenho um site do SharePoint 2010 configurado paraReivindicações apenas como a parte respondendo ao ADFS. Eu também tenho um aplicativo ASP.NET configurado para declarações usando WIF + extensão para SAML 2.0 CTP como a parte respondendo ao mesmo servidor ADFS.

Se eu navegar para o SharePoint, eu serei redirecionado para o servidor ADFS (https: //.../adfs/ls? ...) e apresentado com um prompt de login do Windows. Se eu, em seguida, navegar na mesma instância de navegador para o meu aplicativo ASP.NET, o redirecionamento ocorre rapidamente para o mesmo servidor ADFS, autentica-se automaticamente e redireciona de volta para o aplicativo ASP.NET sem um prompt de segurança. Como em Como compartilhar o contexto de autenticação entre um site do SharePoint 2010 e aplicativos ASP.NET.

O problema ocorre quando eu incorporar o ASP.NET em um IFrame em uma web part do SharePoint. Ao iniciar uma nova instância do navegador e navegar para o SharePoint, recebo a solicitação de login do Windows. À medida que a página é carregada até o IFrame, obtenho um segundo prompt do Windows para o mesmo servidor para o aplicativo ASP.NET incorporado. Se eu cancelar o prompt, recebo um 401 Unauthorized in the IFrame. Se eu navegar para o aplicativo ASP.NET, eu não sou solicitado e ele faz logon automaticamente. Navegando de volta para o aplicativo do SharePoint, a página será carregada, incluindo o conteúdo do IFrame sem prompts.

O ponto de extremidade do SharePoint está usando o ponto de extremidade passivo do WS-Federation para https://sharepoint:port/_trust/ com ligação POST. O ponto de extremidade do aplicativo ASP.NET está usando pontos de extremidade do consumidor de asserção SAML https://aspnetapp/ com vinculação POST e Artefato. As declarações transmitidas de ambas contêm todas as informações necessárias para cada aplicativo.

Alguém sabe como evitar o segundo prompt de login ao usar um IFrame no SharePoint?

Respostas:

1 para resposta № 1

Agora funciona como esperado com o logon único após a atualização para System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0 do agora construído em classes WIF. Eu estou supondo que houve um problema de compatibilidade com o Microsoft.IdentityModel.Web.Saml2AuthenticationModule Extensão CTP do SAML 2.0 que nunca foi concluída.


0 para resposta № 2

Apenas um tiro no escuro, mas assumindo o costumeO aplicativo ASP .NET e o SharePoint estão em duas máquinas separadas, então pode haver algumas sutilezas sobre o Kerberos, já que a página ASP .NET está em um IFRAME - pode ser que um ticket do kerberos precise ser passado entre o SharePoint para o ASP .NET.

HTH.


0 para resposta № 3

Este é apenas um palpite, mas acredito que isso ocorra porque ambos os sites, o site do Sharepoint e o site asp.net incorporado a partir do iframe, começam a carregar ao mesmo tempo.

Como ambos não são autenticados, ambos vão parao Adfs. Mas como você não está autenticado, o Adfs inicia o desafio 401, solicitando a autenticação. No entanto, o seu navegador não apresenta os dois prompts de login ao mesmo tempo. Em vez disso, você obtém o primeiro prompt de login e quando faz login com sucesso, a partir do momento em que o Adfs reterá a autenticação, de modo que qualquer outro site que esteja chegando para receber as reclamações seja gratuito. Mas o site interno, o asp.net, já iniciou o processo de login! Seu navegador não sabe disso e força você a continuar o login.

Como conclusão, minha ideia seria ter umPágina do sharepoint que requer autenticação e que, em seguida, redireciona para outra página que tem o site asp.net em um iframe para que seu navegador não tente iniciar a seqüência de logon para ambos os sites ao mesmo tempo.