Запросить токен безопасности ADFS из серверной части веб-сайта ASP.NET с поддержкой единого входа

У меня есть веб-сайт ASP.NET с поддержкой единого входа, который использует ADFS для аутентификации. При входе в систему пользователи перенаправляются на страницу входа в ADFS, затем мое приложение возвращает файлы cookie FedAuth и не сохраняет пароли пользователей.

Что мне нужно сделать, так это связаться со сторонней службой (а именно, SharePoint), которая настроена на использование одного и того же сервера ADFS для проверки подлинности, из серверной части веб-сайта. Я узнал, что смогу сделать это, получив еще один токен безопасности, используя некоторые вызовы WIF (на самом деле WCF), описанные, например, здесь http://blogs.technet.com/b/speschka/archive/2010/06/04/using-the-client-object-model-with-a-claims-based-auth-site-in-sharepoint-2010.aspx.

Моя проблема в том, что я не знаю, как обеспечить аутентификацию для таких вызовов, используя информацию, неявно доступную в файлах cookie единого входа. У меня нет явных учетных данных или проверки подлинности Windows.

Код, который я пытаюсь использовать, выглядит следующим образом:

WSTrust13ContractClient trustClient = new WSTrust13ContractClient(binding, address);

trustClient.ClientCredentials.Windows.AllowNtlm = true;
trustClient.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
trustClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

System.ServiceModel.Channels.Message response =
        trustClient.EndIssue(trustClient.BeginIssue(
            System.ServiceModel.Channels.Message.CreateMessage(
            MessageVersion.Default, WSTrust13Constants.Actions.Issue,
            new RequestBodyWriter(trustSerializer, rst)), null, null));

Сбой с сообщением "HTTP-запрос был запрещен с помощью схемы проверки подлинности клиента" Согласование "".

0 ответов

Другие вопросы по тегам