Аутентификация внешних запросов к веб-сервисам Creatio
Glossary Item Box
Общие положения
Важной частью многих веб-приложений является возможность идентифицировать пользователей и контролировать их доступ к ресурсам приложения. Аутентификация — это процесс подтверждения личности пользователя. Для аутентификации пользователь должен предоставить доказательства, удостоверяющие, что это действительно он. Обычно это учетные данные — имя пользователя и пароль.
Все внешние запросы к веб-сервисам Creatio должны быть аутентифицированы. В Creatio поддерживаются следующие виды аутентификации внешних запросов:
- Анонимная аутентификация (Anonymous).
- Базовая аутентификация (Basic-аутентификация).
- Аутентификация на основе Cookies (Forms-аутентификация).
Если в приложении, которое интегрируется с Creatio, нужно использовать Basic-аутентификацию, то необходимо отключить защиту от CSRF-атак.
Основные преимущества и недостатки видов аутентификации при интеграции с Creatio приведены в таблице 1.
Табл. 1. — Сравнение видов аутентификации внешних запросов
Вид аутентификации | Преимущества | Недостатки | Использование |
---|---|---|---|
Anonymous |
Наилучшая производительность. Не требует управления учетными записями. |
Не идентифицирует индивидуальных пользователей. | Доступ к публичным ресурсам Creatio — страница логина, логотип, некоторые веб-сервисы. |
Basic |
Широкое распространение. Работает с прокси-серверами. Идентифицирует индивидуальных пользователей. |
Небезопасен без SSL/TLS. | Только доступ к сервису EntityDataService.svc (OData). |
Forms (Cookies) |
Дополнительные атрибуты учетных данных. Идентифицирует индивидуальных пользователей. |
Небезопасен без SSL/TLS | Большинство ресурсов и веб-сервисов Creatio |
Подробнее каждый из видов аутентификации рассмотрен ниже.
Анонимная аутентификация
Анонимная аутентификация предоставляет пользователю доступ ко всем публичным частям веб-приложения без подтверждения учетных данных. Технически аутентификация не выполняется, поскольку пользователю не нужно предоставлять ни имя пользователя, ни пароль. Вместо этого IIS предоставляет Windows предварительно сохраненные учетные данные для специального пользователя.
Анонимная аутентификация выполняется на уровне IIS и включена по умолчанию. При ее использовании IIS не требует никаких других схем аутентификации при условии предоставления соответствующих NTFS-прав для ресурса.
Преимущества
- Предоставляет наилучшую производительность.
- Не требует управления учетными записями пользователей.
Недостатки
- Не идентифицирует пользователей на индивидуальной основе.
Использование
В Creatio используется для доступа к ресурсам, которые должны быть предоставлены пользователю без аутентификации. Например, страница логина, логотип сайта, некоторые веб-сервисы (например, AuthService.svc, UserService.svc и др.).
Basic-аутентификация
Базовая аутентификация является частью спецификации HTTP. Это стандартный способ аутентификации с помощью HTTP-заголовков. Учетные данные пользователя (имя пользователя и пароль) добавляются в заголовок запроса к сервису в кодировке Base64. Базовая аутентификация также выполняется на уровне IIS.
Basic-аутентификация является небезопасным способом аутентификации, так как данные передаются практически в открытом виде. Поэтому использовать этот способ можно только при взаимодействии с системой по протоколу SSL (HTTPS).
Для обеспечения безопасности при передаче учетных данных рекомендуется выполнять аутентификацию внешних запросов к Creatio посредством AuthService.svc.
Если в приложении, которое интегрируется с Creatio, нужно использовать Basic-аутентификацию, то необходимо отключить защиту от CSRF-атак.
Преимущества
- Широко распространенный вид аутентификации, поскольку является частью спецификации HTTP 1.0.
- Может выполнять аутентификацию через прокси-серверы.
- Идентифицирует пользователей на индивидуальной основе.
Недостатки
- Небезопасен без использования SSL/TLS.
Использование
С помощью Basic-аутентификации можно выполнить аутентификацию пользователей только в сервисе EntityDataService.svc, который предоставляет возможность интеграции с Creatio по протоколу OData. Для всех остальных внешних запросов рекомендуется использовать сервис AuthService.svc и соответствующие Cookies.
Forms-аутентификация (Cookies)
ASP.NET реализует дополнительные виды аутентификации, которые выполняются только после выполнения аутентификации на уровне IIS (как правило, анонимной).
Один из дополнительных видов аутентификации, реализованных в ASP.NET— это Forms-аутентификация (также известная как Cookie-аутентификация).
Провайдер Forms-аутентификации предоставляет возможность получать учетные данные, отправляемые POST-запросом (например, используя HTML-форму или AJAX). Пользователь предоставляет имя пользователя и пароль для аутентификации непосредственно веб-приложению. После успешной аутентификации приложение предоставляет пользователю специальные cookies, которые пользователь должен добавить в последующие запросы. Если запрос к защищенному ресурсу не содержит cookies, то приложение перенаправляет пользователя к странице логина. Подробно процесс прохождения Forms-аутентификации рассмотрен здесь.
Для Forms-аутентификации в Creatio предназначен веб-сервис AuthService.svc.
Преимущества
- Forms-аутентификация позволяет использовать кроме логина и пароля другие атрибуты учетных данных, например, email-адрес.
- Идентифицирует пользователей на индивидуальной основе.
Недостатки
- Может быть предметом атак по времени жизни cookies, если не используется SSL/TLS.
Использование
Используется для доступа к большинству страниц, ресурсов и сервисов Creatio.
Начиная с версии 7.10 в приложении реализована защита от CSRF-атак. В связи с этим необходимо внести дополнительные изменения в процесс интеграции с Creatio c использованием DataService или OData (см. "Защита от CSRF-атак при интеграции c Creatio").