Аутентификация при использовании службы токенов безопасности

Я создал службу токенов безопасности (STS), службу со ссылкой на STS и пример настольного приложения.

Это работает, как ожидалось. при использовании проверки подлинности Windows и безопасности сообщений, токен извлекается из STS, и метод службы вызывается успешно. Служба возвращает строку, содержащую идентификатор текущего пользователя, которая возвращает мое имя пользователя AD.

Однако у меня есть требование аутентифицироваться в базе данных, а не в AD. Я попытался создать CustomUserNameValidator (правильное ли это место в STS?) И сослаться на него в web.config. Затем я предоставляю учетные данные, как показано ниже:

SampleServiceReference.SampleServiceClient client = new SampleServiceReference.SampleServiceClient (); client.ClientCredentials.UserName.UserName = "Алекс"; client.ClientCredentials.UserName.Password = "pass";

Я считаю, что сертификаты настроены правильно (все с использованием localhost), однако при вызове службы я получаю следующее исключение:

System.ServiceModel.FaultException: ID3242: токен безопасности может не быть аутентифицированным или авторизованным.

Все, что я пытался, кажется неудачным. Возможно ли то, что я описываю? Клиент службы также передает учетные данные клиента в STS, или я совершенно не понимаю, что здесь происходит?

Этот вопрос о переполнении стека аналогичен, однако я проверил URL-адрес аудитории и, похоже, все в порядке. WIF STS ID3242

Есть ли у кого-нибудь совет о том, как добиться пользовательской аутентификации при использовании STS?

5
задан Community 23 May 2017 в 12:14
поделиться