Реализовать решение единого входа на с использованием обычной проверки подлинности и клиент Internet Explorer


Обзор


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

ВВЕДЕНИЕ


В данной статье рассматриваются способы передачи для единого входа (SSO) учетные данные пользователя через URL-адрес с помощью обычной проверки подлинности. При установке обновления безопасности в бюллетене корпорации Майкрософт по безопасности MS04-004, нельзя передавать учетные данные с помощью URL-адреса.

Дополнительные сведения


Проблема с бюллетеня корпорации Майкрософт по безопасности MS04-004

Бюллетень корпорации Майкрософт по безопасности MS04-004 предоставляет обновления безопасности для Microsoft Internet Explorer и зависимости компонента с именем WinInet. Обновление безопасности MS04-004 соответствует запрос комментариев (RFC) 2616 раздел 3.2.2 и приведено в разделе 3.3. Оба раздела эти документы RFC state, URL-адреса HTTP должен иметь только следующий формат:
http://host:port/path?querystring
Примечание. хост, порти путь — это местозаполнители для имени узла, номер порта и расположение запрошенную веб-страницу на сервере, соответственно. Строка запроса — это для параметров строки запроса, который должен быть передан на сервер.

Бюллетень по безопасности MS04-004 включает в себя обновление, которое позволяет предотвратить некоторые проблемы подмены URL-адреса. Подмены является практика вынуждают пользователей в предоставлении пароли и другую информацию для разрешения несанкционированного доступа в систему. В этом случае пользователи могут обманным путем думать, что они просмотра определенного веб-узла, когда они фактически просмотра другой веб-узел. Обновление безопасности MS04-004 предотвращает подмену проблемы URL-адрес. После установки обновления безопасности MS04-004, некоторые веб-приложения может прерываться. Веб-приложений, которые затрагивает полагаться на функцию, которая передает учетные данные с помощью URL-адреса

Примечание. Так как обычной проверки подлинности учетные данные передаются по сети в незашифрованном виде для каждого запроса, отправленные из веб-клиента к веб-серверу, следует ограничьте использование обычной проверки подлинности. Если доступны другие методы проверки подлинности не только используйте обычную проверку подлинности. Кроме того можно используйте обычную проверку подлинности в сочетании с шифрованием, например, TLS/SSL.

Корпорация Майкрософт совпадает с, перечисленные в RFC 2396 7 следующее предупреждение:
Это рекомендуется четко устанавливается то использовать URL-адрес, который содержит пароль, который предназначен для обеспечения секретности. В частности использование пароля в компоненте «userinfo» URL-адрес строго disrecommended только в тех редких случаях, где параметр «пароль» должен быть открытым.
Корпорация Майкрософт рекомендует не реализуют основные решения на базе проверки подлинности единого входа. Тем не менее в данной статье содержится несколько методов, которые можно использовать для временного решения проблемы, которая возникает после установки обновления безопасности MS04-004. При использовании этого метода систем предыдущих версий, реализовать базовая проверка подлинности на основе единого входа решений рабочих так же, как они были до установки обновления безопасности MS04-004.

Для получения дополнительных сведений о бюллетене по безопасности MS04-004 посетите следующий веб-узел корпорации Майкрософт:

Реализация службы единого входа

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

Примечание. Этот сценарий работает, перед установкой обновления безопасности MS04-004.
  1. Веб-клиент запрашивает PageOfInterest.asp из
    ServerA.

    Примечание. PageOfInterest.aspи ServerA — это местозаполнители для имени запрашиваемой страницы и имя сервера, на котором Запрошенная страница хранится, соответственно.
  2. ServerA отвечает клиенту веб-сообщение указывает, что веб-клиент для извлечения
    PageOfInterest.asp из следующего расположения:
    http://sbUsername:sbPassword@ServerB/SomePath/PageOfInterest.asp
    Данная инструкция является либо передается в заголовке Location HTTP-ответ с кодом состояния = 302, или отправляется как тег «мета-обновление» в теле сообщения HTTP-ответа с кодом состояния = 200.

    Примечание. sbUsername, sbPassword, SomePath и ServerB— это местозаполнители для имя пользователя, пароль, имя сервера, где хранится запрошенной страницы и расположение запрошенную веб-страницу на сервере, соответственно. Измените эти значения в соответствии с вашей средой.
  3. Запросов веб-клиента
    PageOfInterest.asp из
    ServerBи затем предоставляет учетные данные запроса.
