Построение гибридных приложений в облаке на платформе Windows Azure patterns & practices



Pdf просмотр
страница5/33
Дата28.11.2016
Размер8.44 Mb.
Просмотров6397
Скачиваний0
1   2   3   4   5   6   7   8   9   ...   33
Глава 3. Аутентификация
пользователей в приложении Orders
В этой главе рассматривается, как компания Trey Research адаптировала аутентификацию и авторизацию пользователей в приложении Orders после перенесения части приложения в облако.
Изначально локальное приложение Orders использовало формы ASP.NET для аутентификации пользователей.
Все посетители сайта должны были войти в систему, используя учетные данные, предоставленные сотрудниками компании Trey Research. Эти учетные записи хранились в базе данных SQL Server.
Когда проектировщики компании Trey Research рассматривали возможность адаптации приложения для работы в облаке, они решили воспользоваться преимуществами службы Windows Azure Access Control
(ACS) для внедрения более гибкого и простого в использовании процесса аутентификации пользователей сайта на основе утверждений, выданных доверенными поставщиками удостоверений.
Сценарий и контекст
Для большинства корпоративных приложений и веб-сайтов необходима безопасная и надежная аутентификация пользователей. Пользователи подтверждают свою личность, предоставляя известную только им и механизму аутентификации информацию. Обычно это комбинация имени пользователя и пароля, но также может использоваться смарт-карта, техника биометрической проверки, например отпечатки пальцев или сканирование сетчатки, а также любой другой подход. Важным фактором является то, что проектировщики приложения должны выбрать механизм уникальной идентификации каждого пользователя. Даже если эта идентификация состоит только в создании уникального идентификатора пользователя.
Формы ASP.NET — это естественный подход к аутентификации пользователей и авторизации всех их действий при доступе на веб-сайты, созданные с использованием технологии ASP.NET. Это гибкий и простой в реализации механизм, который предоставляет пользователям возможность управления своими учетными данными (например, изменение пароля). Именно поэтому проектировщики компании Trey Research изначально использовали формы ASP.NET для аутентификации в локальной версии приложения Orders.
Мнение Джаны
Аутентификация с использованием форм — это естественный подход для аутентификации в приложениях на основе технологии ASP.NET, но он не предоставляет гибкости подходов, основанных на утверждениях для федеративной идентификации и единого входа.
Однако аутентификация с использованием форм ASP.NET не соответствует ожиданиям пользователей, которые привыкли к механизмам аутентификации, предоставляющим возможность самостоятельного управления личными данными и использования одной учетной записи для доступа к нескольким веб-сайтам.
Например, пользователи, имеющие учетную запись Windows Live, могут настроить и управлять ею в Windows
Live. Эта же учетная запись используется для доступа к веб-сайтам, таким как веб-служба электронной почты
Hotmail, программа разработчиков MSDN и другие веб-сайты Microsoft и сторонних разработчиков.

66
В этом случае Windows Live действует как поставщик удостоверений, аутентифицируя посетителей и подтверждая их личность веб-сайтам, доверяющим Windows Live. Этот механизм, как правило, называют федеративной аутентификацией. Он также поддерживает возможность единого входа и не требует повторного ввода учетных данных для доступа к другим веб-сайтам.
Примечание
Для получения дополнительной информации о федеративной и основанной на утверждениях аутентификации пользователей, поставщиках удостоверений, и единого входа в систему см.
«Приложение Б. Аутентификация пользователей и авторизация запросов» в этом руководстве.
Проектировщики компании Trey Research хотели предоставить своим посетителям гибкость использования федеративной аутентификации пользователей и решили изучить возможные варианты ее внедрения в приложение Orders. Кроме того, они хотели упростить доступ к приложению для сотрудников компании Trey Research и сотрудников компаний-партнеров (например, транспортных партнеров).
Рисунок 1 отображает существующую архитектуру аутентификации пользователей локального приложения Orders. В этой версии приложения аутентификация пользователей реализована с помощью форм ASP.NET (изображено, как 1 на схеме). Пользователям предоставляется доступ к приложению
Orders если их веб-обозреватель предъявил правильный маркер аутентификации ASP.NET для этого приложения (2 на схеме). Сотрудники компаний-партнеров, таких как транспортные партнеры, проходят процесс аутентификации точно также (3 и 4 на схеме). Сотрудники головного офиса компании Trey
Research для входа в приложение Orders используют специальные учетные данные, применяя тот же механизм аутентификации на основе форм ASP.NET, который используется пользователями и сотрудниками-партнерами (5 и 6 на схеме). Однако сотрудники компании Trey Research также используют внутренние приложения, такие как программы для бухгалтерского учета и производственного процесса. Им необходимо пройти аутентификацию для этих приложений, используя другие учетные данные, хранимые локально в Windows Active Directory (7 и 8 на схеме).

