В настоящее время у нас есть группа веб-сервисов, предоставляющих интерфейсы для различных типов и ролей клиентов.Оптимизация проверки клиента SSL Client
фона:
- Аутентификация осуществляется через SSL Client проверки сертификатов. Это в настоящее время выполняется в веб-сервисном коде (а не HTTP-сервером). Мы не хотим использовать менее безопасную схему. Это сообщение не означает авторизацию, а только аутентификацию.
- Веб-службы говорят как SOAP, так и REST (JSON), и мне определенно не интересно начинать обсуждение преимуществ любого из этих подходов.
- Все операции, открытые через веб-службы, являются лицами без гражданства.
Моя проблема заключается в том, что проверка клиентского сертификата по каждому запросу очень тяжелая и легко доминирует на процессорном времени на сервере приложений. Я уже пробовал разделять части приложения Authentication & на разные физические серверы для уменьшения нагрузки, но это не улучшает скорость отправки в целом - запрос все еще занимает постоянное время для аутентификации, независимо от того, где это делается.
Я хотел бы попытаться ограничить количество аутентификаций, создав HTTP-файл cookie (с ассоциированным сеансом на стороне сервера) после успешной проверки сертификата клиента, который при предоставлении клиентом приведет к пропущению проверки сертификата клиента (хотя все еще разговаривает по SSL). Я также хотел бы ограничить время сессий и сделать процессы максимально прозрачными с точки зрения клиента.
Мои вопросы:
- Это еще как безопасный? (и как мы можем оптимизировать для безопасности и прагматизма?)
- Есть ли свободные реализации этой схемы? (Я знаю продукт SiteMinder от CA)
- Учитывая вышеизложенное, следует ли нам продолжать выполнять аутентификацию в приложении или переходить на сервер?
Спасибо, что спросили об этом. После того же вопроса три раза в тот же день в несколько разных контекстах (!) Я начал копать глубже.Оказывается, ответ немного более интересен: http://extendedsubset.com/?p=8 –