Параметры проверки подлинности ASP.NET и WCF

Каковы варианты проверки подлинности для взаимодействия веб-приложения ASP.NET со службой WCF?

Сценарий:

  1. Пользователь вводит свое имя пользователя и пароль в форме ASP.NET.
  2. ASP.NET необходимо передать это в WCF для аутентификации пользователя.
  3. В случае аутентификации пользователь может выполнять действия на сайте. Каждое действие потребует отправки данных в разные операции 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?


person Bob Wintemberg    schedule 04.05.2012    source источник


Ответы (1)


Стандартный способ сделать это - использовать WIF с Microsoft STS, а именно. Службы федерации Active Directory версии 2.0 (ADFS).

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

Вы можете создать собственное хранилище настраиваемых атрибутов: Обзор хранилища атрибутов AD FS 2.0 .

TechNet WIF / WCF: WIF и WCF.

person rbrayb    schedule 06.05.2012