Как "ASP.Net Identity" сравнивается с "Windows Identity Foundation"?

Я нашел эту прекрасную статью, которая показывает эволюцию структуры удостоверений ASP.Net: http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity

Однако меня интересует, как Windows Identity Framework (WIF) вписывается в картину с новой ASP.Net Identity Framework. Являются ли они еще одним набором конкурирующих реализаций Microsoft?

Кроме того, если разработчик заинтересован в поддержке аутентификации SAML (которую поддерживает WIF), аутентификации Active Directory и аутентификации на основе форм, что бы вы выбрали?

3 ответа

Решение

Спасибо nzpcmad за помощь в постановке правильных вопросов.

После дополнительных исследований, если я все это правильно понимаю, самое большое преимущество использования новой идентичности ASP.Net заключается в том, что она построена поверх модели OWIN.

Microsoft работает над компонентом WS-Federation на основе OWIN, который называется Microsoft.Owin.Security.WsFederation. Он все еще находится в бета-версии, но я думаю, что он фактически построен на WIF, поскольку все классы WIF были перенесены в базовую среду начиная с.Net 4.5. Дополнительную информацию можно найти здесь: http://www.cloudidentity.com/blog/2014/02/20/ws-federation-in-microsoft-owin-componentsa-quick-start/ и здесь http://blogs.msdn.com/b/webdev/archive/2014/02/21/using-claims-in-your-web-app-is-easier-with-the-new-owin-security-components.aspx.

Поэтому я не думаю, что вопрос заключается в следующем: идентичность ASP.Net против WIF. Я думаю, что вопрос: OWIN против не OWIN.

Поэтому я думаю ответить на мой вопрос: более перспективным и гибким выбором является использование компонентов безопасности OWIN, а с помощью простой конфигурации или других средств можно переключаться между компонентом OWIN ASP.Net Identity и компонентом OWIN WS-Federation.

ASP.NET Identity использует WIF в фоновом режиме. WIF - это не только WS-Fed, но и ядро ​​платформы.NET, когда дело касается принципала / идентичности. В основном пространство имен System.IdentityModel теперь является частью как WIF, так и.NET 4.5.

Цель ASP.NET Identity - предоставить готовый механизм аутентификации с постоянством и некоторыми другими изящными функциями и, таким образом, заменить традиционно используемых провайдеров членства, которые в значительной степени сделали то же самое, очень уродливо (в конце концов, это закончилось 10 лет).

Лично я никогда не использую ASP.NET Identity в проекте, а скорее делаю свою собственную пользовательскую логику, когда речь идет о постоянстве, рассылке и т. Д., И я работаю напрямую с наиболее важными классами WIF, такими как SessionAuthenticationModule, ClaimsAuthenticationManager, ClaimsAuthorizationManager и т. Д. Это дает я умение написать свою собственную абстракцию на основе утверждений. WIF это все о CBAC (контроль доступа на основе утверждений).

Теперь, когда речь идет о OWIN или нет -OWIN, я бы сказал - иди за OWIN (или, если быть более точным, иди за Катану). ASP.NET будет полностью переписан с новой технологией vNext, и Katana будет играть там главную роль. Чем раньше вы привыкнете работать с промежуточным программным обеспечением Katana, тем легче будет для вас переход.

Помните, что все модули (FormsAuthenticationModule, RoleManagerModule, SessionAuthenticationModule, WSFederationModule,...) не совместимы с OWIN/Katana, так как концепция расширения ASP.NET через IHttpModule заменяется философией Middleware.

Проверьте этот "скрытый" репозиторий, в котором MVC, WebAPI, SignalR объединены в новый vNext MVC:

vNext MVC Repository

Во-первых, WIF поддерживает WS-Fed, а не SAML (хотя он использует токены SAML). AFAIK, идентичность не поддерживает SAML.

Идентичность основывается преимущественно на базе данных. WIF обычно используется в сочетании с ADFS на основе AD. ADFS поддерживает SAML.

WIF передает аутентификацию / авторизацию на STS (например, ADFS), поэтому решение FBA - это STS, а не WIF.

WIF поддерживает федерацию, поэтому вы можете подключиться к другим STS, Azure Active Directory и т. Д.

Как вы говорите, это два набора "конкурирующих" реализаций Microsoft.

Если вы смотрите на более широкую картину, поддержку AD и на будущее, кажется, что WIF - лучший вариант.

Другие вопросы по тегам