Объединение пользовательских ClaimsIdentity в Azure AD (b2c)

У меня есть приложение ASP.NET 5 (RC1), для которого я пытаюсь настроить аутентификацию и авторизацию. Однако я сбит с толку и ошеломлен всей различной информацией об аутентификации и авторизации в Интернете, относящейся к этой платформе. Многие из них либо безнадежно устарели, либо просто неприменимы в данном конкретном сценарии использования. Прямо сейчас я даже не уверен, какую правильную «терминологию» использовать для вопроса, который я пытаюсь задать, но я отвлекся.

Я пытаюсь создать систему, в которой пользователи проходят аутентификацию / авторизацию через Azure AD (B2C?), А дополнительная информация профиля пользователя хранится в базе данных. Однако доступ к пользовательскому контексту в контроллерах осуществляется согласованным образом с использованием того, что, как я полагаю, будет настраиваемым ClaimsPrincipal / ClaimsIdentity? Я предполагаю, что это должно быть так же просто, как добавить атрибут авторизации или что-то подобное и получить доступ к ClaimsPrinciple.Current.Claims.

Раньше я использовал ASP.NET Identity, но многие из найденных мной примеров не используют это. Большинство из них просто используют промежуточное ПО UseOpenIdConnectAuthentication. Я вижу, что ASP.NET Identity по-прежнему доступен, но я не уверен, что он применим в этом сценарии. Я также нашел здесь пару сообщений, предлагающих использовать для этого настраиваемый ClaimsIdentity, но у меня возникают проблемы с поиском полезных актуальных примеров. Кстати, я понимаю, что большая часть этой «профильной» информации может быть сохранена в виде настраиваемых атрибутов в лазурном объявлении, но способ использования некоторой информации в приложении не позволяет всей этой информации находиться в лазурном (например, соединения EF linq и т. Д.).

Пожалуйста, скажите мне, близок ли я к этому. Я знаю, что это довольно новая платформа и информация скудная, но, конечно, не я единственный, кто задает эти вопросы.


person Brandon    schedule 16.05.2016    source источник


Ответы (1)


Просто напомню отличную статью Управление идентификацией для мультитенантных приложений в Microsoft Azure.

Там вы найдете ответы на многие ваши вопросы.

например вы можете увеличить заявку в событии AuthenticationValidated промежуточного программного обеспечения OWIN.

Идентификация ASP.NET основана на утверждениях, поскольку атрибуты доставляются в виде утверждений, но аутентификация выполняется в БД, а не через внешний IDP, такой как Azure AD.

B2C - это особый случай в Azure AD - он используется для многих (миллионов!) Внешних пользователей, которые могут самостоятельно регистрироваться и управлять, например, SSPR.

B2C использует отдельный клиент по сравнению с обычным клиентом Azure AD, и пользователи не имеют доступа к таким вещам, как O365 или какие-либо приложения SaaS.

person rbrayb    schedule 16.05.2016
comment
Спасибо за ответ. Прочитав это и посмотрев на это: github.com/aspnet/Identity/blob/ Кажется, некоторая комбинация ClaimType и метода расширения может быть подходящей для того, что я пытаюсь сделать. Есть мысли по этому поводу? - person Brandon; 17.05.2016
comment
Да - возможно, объедините утверждения AAD и информацию. вам нужна форма БД? - person rbrayb; 17.05.2016