Azure ACS без сгенерированного кода и обработчиков HttpHandler?

Служба Azure ACS довольно хороша, и мне нравятся все ее волшебные возможности, но я хочу немного меньше волшебства для своего веб-приложения (MVC). Если вы посмотрите на примеры кода на CodePlex, то достаточно просто вызвать службу и получить список провайдеров входа в JSON из такой конечной точки:

https://.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=http%3a%2f%2flocalhost%3a7070%2f&version=1.0&callback=?

Из полученного JSON вы можете отображать некоторые ссылки на провайдеров, и как только вы разберетесь с этими логинами, они вернут вас обратно через ACS, и ACS отправит сообщение с полученным токеном на любую конечную точку, которую вы настроили в Azure. портал.

У меня вопрос, что мне делать с этим токеном? Я не хочу использовать «магию» WIF, которая создает наборы IPrincipal, а что нет. Я просто не хочу связываться с тем, что у меня уже есть в приложении.


person Jeff Putz    schedule 08.06.2011    source источник


Ответы (2)


Я написал сообщение в блоге, описывающее решение для людей, которым нужны возможности WIF, но которые не хотят преобразовывать все свое приложение в приложение, основанное на заявках. Это должно дать вам представление о том, как действовать в данной ситуации: http://goo.gl/J8WZe.

В конце концов, я расширил классы модулей WIF и добавил несколько переопределений, чтобы заменить магические методы, которые мне не нужны.

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

person Garvin    schedule 25.10.2011

Вы бы сделали именно то, что WIF делает с токеном. Вы анализируете его после расшифровки токена SAML. Вы можете ознакомиться со спецификацией токена SAML здесь. Я бы порекомендовал использовать WIF, потому что синтаксический анализ SAML не для слабонервных. Вам нужно будет разобрать все претензии, а затем решить, что делать с ними в ваших приложениях. WIF делает это, создавая IClaimsPincipal и устанавливая утверждения для IClaimsIdentity.

person Scott Densmore    schedule 09.06.2011
comment
У меня так много, но разве вам не нужно проверять содержимое токена у доверенного поставщика (в данном случае ACS)? - person Jeff Putz; 09.06.2011
comment
Да, вам нужно будет подтвердить с помощью сертификата, что вызов поступил от ACS. Вы получите сертификат, который можно использовать для проверки токена. - person Scott Densmore; 09.06.2011