Pull to refresh
0
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг

Использование Access Control Service 2.0 для авторизации в своих приложениях

Reading time 3 min
Views 6.9K

При разработке своего веб-приложения или сервиса всегда возникает вопрос, как авторизовать пользователей. В очередной раз просить их ввести свои данные и e-mail и запомнить очередной пароль?

Было бы здорово иметь возможность дать пользователям, которые уже имеют аккаунты в популярных социальных сетях или сетевых сервисах авторизоваться на нашем ресурсе, без необходимости заново вводить все данные.


В этом топике я хочу рассказать на простом примере, как с использованием сервиса Access Control Services, доступного в рамках платформы Windows Azure, организовать авторизацию по аккаунтам в других сетевых сервисах.

Итак, начнём.

Для начала нам надо настроить наш Access Control Services для работы с тестовым приложением.

Зайдем на портал управления нашей подпиской Windows Azure, перейдем в раздел Service Bus, Access Control & Caching:



И создадим новое пространство имён для сервиса Access Control:



В нашем случае, я создал пространство имён habratest. Дождемся окончания создания пространства имён и перейдем к его настройке для использования нашим приложением.


Псоле клика по иконке с подписью Access Control Service, на которую указывает стрелка на предыдущем рисунке, мы перейдем на портал настройки нашего новосоданного пространства имен.

Сконфигурируем пространство имен для нашего будущего приложения. Для этого выберем пункт меню Relying party applications и в центральной части кликнем по Add.



Заполним отобразившуюся форму:


Name: HabraTest
Mode: оставим настройку Enter settings manually — мы сконфигурируем наше приложение в Visual Studio
Realm:
http://localhost:7778/
— это URL, по которому будет опубликовано наше приложение
Return URL:
http://localhost:7778/
— в нашем случае совпадает с основным URL

Все остальные настройки можно оставить по умолчанию. По умолчанию подключен только один провайдер: Windows Live ID, но в настройках можно добавить Google, Yahoo!, Facebook и WS-Federation.

Закончив настройки, нажмите кнопку Save внизу формы.

Чтобы добавить дополнительных провайдеров в левой колонке нужно выбрать Identity providers и потом в центральной части выбрать Add. Отобразится интерфейс добавления провайдеров.



Я добавлю Google и Yahoo!

При добавлении провайдеров можно указать, к каким ранее сконфигурированным приложениям их нужно добавить.



Я добавлю оба провайдера к своему тестовому приложению HabraTest.

Теперь нужно настроить правила. Для этого перейдём в раздел Rule groups:



Кликнем по Default Rule Group for HabraTest и на следующей странице сгенерируем правила:




Сохраним сгенерированные правила.



Теперь перейдем в раздел Application integration и скопируем в блокнот Endpoint reference на WS-Federation Metadata.



На этом настройка Access Control сервиса для тестового приложения завершена.

Запустим Visual Studio и создаим в нем проект на базе шаблона ASP.NET MVC 3. При создании, выберем Internet Application и View Engine оставим Razor.

Своё приложение я назвал HabraTest.

Настроим наше приложение так, чтобы оно работало по порту, указанному в настройках Access Control сервиса. Для этого, в настройках проекта, в закладке Web, оставить использование Use Visual Studio Development Server и установить настройку Specific Port в 7778:



Не забудьте сохранить сделанные изменения.

Теперь подключим наш Access Control сервис к нашему приложению. Для этого, добавим к проекту STS Reference (правой кнопкой по решению в Solution Explorer и выбрать в меню Add STS Reference ...).

В открывшемся диалоговом окне в поле Application URI необходимо ввесте URI нашего приложение
http://localhost:7778/
и нажать Next.

Отобразится предупреждение, что у нас используется небезопасное соединение. Поскольку это тестовое приложение, мы его игнорируем.

На следущем шаге мастера, выбираем Use an existing STS и указываем сохраненный после настроек Access Control Service, Endpoint Reference.



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

Чтобы наше приложение правильно обрабатывало данные, получаемые от сервиса авторизации, в конфигурационный файл нужно добавить настройку:

<httpRuntime requestValidationMode="2.0"/>


Теперь можно запустить наше приложение. Отобразится выбор провайдера аутентификации:



И после аутентификации по выбранному провайдеру, получим доступ к сайту:


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

Это только начало работы, поскольку, естественно необходима дополнительная разработка, чтобы теснее интегрировать Access Control сервисы с нашими сервисами.

Использование Access Control не ограничено только веб-сервисами. Как его можно использовать для аутентификации в приложениях на Windows Phone 7 можно посмотреть в свежем релизе Windows Azure Toolkit for Windows Phone 7, краткий обзор одной из первых версих которого можно прочитать на хабре.
Tags:
Hubs:
+11
Comments 16
Comments Comments 16

Articles

Information

Website
www.microsoft.com
Registered
Founded
Employees
Unknown
Location
США