Если Internet Explorer канонической URL-адреса до установки обновления безопасности MS04-004, WinInet сохраняются любые учетные данные, которые столкнулись между разделами протоколов и узла URL-адреса для последующего использования в связи веб-клиент и веб-сервера. WinInet — это компонент, который обозреватель Internet Explorer использует для обмена данными по протоколу TCP/IP. Если последующие запросы для того же сферы обычной проверки подлинности возвращается WWW-Authenticate: основные ответ заголовок, WinInet используется правильно отформатированные авторизации: базовый запрос заголовка для другого запроса на веб-сервер, который содержит учетные данные, которые были сохранены во время канонизации. При сохранении учетных данных, веб-клиент может выполнять проверку подлинности на веб-сервер, и пользователю не предлагается ввести учетные данные.

Пример последовательности

Ниже приведен пример данных, которыми обмениваются клиент Internet Explorer и сервере под управлением служб Microsoft IIS (IIS) в последовательности обычно обычной проверки подлинности HTTP.

Примечание. В этом примере были собраны с помощью служебной программы WFetch. \R\n символы представляют шестнадцатеричные символы 0D 0A или ASCII символов CRLF. Дополнительные сведения о средстве WFetch щелкните следующий номер статьи базы знаний Майкрософт:

Как использовать Wfetch.exe для устранения неисправностей соединений HTTP 284285

  1. Браузер посылает анонимный запрос к веб-серверу.
    GET /SomePath/PageOfInterest.aspx HTTP/1.1\r\nHost: ServerB\r\n
    Accept: */*\r\n
    \r\n

  2. Веб-сервер отвечает клиенту веб-что доступ запрещен, и том, что запрашиваемый ресурс требует учетные данные обычной проверки подлинности.
    HTTP/1.1 401 Access Denied\r\nContent-Length: 4431\r\n
    Content-Type: text/html\r\n
    Server: Microsoft-IIS/6.0\r\n
    WWW-Authenticate: Basic realm="ServerB"\r\n
    X-Powered-By: ASP.NET\r\n
    Date: Mon, 16 Feb 2004 00:38:11 GMT\r\n
    \r\n
    [ *** HTTP MESSAGE-BODY REMOVED FOR BREVITY *** ]
    \r\n

  3. Браузер заново отправляет этот же запрос отправки на шаге 1. Однако на этот раз браузер вставляет авторизации: базовый заголовок, который содержит учетные данные пользователя.
    GET /SomePath/PageOfInterest.aspx HTTP/1.1\r\nHost: ServerB\r\n
    Accept: */*\r\n
    Authorization: Basic TG9jYWxVc2VyOkxvY2FsUGFzc3dvcmQ=\r\n
    \r\n

  4. Учетные данные являются допустимыми, и пользователь имеет разрешения на доступ к запрошенному ресурсу. Таким образом возвращаются данные, требуемые для пользователя.
    HTTP/1.1 200 OK\r\nDate: Mon, 16 Feb 2004 00:40:37 GMT\r\n\
    Server: Microsoft-IIS/6.0\r\n
    X-Powered-By: ASP.NET\r\n
    X-AspNet-Version: 1.1.4322\r\n
    Set-Cookie: ASP.NET_SessionId=zzseaci1a4tyhrymokckmau2; path=/\r\n
    Cache-control: private\r\n
    Content-Type: text/html\r\n
    Content-Length: 44\r\n
    \r\n
    [ *** HTTP MESSAGE-BODY REMOVED FOR BREVITY *** ]
    \r\n

Значимость данного образца связи — продемонстрировать, последовательности обычно обычной проверки подлинности, веб-клиент будет пытаться взаимодействовать с помощью анонимной проверки подлинности (то есть без авторизации: заголовка обычной запроса отправляется). Затем сервер отвечает с ответ, содержащий код состояния 401 Access Denied и WWW-Authenticate: заголовка обычной ответа. Как правило, между шаги 2 и 3, обозреватель запрашивает пользователя с диалоговым окном, которое предлагает пользователю ввести учетные данные в ответ на проверить подлинность сервера: основной задачей. Тем не менее, в документе RFC 2617, большинство браузеров (включая Internet Explorer) предоставляют авторизации: базовый заголовок, если пользователь уже предоставил учетные данные обычной проверки подлинности для указанной сферы. После установки обновления безопасности MS04-004, Internet Explorer удаляет учетные данные, которые передаются через URL-адрес и WinInet больше не имеет учетные данные для пересылки автоматически. Таким образом пользователь получает диалоговое окно запрашивает у пользователя учетные данные обычной проверки подлинности.

