2013-10-24 5 views
0

В настоящее время я работаю над созданием веб-службы WCF, меня попросили использовать базовую проверку подлинности через HTTPS, а также проверить, присутствует ли пользователь в группе LDAP для авторизации.WCF через HTTPS Основная проверка подлинности с помощью LDAP

Я искал в Интернете, и сказано, что аутентификация Active Directory недоступна в IIS, и мы должны использовать наш собственный пользовательский базовый модуль аутентификации или UserNamePasswordValidator. Link I used for coding Custom Authentication Module Я разместил WCF в локальном IIS с SSL и теперь он работает под https.

Вопрос в том, что если я реализую этот, мне нужно добавить заголовок авторизации вручную. Есть ли другой способ получить имя пользователя или пароль, введенные в диалоговом окне «Основная проверка подлинности», которое отображается при открытии службы в браузере?

ИЛИ Не могли бы вы предоставить совет о том, что мне нужно сделать для реализации вышеуказанной безопасности? Я беспомощен и прошу вас об этом помочь !!!!. Заранее спасибо.

фона: Я также попытался UserNamePasswordValidator, но она делает на уровне приложений, я был в состоянии просмотреть файл WSDL (мета-данные веб-службы даже без предоставления учетных данных), поэтому я пошел с пользовательской проверкой подлинности Модуль.

С помощью пользовательского базового модуля аутентификации он запрашивает учетные данные перед открытием svc в браузере. Поэтому я думаю, что это лучший выбор. Пожалуйста, предоставьте свои ценные предложения.

ответ

0

Базовая аутентификация выполняется веб-сервером, возвращающим код состояния 401.0, и заголовок ответа WWW-Authenticate со значением «Basic real =« xxx »», где область - это просто информация, отображаемая пользователю, чтобы они понимали, что такое запрашивая аутентификацию. Когда браузер получает этот тип ответа, он отображает диалоговое окно для пользователя, запрашивающего имя пользователя/пароль. Затем браузер повторно отправляет первоначально запрошенный URL-адрес, но также включает заголовок «Авторизация», значение которого является строкой, кодированной base64, которая включает имя пользователя и пароль.

Пользовательский модуль аутентификации для IIS в основном должен обрабатывать это взаимодействие. Для каждого запроса, который входит, он должен видеть, есть ли заголовок «Авторизация», и если это так, он извлекает имя пользователя/пароль, проверяет их подлинность в любом удобном для него стиле и в случае успеха настраивает Context.User. Если заголовок «Авторизация» отсутствует или имя пользователя/пароль недопустимы, то модуль должен установить код ответа 401.0 и убедиться, что есть заголовок WWW-Authenticate (как описано выше).

Для использования модуля все другие модули аутентификации в IIS должны быть отключены (хотя, как представляется, существуют некоторые обстоятельства, при которых должен быть включен анонимный модуль аутентификации). Из-за кэширования в IIS не удивляйтесь, если не все запросы передаются вашему модулю аутентификации.

Смежные вопросы