Как получить единого входа и анонимных пользователей с WIF и пассивной аутентификацией?

У меня есть веб-приложение, которое должно реализовать SSO с WIF. STS уже настроен для аутентификации, и я могу использовать его для входа в систему.

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

Итак... как я могу сказать STS ничего не делать, если пользователь не аутентифицирован?

2 ответа

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

В MVC вы бы использовали [Authorize] атрибут на контроллерах. В ASP.NET вы можете использовать это: http://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx

Вы не должны смешивать аутентификации на своем веб-сайте (ретранслятор).

Все вопросы, связанные с аутентификацией, должны обрабатываться STS. Для достижения вашей цели вы должны разрешить анонимным пользователям вашу STS и возвращать токен на ваш веб-сайт (RP) с утверждениями, указывающими на пользователя как "Anonymous" (или как вы хотите позвонить ему).

Поэтому в основном вы должны "аутентифицировать" пользователя как неаутентифицированного:D.

Таким образом, вы не определяете внешний вид и доступность вашего графического интерфейса в зависимости от того, аутентифицирован ли пользователь или нет, но от того, играет ли он определенную роль или нет (очевидно, что пользователь "Аноним" не будет иметь никаких ролей). Это кажется мне лучшим подходом.

Надеюсь это поможет.

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