Временное решение


Для временного решения этой проблемы воспользуйтесь одним из следующих методов. Предложенный подход в этом разделе относится к трех узлов: ServerA
ServerBи веб-клиента. Где ServerA — имя запрошенной страницы и ServerB — это имя сервера, где хранятся запрошенной страницы.

Примечание. Поскольку изменения, внесенные в обновление безопасности MS04-004 применяются только к Internet Explorer версий Microsoft Windows, веб-клиент считается версии Internet Explorer, которая была обновлена с обновления безопасности MS04-004.

Можно загрузить примеры различных решений, которые предлагаются в данной статье. Следующий файл доступен для загрузки из центра загрузки Microsoft:
Download Загрузить образцы кода. Дополнительные сведения о том, как загрузить файлы поддержки Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
Как загрузить файлы поддержки Microsoft через оперативные службы 119591
Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует последнее антивирусное программное обеспечение, доступное на период публикации файла. Файл хранится на защищенных серверах, что предотвращает его несанкционированное изменение.

Метод 1: Использование объекта XMLHTTP

Использование объекта XMLHTTP чтобы промежуточный запрос клиентского сценария, выполняемого на веб-клиента, а не полагаться на Internet Explorer автоматически перенаправлять при получении ответа 302 (перенаправление) с сервера ServerA. Объект XMLHTTP предоставляет несколько свойств, которые позволяют разработчикам собирать данные из заголовков HTTP-ответа, строке запроса, или тело сообщения HTML-документа.

Требования
  • (MSXML) должны быть доступны для написания сценариев на стороне клиента (MSXML 3.0 входит в состав Microsoft Windows 2000 и более поздних версий и входящий в состав Internet Explorer 6.0 и более поздних версий).
  • ServerA должен поддерживать изменение его конфигурации. Это изменение разрешает ServerA для отправки веб-клиента на страницу, загружающую объекту XMLHTTP ОБОЗРЕВАТЕЛЯ . Объект XMLHTTP перехватывает сообщения redirect вместо попыток обработать сообщение перенаправления, перед установкой обновления безопасности MS04-004.
Ограничения
  • Ошибка в MSXML это решение запрещает работу без дополнительной настройки. Эта ошибка будет исправлена. Тем не менее Internet Explorer клиентам, установившим обновление безопасности MS04-004 требуется обновленная версия msxml?. DLL. За дополнительной информацией об обновленной версии msxml. DLL, щелкните следующий номер статьи базы знаний Майкрософт:

    832414 Майкрософт XMLHTTP завершается неудачно для URL-адреса с учетные данные пользователя

Способ 2: Используйте серверного приложения, можно изменить поток данных HTTP, перед выполнением сценария

Использование серверного приложения, можно изменить поток данных HTTP, перед выполнением сценария (например фильтр ISAPI или .NET HttpModule) на
ServerB для перехвата учетных данных, которые передаются через другой раздел допустимым HTTP-запрос веб-клиента, а затем создать допустимый авторизации: базовый заголовок для передачи к веб-серверу для проверки подлинности.

Требования
  • ServerA должен поддерживать изменение его конфигурации (для отправки веб-клиент учетные данные в другой части ответа, например, строки запроса или в файле Cookie. Таким образом веб-клиент может передавать эти учетные данные на сервере ServerB фильтра ISAPI или HttpModule для перехвата)
Ограничения
  • ServerB должен поддерживать серверные приложения, например фильтры ISAPI или HttpModules .NET, используемый в этом методе обхода уязвимости.

Способ 3: Используйте серверный компонент WinHttp или ServerXMLHTTP

Использовать для извлечения содержимого из ServerBнапрямую, серверный компонент WinHttp объект или объект ServerXMLHTTPв ASP-страницы или страницы ASPX на сервере (то есть, в имени пользователя) и возвращается клиенту веб-содержимого. В этом сценарии веб-клиент никогда не взаимодействует с ServerB.


Требования
  • Программный идентификатор WinHttp.WinHttpRequest.5.1 должен быть доступен на
    ServerA. По умолчанию WinHttp.WinHttpRequest.5.1 входит в состав Microsoft Windows 2000 с пакетом обновления 3, Microsoft Windows XP SP1 и Microsoft Windows Server 2003.
