n-уровневая идентификация и авторизация .net в сервисной архитектуре

Я создаю приложение, в котором требования кажутся стандартными (по крайней мере, для меня) ... У меня есть Web.UI на основе asp .net mvc и клиентов от iphone, andriod и blackberry .

Поэтому разумным решением будет переместить всю мою бизнес-логику на уровень служб, к которому можно получить доступ через http. Этот уровень служб должен принимать запросы с пользовательским контекстом (идентичностью) и каким-то приятным образом выполнять авторизацию последовательно независимо от того, какой тип клиента общается с ним (я надеюсь?).

За год на ходу я сделал 3 месяца gig, который использовал WIF (Windows Identity Foundation) в гибридной локальной и облачной архитектуре. Мне нравится. Три вещи, которые вызвали отклик: (1) внешняя аутентификация и не забота о том, как это было сделано, (2) удаление логики авторизации из бизнес-логики, (3) авторизация на основе утверждений.

За последний год я слышал и смотрите все о Rest Services - «новом крутом хиппи-образе жизни». Так что я, хотя и отлично, давай попробуем. После того, как я начал экспериментировать и писать код, Я начал сильно запутываться (и впоследствии читал вчера около 10 часов, не написав ни строчки C #). Я до сих пор не понимаю, что такое SOAP vs REST, WS. * Vs Http, SAML vs SWT. Я действительно не хочу, чтобы эта тема была об этом, потому что этого достаточно, чтобы говорить о stackoverflow, но я чувствую, что у меня есть выбор между двумя лагерями, когда на самом деле не кажется, что я хочу один или другой но биты от каждого?

Мне три упомянутых выше пункта о WIF не кажутся концепциями, которые следует связывать с WS. *? Но у меня такое ощущение, что они, или, по крайней мере, то, как WIF приходит в настоящее время, делает их, без какой-либо специальной настройки (например, я наткнулся на этот пост, написанный всего несколько дней назад - http://zamd.net / 2011/02/08 / using-simple-web-token-swt-with-wif / ).

Другие области, о которых я мало знаю, - это мои клиенты (iphone, andriod, blackberry), способные работать с WIF, это тот же STS, который выдает им токен SAML, и они ведут себя так же, как браузер и передать его обратно в заголовок, как и любой другой клиент? Да, мне придется это выяснить, но если это нарушает договоренность с WIF, и я узнаю об этом сразу после публикации, то, по крайней мере, я могу отвлечься от этого.

Наконец, чтобы добавить еще одну вещь в смешивание. Я действительно не хочу ни об этом думать. Я хочу использовать стороннего поставщика аутентификации / идентификации - http://www.janrain.com/products/engage - который, как мне кажется, использует OpenID. Может ли это вписаться в WIF, или мне просто нужно создать новый токен SAML из OpenID и с этого момента использовать WIF.

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

Имеется уровень служб (на WCF), который общается с разными клиентами, не являющимися сетями, которые требуется идентификация контекста и авторизация так странно? Если вы создали что-то подобное, как вы к этому подошли?

18
задан Ladislav Mrnka 18 February 2011 в 17:54
поделиться