67
Рисунок 1
Изначальный механизм локальной аутентификации пользователей в компании Trey Research
В следующих разделах данной главы описывается, как проектировщики компании Trey Research определили и выбрали более гибкий подход для процесса аутентификации и авторизации посетителей, партнеров и сотрудников компании Trey Research, и как они его реализовали в приложении Orders.
В последнем разделе этой главы рассматривается, как ACS может действовать как механизм аутентификации пользователей для шины интеграции Windows Azure.
Аутентификация посетителей в приложении Orders
Проектировщики компании Trey Research были осведомлены о расширяющемся использовании федеративного удостоверения в сети Интернет и хотели оценить возможные варианты аутентификации пользователя на современных веб-сайтах и в веб-приложениях. В следующих разделах этой главы вы узнаете, как они выполнили эту оценку.

68
Выбор метода аутентификации
Проектировщики компании Trey Research оценили возможность использования общепринятого метода аутентификации пользователей в приложении Orders, сравнивая преимущества и недостатки использования аутентификации, основанной на утверждениях, с аутентификацией на основе форм ASP.NET в сочетании с существующим пользовательским хранилищем, реализованным службой Windows Active Directory.
Аутентификация с использованием форм ASP.NET
Аутентификация с использованием форм является встроенной функцией ASP.NET и может быть быстро и легко реализована на веб-сайтах на базе ASP.NET. Существует ряд серверных элементов управления, которые могут быть использованы в веб-страницах, и пользователям будут предоставлены возможность изменения их учетных данных, создания учетной записи, а также возможности входа и выхода из системы. Аутентификация с использованием форм уже использовалась в приложении Orders. Таким образом, использование этого механизма в гибридной версии приложения не повлечет за собой изменения кода программы.
Процесс аутентификации пользователей с использованием форм ASP.NET требует доступной для веб- сайта базы данных с учетными данными пользователей. Это не будет проблематичным, поскольку уже принято решение о развертывании информации о клиентах на технологической платформе SQL Azure.
Впрочем, компания Trey Research решила предложить более гибкие возможности посетителям, сотрудникам компании и партнерам, предоставив доступ к веб-сайту Orders с использованием их существующих учетных записей вместо создания новых. А использование форм ASP.NET для аутентификации предусматривает предоставление пользователям отдельных учетных записей для приложения Orders.
Аутентификация, основанная на утверждениях, с использованием службы федерации
Microsoft Active Directory
Аутентификация на основе утверждений позволяет посетителям использовать существующую учетную запись, которую они создали с помощью поставщика удостоверений, которому доверяет компания Trey
Research. Для использования этого подхода необходимо, чтобы разработчики компании Trey Research решили, каким поставщикам удостоверений они будут доверять. Один из вариантов — это использование службы федерации Active Directory Federation Service (ADFS) в сочетании с существующей службой Windows
Active Directory. Службы ADFS предоставляют пользователям возможность входа в систему через Интернет, используя учетные записи из Active Directory. Нет необходимости прямого подключения к доменной сети
Active Directory.
Мнение Джаны
Службы ADFS работают подобно службам маркеров безопасности (STS), которые могут проводить аутентификацию в Windows Active Directory и выдавать маркеры безопасности, содержащие утверждения об этом пользователе. Эти утверждения могут содержать как просто идентификатор для аутентификации пользователя, так и расширенный набор утверждений в маркере, который предоставляет более подробную информацию о пользователях, такую как имена, роли, адреса электронной почты и прочее.
Однако использование службы ADFS означает, что сотрудникам компании Trey Research необходимо создать учетные записи для всех посетителей в их домене Windows Active Directory, или в отдельном домене
Windows Active Directory, предназначенном для клиентов, что вызовет увеличение требований к администрированию и может привести к нежелательным последствиям с точки зрения безопасности.
Приемлемым подходом была бы реализация аутентификации для определенного небольшого и четко ограниченного подмножества пользователей — сотрудников компании Trey Research и компаний-партнеров.
Но такая аутентификация всех посетителей не является разумным подходом.

