Как я могу сгенерировать токен безопасности SAML в том же приложении, которое его использует?

StackOverflow https://stackoverflow.com/questions/2255103

Вопрос

Я настраивал некоторые из своих приложений для использования Windows Identity Foundation.Я использую пассивное перенаправление для получения токенов безопасности из Службы токенов безопасности.Я добился этого, вставив код WIF на веб-сайт входа в систему, который существовал до того, как я начал использовать WIF, а затем используя "Добавить ссылку STS" в приложениях.

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

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

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

Это было полезно?

Решение

Класс службы токенов безопасности можно поместить в ваше собственное приложение.

Однако для того, чтобы пользователь мог получить доступ к странице входа в ваше приложение до того, как он получит токен, вы должны удалить deny users=? из Authorization раздел web.config.Это позволит пользователям заходить на вашу веб-страницу без маркера безопасности.Как только они войдут в систему, перенаправьте их на соответствующую страницу.

Недостатком этого является невозможность использовать удобную функцию пассивного перенаправления, но это действительно работает.Это означает, что вы должны вручную перенаправлять пользователей на страницу входа, когда они пытаются сделать что-то, требующее от них входа в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top