Я создаю приложение, в котором требования кажутся стандартной проблемой (по крайней мере для меня)... У меня есть Web.UI на основе asp.net mvc и клиентов из iphone, andriod и blackberry.
Итак, разумная вещь - переместить всю мою бизнес-логику в уровень услуг, доступ к которому можно получить через http. Этот уровень сервиса должен принимать запросы с пользовательским контекстом (идентификатором) и каким-то хорошим способом выполнять авторизацию независимо от того, с каким типом клиента он общается (надеюсь?).
Более года назад я сделал 3-месячный концерт, на котором был W.I.F. (Windows Identity Foundation) в гибридной локальной и облачной архитектуре. Мне нравится. 3 вещи, которые поразили аккорд, были (1) экстернализация аутентификации и не забота о том, как это было сделано, (2) удаление логики авторизации из бизнес-логики, (3) авторизация на основе требований.
За последний год я слышал и смотрел все о Rest Services "новый классный способ хиппи". Поэтому, хотя я и прав, пусть попробует это. После того, как я начал играть и получать кодировку, я начал очень растерянно (и впоследствии прочитал около 10 часов вчера, не написав еще одну строку С#). Я все еще запутался во всех SOAP vs REST, WS. * Vs Http, SAML и SWT. Я действительно не хочу, чтобы этот поток был об этом, потому что этого достаточно, чтобы говорить о stackoverflow, но я чувствую, что у меня есть выбор между двумя лагерями, когда мне не кажется, что я хочу того или другого но бит из каждого?
Мне три очка, о которых я упоминал выше о WIF, не похожи на понятия, которые должны быть привязаны к WS. *? Но у меня возникает ощущение, что они или, по крайней мере, то, как WIF на данный момент делает их, без какой-либо экспертной настройки (например, я столкнулся с этим сообщением, написанным всего несколько дней назад - http://zamd.net/2011/02/08/using-simple-web-token-swt-with-wif/).
Другими областями, о которых я мало что знаю, являются мои клиенты (iphone, andriod, blackberry), способные играть с WIF, это тот же самый STS, который бросает им токен SAML, и они ведут себя точно так же, как браузер и передать его обратно в заголовке, как и любой другой клиент? Да, мне нужно будет выяснить это, но если это разбойник с W.I.F, и я сразу узнаю об этом, то, по крайней мере, я могу сосредоточиться от него.
Наконец, чтобы добавить еще одну вещь в микс. Я не хочу об этом думать. Я хочу использовать сторонний поставщик аутентификации/идентификации - http://www.janrain.com/products/engage - который, я считаю, использует OpenID. Может ли это вписаться в W.I.F. или я просто создаю новый токен SAML из OpenID и с этого момента использую WIF.
Я думаю, в конце этого болтовня, я хочу вернуться туда, где я начал, потому что он становится все более и более сложным, чем больше вопросов я задаю, и тем больше вариантов, которые я считаю.
Имеет ли сервисный уровень (в WCF), который говорит с разными клиентами не-NET, которые требуют, чтобы контекст идентификации и авторизация были настолько странными? Если вы создали что-то вроде этого, как вы к нему подошли?