69
Аутентификация на основе утверждений службы Windows Azure Access Control
Компания Trey Research может расширить возможности аутентификации пользователей с помощью службы ACS. Она предоставляет пользователям механизм входа в систему, используя существующие учетные записи некоторых популярных социальных сетей и поставщиков удостоверений.
Мнение Джаны
Служба ACS также является службой STS, которая предоставляет маркеры безопасности, содержащие утверждения о пользователе. Также она может аутентифицировать пользователей у ряда поставщиков удостоверений социальных сетей, таких как Windows Live ID, Google,
Facebook и OpenID. Служба ACS может быть и поставщиком утверждений; эта функциональность используется для аутентификации доступа в очереди и топик шины интеграции Windows Azure.
Проектировщики компании Trey Research решили, что служба ACS позволит предоставить пользователям необходимую гибкость использования существующих удостоверений и учетных записей, а также более удобный процесс аутентификации пользователя. Также одним из преимуществ является то, что компании более не придется управлять учетными записями пользователей, например предоставляя возможность смены пароля. За все функции управления удостоверениями отвечает поставщик удостоверений. Компании Trey Research необходимо только определить, каким поставщикам утверждений они будут доверять для установления личности пользователей.
Однако есть некоторые проблемы, которые должны решить в компании Trey Research при использовании этого подхода. Поставщики удостоверений социальных сетей обычно возвращают только утверждения, включающие уникальный идентификатор пользователя, и, возможно, имя пользователя и адрес электронной почты. Таким образом код программы должен ассоциировать этот идентификатор с данными зарегистрированного пользователя, хранящимися в базе данных в таблице Customer. Кроме того, компании, возможно, потребуется определить способ переноса существующих пользовательских учетных записей для применения основанного на утверждениях подхода. Внедрение аутентификации на основе утверждений также повлечет за собой необходимость изменения кода приложения разработчиками компании Trey
Research для использования утверждений, возвращенных службой ACS.
Специалисты компании Trey Research также понимают, что использование службы ACS с поставщиками социальных утверждений не предоставляет решения для единого входа в систему сотрудников компании и компаний-партнеров. Как те, так и другие сотрудники подключаются к приложению из собственных корпоративных сетей, используя учетные записи, определенные в службе Active Directory их компаний (или других корпоративных службах управления учетными записями). Однако им будет необходимо войти в приложение Orders, используя учетную запись, определенную поставщиками социальных утверждений.
Аутентификация на основе утверждений служб ACS и ADFS
Проектировщики компании Trey Research понимали, что они могут решить проблемы с помощью подходов, приведенных в предыдущих разделах, комбинируя техники служб ACS и ADFS для аутентификации пользователя. Совместно эти службы могут действовать как поставщики удостоверений и маркеров (STS) для учетных записей, определенных поставщиками удостоверений социальных сетей, таких как Windows Live ID,
Google, Facebook и OpenID, а также определенных в Windows Active Directory.
Для этого необходимо, чтобы служба ACS была настроена на доверие экземплярам служб ADFS, которые предоставлены компанией Trey Research и компаниями-партнерами, желающими участвовать в аутентификации пользователей с помощью федеративных удостоверений. Пользователи направляются в службу ACS для аутентификации. Далее служба отправляет запрос на аутентификацию каждого пользователя соответствующему поставщику удостоверений. Это может быть как один из настроенных поставщиков удостоверений социальных сетей, так и один из настроенных экземпляров служб ADFS. Когда экземпляр этой

