У меня есть веб-сайт SharePoint 2010, настроенный для утверждений только как отвечающая сторона для ADFS. У меня также есть приложение ASP.NET, настроенное для утверждений с использованием расширения WIF + для SAML 2.0 CTP в качестве отвечающей стороны для того же сервера ADFS.
Если я перейду в SharePoint, я буду перенаправлен на сервер ADFS (https://.../adfs/ls?...) и отображается запрос на вход в Windows. Если затем я перейду в том же экземпляре браузера к моему приложению ASP.NET, перенаправление происходит быстро на тот же сервер ADFS, автоматически аутентифицируется и перенаправляется обратно в приложение ASP.NET без запроса безопасности. Как в Как совместно использовать контекст проверки подлинности между сайтом SharePoint 2010 и приложениями ASP.NET.
Проблема возникает, когда я встраиваю приложение ASP.NET в IFrame в веб-части SharePoint. При запуске нового экземпляра браузера и переходе к SharePoint я получаю запрос на вход в Windows. Когда страница загружается до IFrame, я получаю второе приглашение Windows для того же сервера для встраиваемого приложения ASP.NET. Если я отменю запрос, я получаю сообщение 401 Неавторизовано в IFrame. Если я перейду к приложению ASP.NET, мне не будет предложено, и оно автоматически войдет в систему. Вернувшись к приложению SharePoint, страница загрузится, включая содержимое IFrame, без подсказок.
Конечная точка SharePoint использует пассивную конечную точку WS-Federation для https://sharepoint:port/_trust/
с привязкой POST. Конечная точка приложения ASP.NET использует конечные точки потребителя утверждения SAML https://aspnetapp/
с привязкой POST и Artifact. Претензии, переданные от обоих, содержат все необходимое для каждого приложения.
Кто-нибудь знает, как предотвратить второй запрос на вход при использовании IFrame в SharePoint?