Я создал службу токенов безопасности (STS), службу со ссылкой на STS и пример настольного приложения.
Это работает, как и ожидалось, при использовании аутентификации Windows и безопасности сообщений, токен получениз STS и метод обслуживания вызывается успешно.Служба возвращает строку, содержащую личность текущего пользователя, которая возвращает мое имя пользователя AD.
Однако у меня есть требование для аутентификации в базе данных, а не в AD.Я попытался создать CustomUserNameValidator (в STS, это правильное место?) И сослаться на него в web.config.Затем я предоставляю учетные данные, как показано ниже.
SampleServiceReference.SampleServiceClient client = new SampleServiceReference.SampleServiceClient();
client.ClientCredentials.UserName.UserName
= "alex";
client.ClientCredentials.UserName.Password
= "pass";
Я считаю, что сертификаты настроены правильно (все используют localhost), однако при вызове службы я получаю следующее исключение:
System.ServiceModel.FaultException: ID3242: маркер безопасности не может быть аутентифицирован или авторизован.
Все, что я пытаюсь выполнить, кажется неудачным.Возможно ли то, что я описываю?Клиент службы также передает учетные данные клиента в STS, или я совершенно не понимаю, что здесь происходит?
Этот вопрос о стековом потоке аналогичен, однако я проверил URL-адрес аудитории и, похоже, все в порядке. WIF STS ID3242
Кто-нибудь получил какой-либо совет о том, как мне выполнить пользовательскую аутентификацию при использовании STS?