70 службы получает запрос на аутентификацию пользователя, он проверяет удостоверения в локальном каталоге
Windows Active Directory. После подтверждения удостоверения одним из поставщиков удостоверений или экземпляром службы ADFS, служба ACS возвращает приложению маркер, содержащий любые найденные утверждения.
Используя службы ACS и ADFS совместно, компания Trey Research предоставляет посетителям доступ к приложению Orders с использованием социального удостоверения либо удостоверения, определенного в одном из корпоративных доменов Active Directory. Пользователи могут использовать собственные учетные записи Windows Live ID, Google, Facebook, OpenID и другие. А сотрудникам компании предоставляется возможность входа, используя собственные корпоративные учетные данные, определенные в домене компании. Сотрудники компаний-партнеров осуществляют вход с использованием корпоративных учетных записей, определенных в их доменах.
Это означает, что у компании Trey Research более нет необходимости хранить данные для аутентификации посетителей и сотрудников кампаний-партнеров. А учетные записи собственных сотрудников компании уже управляются сетевыми администраторами в Active Directory.
Следовательно, нет необходимости в дополнительном управлении учетными записями сотрудников.
Мнение Бхарата
Совместное использование аутентификации с использованием удостоверений социальных сетей и механизма каталогов организации со службой ACS обеспечивает значительную гибкость и позволяет приложениям поддерживать аутентификацию широкого круга пользователей. Также можно использовать утверждения на основе ролей для авторизации действий пользователей, поскольку из каталогов организации, как правило, можно получить информацию о ролях, хотя она обычно не предоставляется поставщиками удостоверений социальных сетей.
Единственными реальными проблемами являются дополнительные сложности настройки служб ACS и ADFS для поддержки такого федеративного подхода, а также потеря полноты контроля над списком разрешенных пользователей. Например, администраторы компаний-партнеров будут управлять списком своих сотрудников, которым предоставлен доступ в приложение Orders. Хотя компания Trey Research освобождается от работы над данной задачей и ответственности за нее, она также теряет возможность контроля над пользователями, имеющими доступ, и должна доверять компаниям-партнерам в предоставлении соответствующих прав. Это может стать проблемой, если предоставленные пользователям права доступа зависят от ролей, обозначенных в утверждениях, которые возвращаются поставщиками удостоверений, например «Менеджер» или «Администратор».
Совместное использование форм и аутентификации на основе утверждений
Последним из рассмотренных компанией Trey Research подходов было комбинирование подхода на основе утверждений, который рассматривался ранее, и аутентификации на основании форм ASP.NET, чтобы пользователи могли продолжать использовать собственные учетные записи из форм. Это означает, что администраторам этой компании нет необходимости переносить существующих пользователей для использования подхода, основанного на утверждениях. И новые, и существующие пользователи смогут использовать приложение. Новым пользователям будут предоставлены основанные на утверждениях учетные записи. А существующим пользователям будет предложено изменить свои учетные данные для аутентификации, основанной на утверждениях.
Тем не менее для разработчиков и администраторов компании Trey Research это означало бы необходимость управления и обслуживания двух несовместимых систем. Это также усложняет выполнение общих задач, таких как составление списка клиентов или управление данными клиентов в базе данных.
Кроме того, разработчикам было бы необходимо изменить код приложения для поддержки обеих технологий аутентификации пользователей.

71
Как компания Trey Research выбрала метод аутентификации
пользователей
После рассмотрения всех вариантов компания Trey Research решила использовать федеративный подход к аутентификации на основе утверждений, комбинируя службы ACS и ADFS. Этот подход предоставляет максимальную гибкость новым клиентам и поддерживает единый вход в систему для всех посетителей, включая сотрудников компании Trey Research и компаний-партнеров.
Было решено не выполнять дополнительную работу и не тратить средства на поддержку аутентификации пользователей на основе форм, а поэтому компании Trey Research необходимо было определиться с подходом к управлению учетными записями существующих клиентов и сотрудников. Разработчики обнаружили возможность добавления кода в приложение, который позволит пользователям, осуществляющим вход с использованием социальных или федеративных удостоверений, подключаться к существующей учетной записи. Это избавит компанию Trey Research от переноса существующих учетных записей, использующих аутентификацию на основе форм.
Кроме того, это обеспечило дополнительные преимущества в том, что клиенты и сотрудники получили возможность использования нескольких удостоверений, связанных с зарегистрированной учетной записью в таблице Customer. Таким образом, доступ к приложению осуществляется с помощью любого из этих поставщиков удостоверений. Это позволяет улучшить возможности единого входа посетителям. Данная реализация описана более детально в разделе «Управление множественными идентификаторами пользователя» этой главы.

