Каковы варианты проверки подлинности для взаимодействия веб-приложения ASP.NET со службой WCF?
Сценарий:
- Пользователь вводит свое имя пользователя и пароль в форме ASP.NET.
- ASP.NET необходимо передать это в WCF для аутентификации пользователя.
- В случае аутентификации пользователь может выполнять действия на сайте. Каждое действие потребует отправки данных в разные операции WCF. WCF необходимо знать, кто является пользователем при каждом вызове.
Самым простым решением было бы сохранить имя пользователя / пароль в состоянии сеанса ASP.NET. Однако это небезопасно, потому что пароль хранится в памяти на сервере.
Я бы предпочел не использовать сертификат для аутентификации «клиента» ASP.NET для службы, потому что существует вероятность того, что этот WCF может быть использован другим клиентом в дополнение к ASP.NET.
Лучшее предложение, которое я видел до сих пор, - использовать Windows Identity Foundation (WIF). Похоже, что для этого требуется STS. Согласно MSDN, Microsoft, похоже, не рекомендует настраивать STS через Visual Studio. Нет никакой гарантии, что STS будет доступен в среде развертывания, поскольку некоторые среды могут использовать Active Directory, а другие среды могут иметь настраиваемое хранилище пользователей. Можно ли настроить настраиваемую службу STS для аутентификации в настраиваемом хранилище пользователей? У меня проблемы с поиском документации по этому поводу.
Есть ли какие-то другие варианты, кроме использования WIF? Как насчет настраиваемой службы проверки подлинности WCF, которая возвращает токен, который можно использовать для проверки подлинности в отношении основной службы WCF?