2012-05-02 3 views
4

Я использую новый веб-API ASP.NET в проекте прямо сейчас, для чего требуется аутентификация и авторизация пользователей для выполнения некоторых действий: например, обновление страница профиля.Использование Azure ACS (Служба контроля доступа) с API-интерфейсом ASP.NET

В предыдущей версии этого же проекта с использованием ASP.NET MVC 3 без требования API я имел большой успех, используя Azure ACS и управление доступом на основе ролей (на основе this).

Я хотел бы иметь возможность использовать ACS снова с веб-API, но я не понимаю, как ACS работает достаточно хорошо, чтобы узнать, поддерживается ли это. Возможно ли, есть ли какие-либо проблемы, с которыми я, вероятно, столкнусь с попыткой сделать это?

ответ

4

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

Поддерживается. ASP.NET Web API позволяет нам создавать службы REST. ACS поддерживает любые виды служб REST. Будет работать обычный процесс проверки претензий, описанный в этом документе article. Нам просто нужно изменить WCF на веб-API.

С наилучшими пожеланиями,

Ming Xu.

+0

Снова прочитав это, похоже, что учебное пособие создает службу RESTful WCF, которая опирается на существующую пару имени пользователя и пароля. Я пытаюсь включить функции '[PrincipalPermission (SecurityAction.Demand, Role =" User ")]', которые, похоже, не описываются описанием учебника. Я вижу общее наследие, но как сопоставить одно с другим не сразу видно. Я все еще что-то пропустил? – ehdv

+0

Я думаю, что это может быть уместно. Сегодня я попробую попробовать. http://blogs.msdn.com/b/alikl/archive/2011/09/12/obtaining-swt-security-token-from-windows-azure-appfabric-acs-in-wpf-application-using-webbrowser- control.aspx – ehdv

+0

http://msdn.microsoft.com/en-us/library/windowsazure/hh289317.aspx «Этот раздел больше недоступен» –

0

Из моего опыта ссылка, на которую вы указали, вероятно, не поможет, поскольку она используется для клиентов (WPF/Windows Phone/и т. Д.). Используя ACS на стороне обслуживания, мы будем рассматривать претензии, мы можем настроить ACS для возврата любых претензий, которые нам нравятся. Заявка может быть именем пользователя, но это также может быть ролью. Например, мы можем создать правило для привязки определенного пользователя к роли, чем ACS вернет нам заявку на роль.

Но если мы хотим интегрироваться с ролями ASP.NET, нам нужно проанализировать заявку (даже если это требование о роли) и присвоить заявку Thread.CurrentPrincipal. Если мы настроим ACS, чтобы вернуть токен SAML, WIF делает это для нас. Если ACS возвращает токен SWT, нам нужно сделать это самостоятельно или использовать библиотеку, которую кто-то пишет для нас. Одна из этих библиотек - DPE.OAuth, которая написана командой DPE. Вы можете получить его от http://msdn.microsoft.com/en-us/IdentityTrainingCourse_ACSAndWindowsPhone7. Хотя в этом учебном пособии рассказывается, как работать с ACS в Windows Phone, библиотеку OAuth со стороны службы можно повторно использовать.

С наилучшими пожеланиями,

Ming Xu.