72
Как компания Trey Research использует службы ACS и ADFS
для аутентификации посетителей
Компания Trey Research осуществляет основанную на утверждениях аутентификацию посетителей веб-сайта Orders посредством службы ACS в качестве STS, трех поставщиков удостоверений (Windows
Live ID, Yahoo! и Google) и экземпляров служб ADFS, предоставленных как компанией Trey Research, так и основными компаниями-партнерами. На рисунке 2 показана схема всего цикла аутентификации разных типов пользователей для разных поставщиков удостоверений.
Рисунок 2
Архитектура и последовательность выполнения аутентификации в гибридном приложении Orders

73
В рамках данной архитектуры клиенты проходят аутентификацию посредством службы ACS с использованием выбранного ими поставщика утверждений социальных сетей (1 на схеме).
Эти поставщики удостоверений настроены в службе ACS и являются для нее доверенными. Модули приложения Orders для аутентификации пользователей на основе утверждений выполняют проверку меток, возвращенных службой ACS, которые клиенты посылают приложению Orders (2на схеме).
Эти модули извлекают утверждения идентификатора пользователя, затем приложение Orders может производить поиск соответствующих данных клиентов в таблице Customer базы данных.
Аутентификация сотрудников компаний-партнеров осуществляется через службу ACS (3 на схеме), но так как она настроена на доверие федеративным службам каталогов партнеров, эти сотрудники могут выполнять вход в приложение Orders (4 на схеме), используя учетные записи их каталога организации.
И наконец, сотрудники компании Trey Research проходят аутентификацию средствами Active Directory своей корпоративной сети во время осуществления входа на личный компьютер (5 на схеме). Таким образом они получают доступ к внутренним приложениям компании Trey Research (6 на схеме). Когда эти сотрудники получают доступ в приложение Orders, служба ACS проверяет подлинность текущей учетной записи в службе Active Directory с помощью ADFS (7на схеме). После этого им выдается соответствующий маркер, который могут использовать модули аутентификации на основе утверждений приложения Orders для идентификации пользователей (8 на схеме).
В следующих разделах этого руководства подробнее описывается процесс реализации этой архитектуры компанией Trey Research в приложении Orders.
Настройка службы Access Control
Компания Trey Research использует программу установки (TreyResearch.Setupв примере проекта) для настройки службы ACS без использования веб-портала Windows Azure. Программа установки использует эти классы в проекте ACS.ServiceManagementWrapper для получения доступа и настройки службы ACS.
Примечание
Для получения дополнительной информации о проекте ACS.ServiceManagementWrapper, см. «Access
Control Service Samples and Documentation» по адресу http://acs.codeplex.com/releases/view/57595
В таблице показано, как компания Trey Research настроила службу ACS для аутентификации посетителей приложения Orders.

74
Артефакт
службы ACS

Параметр

Доверенный участник
Веб-сайт Orders
Поставщик удостоверений
Windows Live
ID
Группа правил по умолчанию, содержащая правила передачи идентификатора посетителя как
NameIdentifier_и_UserName'>NameIdentifier и UserName
(Windows Live ID не раскрывает информацию об адресах электронной почты пользователей).
Поставщик удостоверений
Google
Группа правил по умолчанию, содержащая правило для передачи идентификатора посетителя как
NameIdentifier
и правило для передачи пользовательского адреса электронной почты как
UserName.
Поставщик удостоверений
Yahoo!
Группа правил по умолчанию, которая содержит правило для передачи идентификатора посетителя как
NameIdentifier
и правило для передачи пользовательского адреса электронной почты как
UserName.
Поставщики удостоверений службы ADFS компании Trey
Research
Группа правил по умолчанию, которая содержит правило для передачи идентификатора посетителя как
NameIdentifier , правило для передачи пользовательского адреса электронной почты как
UserName, и правило для передачи групп учетной записи пользователя как утверждение
Roles.
Поставщики удостоверений службы ADFS компаний- партнеров
Группа правил по умолчанию, которая содержит правило для передачи идентификатора посетителя как
NameIdentifier, правило для передачи пользовательского адреса электронной почты как
UserName, и правило для передачи групп учетной записи пользователя как утверждение
Roles.