Ограничения
  • WinHttp.WinHttpRequest.5.1 ожидает ServerB для возврата завершенных содержимого в веб-клиент. В этом сценарии веб-клиент имеет версию обозревателя Internet Explorer, была обновлена с обновления безопасности MS04-004. Если этот веб-клиент ожидает проведения синхронной связи с ServerB (с помощью элемента управления ActiveX или приложение Java), это решение может не работать.
  • Microsoft не рекомендует использовать этот способ, поскольку производительность сервера ServerA повлияет функциональных возможностей веб-клиента, если веб-клиент имеет версию обозревателя Internet Explorer, была обновлена с обновления безопасности MS04-004.

Метод 4: С помощью пользовательского клиентского приложения

С помощью пользовательского приложения клиентский элемент управления ActiveX, который вызывает интерфейс API WinInet или WinHttp API или элемента управления .NET Windows Forms, использующий имен System.Net.Sockets , который может создать экземпляр в коде на стороне клиента в веб-обозревателе. Этот пользовательский объект должен иметь возможность установить TCP-подключение и должны иметь возможность передачи сообщений правильным форматом HTTP (S) (включая создание авторизации: базовый запрос заголовка).


Требования
  • Решение ActiveX: пользователи должны иметь разрешение на установку элементов управления ActiveX на компьютере.
  • Решение ActiveX: параметры безопасности в Internet Explorer необходимо разрешить выполнение приложений ActiveX.
  • Решение .NET WinForms: на веб-клиент должен быть установлен Microsoft платформа.NET Framework.
Ограничения
  • Пользователи в управляемых средах не удается изменить параметры их загрузку и выполнение элементов управления ActiveX и элементов управления .NET WinForms.
  • WinHttp (называемые непосредственно через COM, или с помощью платформа.NET Framework) использует другой набор API, чем WinInet (который используется Internet Explorer). Таким образом любой проверки подлинности в клиентском приложении должна быть для каждого запроса, отправляемого на веб-сервере.
  • Решение .NET WinForms: перед выполнением клиентский элемент управления, необходимо настроить функцию безопасности .NET на каждой веб-клиента.
  • Решение .NET WinForms: единственный способ удаленно убедитесь, что платформа.NET Framework установлена на неуправляемый веб-клиента — запросить строку агента пользователя HTTP, предоставляемую обозревателем Internet Explorer. Тем не менее так как это значение можно изменить параметр реестра, не рассматривает такого рода обнаружения полномочных.

Ссылки


Следующий файл доступен для загрузки из центра загрузки Майкрософт:
Download Загрузить пакет Samples.exe. Дополнительные сведения о том, как загрузить файлы поддержки Майкрософт щелкните следующий номер статьи базы знаний Майкрософт:
Как загрузить файлы поддержки Microsoft через оперативные службы 119591
Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует последнее антивирусное программное обеспечение, доступное на период публикации файла. Файл хранится на защищенных серверах, что предотвращает его несанкционированное изменение.
Для получения дополнительных сведений посетите следующие веб-сайты Microsoft Developer Network (MSDN):
Проверка подлинности с помощью сценария
http://msdn2.microsoft.com/en-us/library/aa383147.aspx
DHTML и безопасный узел .NET, упрощенные элементы управления клиентского обозревателя Microsoft Internet Explorer
http://msdn.microsoft.com/msdnmag/issues/02/01/userctrl/
getResponseHeader метод (IXMLHTTPRequest)
http://msdn2.microsoft.com/en-us/library/ms757006.aspx
Бюллетень корпорации Майкрософт по безопасности MS04-004
http://www.microsoft.com/technet/security/bulletin/ms04-004.mspx
Дополнительные сведения о запросе на комментарии (RFC) следующие RFC веб-узлах:Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:

815148 способ настройки безопасности платформа.NET Framework на основе зоны

Образец 259100 : Vbhttp.exe показано, как использовать API WinInet HTTP в Visual Basic

Образец 303436 : Visual C# .NET сетевые классы HTTP Интернет-клиента

Зоны безопасности Internet Explorer 182569 записи реестра для опытных пользователей

834489 Internet Explorer не поддерживает имена пользователей и пароли в адреса веб-узлов (HTTP или HTTPS URL-адреса)

Как использовать Wfetch.exe для устранения неисправностей соединений HTTP 284285

836640 не удается получить Outlook Web Access и единый вход в систему веб-приложений с помощью протокола XMLHTTP после применения безопасности обновление для Internet Explorer MS04-004