Проблемы использования удостоверений
Большинство разработчиков не являются экспертами в области безопасности и могут чувствовать себя неуверенно при необходимости создавать решения для проверки подлинности, авторизации и персонализации пользовательской производственной среды. Обеспечение безопасности не входит в традиционный план обучения работе с компьютером, и очень часто эти функции игнорируются вплоть до самых поздних этапов жизненного цикла разработки программного обеспечения.
Сегодня нередко можно найти компании, которые предлагают десятки и сотни веб-приложений и веб-служб, для многих из которых используются изолированные приемники пользовательских удостоверений, и большинство из которых жестко связано с одним конкретным средством проверки подлинности. Разработчики знают, сколько труда требует реализация поддержки работы с удостоверениями для каждого приложения, а ИТ-специалисты знают, насколько дорого оказывается обслуживать получающийся набор приложений.
На пути решения этой проблемы одним крайне полезным шагом может стать централизация пользовательских учетных записей в каталоге предприятия. Обычно именно ИТ-специалисты имеют самое глубокое представление об эффективных способах работы с каталогом, однако сегодня эта задача ложится на плечи разработчиков. А учитывая слияния, приобретения и партнерские связи между компаниями, разработчик может столкнуться с необходимостью обращаться к нескольким каталогам с использованием разных программных интерфейсов.
В Microsoft .NET Framework имеется множество различных способов реализации поддержки работы с удостоверениями для приложения, и в каждой платформе взаимодействия удостоверения обрабатываются по-разному, с использованием разных объектных моделей, моделей хранения и т. д. Даже при работе в ASP.NET разработчики могут столкнуться с вопросом, где следует искать удостоверения. В свойстве HttpContext.User? Или в свойстве Thread.CurrentPrincipal?
Повсеместное использование паролей привело к широкому развитию фишинга. А когда так много приложений имеют индивидуальные средства безопасности, компаниям оказывается трудно проводить обновление до более надежных методов проверки подлинности.
Рекомендуемое решение
Одним из этапов на пути решения этих проблем является прекращение создания индивидуальных средств работы с удостоверениями и баз данных пользовательских учетных записей для каждого нового приложения. Однако даже разработчики, которые используют централизованные каталоги предприятия, сталкиваются с трудностями в связи со слияниями, приобретениями и внешними партнерскими связями с другими компаниями, и их даже могут обвинять в низкой производительности их решения, которая на самом деле является результатом работы другого приложения, которое забивает каталог неэффективными запросами. Решение на базе удостоверений, описанное в этом документе, не требует от разработчиков подключаться к какому-либо конкретному каталогу предприятия для поиска учетных данных пользователей. Вместо этого запрос пользователя приходит вместе со всеми данными удостоверения, которые необходимы приложению для работы. К моменту, когда пользователь обращается с этими утверждениями, он уже прошел проверку подлинности, и приложение может продолжать свою работу, не занимаясь поиском учетных записей пользователей или управлением ими.
Вынесение проверки подлинности за пределы приложения дает множество преимуществ разработчикам, ИТ-специалистам и пользователям. Не вдаваясь в подробности, можно отметить, что сокращается число пользовательских учетных записей, которыми необходимо управлять, а централизация проверки подлинности упрощает обновление до более надежных методов по мере их совершенствования и даже федерацию удостоверений с другими платформами и организациями.
Темы этого раздела помогут разработчикам лучше понять устройство модели удостоверений на основе утверждений и воспользоваться преимуществами использования Windows® Identity Foundation (WIF), новой платформы Майкрософт для работы с удостоверениями.
Что такое Windows Identity Foundation?
WIF — это набор классов .NET Framework, которые представляют собой платформу для реализации в приложениях механизма работы с удостоверениями на основе утверждений. С ее помощью можно легко пользоваться преимуществами систем на основе утверждений, описанными в этом документе. WIF можно использовать в любых веб-приложениях и веб-службах, основанных на .NET Framework 3.5 с пакетом обновления 1 (SP1) и более поздних версий.
WIF является только одной частью семейства программных продуктов Майкрософт для работы с федеративными удостоверениями, в которой реализовано распространенное в отрасли представление о необходимости использования универсальной метасистемы удостоверений. Федеративное удостоверение состоит из трех компонентов: службы федерации Active Directory (ADFS) V2 (прежнее название — сервер "Geneva"), Windows CardSpace "Geneva" и WIF. Вместе эти три компонента образуют фундамент новой платформы доступа Майкрософт на основе утверждений. Дополнительные сведения о сервере и компонентах CardSpace можно найти на веб-сайте Geneva. В техническом документе "Introducing Geneva" (Обзор Geneva) приводится обзор всех технологий, лежащих в основе Geneva. Что касается данного документа, WIF и предварительные выпуски двух других продуктов доступны для загрузки.
Темы данного раздела посвящены модели удостоверений на основе утверждений, проблемам, которые она помогает решать, и использованию ее преимуществ с помощью Windows® Identity Foundation (WIF).