75
Управление множественными идентификаторами пользователя
Как правило, каждый зарегистрированный пользователь приложения Orders имеет единственный идентификатор пользователя, который связан с соответствующими данными о клиенте в базе данных.
Этот сценарий хорошо работает в случае единого источника аутентификации пользователя, например при аутентификации на основе форм ASP.NET. Но когда аутентификация осуществляется в различных областях (например, различные поставщики удостоверений, каждый из которых проводит аутентификацию пользователей в определенной области, например live.com или google.com), один и тот же клиент может иметь несколько уникальных идентификаторов.
Эта ситуация также возникает при использовании нескольких экземпляров службы ACS. В настоящее время компания Trey Research использует единое пространство имен службы ACS, настроенное в центре данных на севере США. Впрочем, в будущем компания может настроить дополнительные пространства имен службы ACS в других центрах данных вследствие дополнительных размещений приложения Orders в других национальных или международных центрах данных. Каждый экземпляр службы ACS может для уменьшения угрозы конфиденциальности пользователей возвращать разные уникальные идентификаторы пользователя от каждого экземпляра для одного и того же клиента.
Поэтому приложение должно быть разработано для поддержки более одного значения утверждения идентификатора пользователя (полученного от поставщика удостоверений или службы STS) для каждого зарегистрированного клиента. Компания Trey Research для этого использует две таблицы в базе данных.
Основная таблица Customer содержит строку для каждого зарегистрированного клиента с уникальным идентификатором клиента, уставленным отделом управления учетными записями компании Trey
Research в качестве ключа. Дочерняя таблица ACSIdentity содержит строку для каждого уникального значения утверждения идентификатора, связанную с соответствующим клиентом по ключевому полю.
Важным преимуществом этого подхода является возможность переноса пользователей из одного механизма аутентификации в другой. Например, когда компания Trey Research перешла от аутентификации на основе форм ASP.NET к аутентификации на основе утверждений, разработчики предоставили механизм перехода для существующих пользователей. Когда клиент впервые проходит процесс аутентификации с использованием поставщика удостоверений социальных сетей или службы
ADFS (когда уникальный идентификатор утверждений пользователя еще не хранится в таблице
ACSIdentity), компания Trey Research может предоставить страницу, позволяющую пользователям осуществить аутентификацию на основе форм ASP.NET и таким образом связать новую учетную запись, основанную на утверждениях, с существующими данными пользователя.
Пример приложения в данном руководстве не полностью реализует описанную архитектуру аутентификации. Это сделано для того, чтобы избежать настройки соответствующей службы
ADFS и экземпляра службы Windows Active Directory. В примере приложения используется только один экземпляр службы ACS и три поставщика утверждений социальных сетей и не используется отдельная таблица ACSIdentity. Также не используются роли для авторизации действий пользователей. Для получения информации об использовании утверждений ролей для авторизации посетителей, см. «Federated Identity for Web Applications» в книге
«A Guide to Claims-Based Identity and Access Control (2nd Edition)» по адресу http://msdn.microsoft.com/en-us/library/ff359110.aspx

76
Реализация аутентификации
На рисунке 3 показана в общем виде структура служб и классов, которые используются для аутентификации и авторизации в приложении Orders. Подробная информация о классах, показанных на этой схеме, будет приведена в следующем разделе этой главы.
Рисунок 3
Обзор процесса аутентификации и авторизации посетителей в гибридном приложении Orders
Аутентификация с использованием Windows Identity Foundation
Компания Trey Research использует Windows Identity Foundation (WIF) для проверки наличия допустимого маркера, содержащего утверждения о каждом посетителе, осуществляющем вход на веб- сайт. Нижеприведенный фрагмент взят из файла Web.config в проекте Orders.Website и показывает соответствующие настройки файла Web.config.
XML





1   2   3   4   5   6   7   8   9   ...   33


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал