Я создаю сайт, который будет содержать как страницы ASP.NET, так и апплет Flash. Я хочу инкапсулировать свою бизнес-логику в службу WCF, которая будет отображаться через две конечные точки: один доступный через Интернет через HTTP (S) для использования клиентом Flash и один доступный в центре обработки данных для использования серверами приложений , Если это не похоже на хороший подход, остановите меня здесь; в противном случае, я перейду на ...Аутентификация на основе токенов в WCF
Вопрос заключается в том, как аутентифицировать запросы, поступающие от клиента Flash. Поскольку я не хочу хранить пароль пользователя в cookie-браузере, не хочу отправлять пароль с каждым запросом и не хочу использовать HTTPS после первоначального входа в систему, я планирую использовать токен- основанной на аутентификации. Я также не хочу, чтобы пользователь должен был войти в Flash-клиент после того, как он уже вошел в сам сайт, поэтому я планирую использовать Javascript для передачи токена клиенту Flash при его запуске.
Я знаю, что WCF поддерживает встроенную среду безопасности .NET Framework (System.Security) для обеспечения контроля доступа, и я хотел бы воспользоваться этим.
Вопрос в том, как: Как передать токен службе WCF, когда она вызывается Flash, и как мне обрабатывать токен на сервере?
- WCF имеет «выданный маркер» режим проверки подлинности, но похоже, что это предназначено для использования в полномасштабной сценарии федерации с защищенной службой маркеров и SAML токенов - немного больше сложности, что я на самом деле хотеть. Можно использовать этот режим с моими жетонами «простой случайной строки»? Если да, то как? Имейте в виду, что это должно быть совместимо с Flash.
- Я мог бы передать токен в заголовке (заголовок SOAP или HTTP-заголовок). В этом случае, как только я определил, какой пользователь делает запрос, как мне сообщить структуру, чтобы проверки System.Security работали?
- Есть ли другой подход, который я должен рассмотреть? Все, что позволяет избежать отправки паролей в каждом запросе, позволяет мне использовать System.Security и работает с Flash.
Аарон, вы когда-нибудь выяснили простой способ сделать это? Я пытаюсь выполнить некоторую простую аутентификацию на токенах в WCF, и это кажется гораздо более сложным, чем нужно. – technophile
Я закончил, в основном, свой собственный.У меня есть одна конечная точка WCF, которая выдает токены - она берет имя пользователя и пароль, проверяет их и отвечает токеном, который в моем случае является просто случайной строкой. Фактические методы бизнес-логики находятся на другой конечной точке, в которой есть специальный инспектор сообщений, который считывает пользовательский заголовок, содержащий токен. На клиенте другой инспектор сообщений добавляет заголовок к исходящим сообщениям. Это больше работы, чем хотелось бы, но, похоже, она работает хорошо. – Aaron