Общие сведения о модулях безопасности
Модуль безопасности служб Службы Reporting Services позволяет проводить проверку подлинности и авторизацию пользователей и групп, то есть этот модуль позволяет пользователям входить на сервер отчетов и в соответствии с их удостоверениями выполнять различные задачи и операции. По умолчанию службы Службы Reporting Services используют модуль проверки подлинности Windows, который в свою очередь использует протоколы учетных записей Windows для проверки удостоверений пользователей, которые заявляют, что имеют учетные записи в системе. Службы Службы Reporting Services используют систему безопасности на основе ролей для авторизации пользователей. Модель безопасности служб Службы Reporting Services на основе ролей похожа на модели безопасности на основе ролей других технологий.
Поскольку модули безопасности основываются на открытом и дополняемом API-интерфейсе, в службах Службы Reporting Services можно создавать новые модули проверки подлинности и авторизации. Ниже проводится пример реализации типичного модуля безопасности, использующего проверку подлинности и авторизацию на основе форм:
Как показано на иллюстрации, проверка подлинности и авторизация происходит следующим образом.
Пользователь пытается получить доступ к диспетчеру отчетов при помощи URL-адреса, в результате чего он перенаправляется к форме, которая собирает учетные данные о пользователе для клиентского приложения.
Пользователь вносит учетные данные в форму.
Учетные данные пользователя передаются в веб-службу Reporting Services с помощью метода LogonUser.
Веб-служба вызывает предоставляемый пользователем модуль безопасности и проверяет, существуют ли имя пользователя и пароль в пользовательском центре безопасности.
После проверки подлинности веб-служба создает билет проверки подлинности (известный как cookie), управляет этим билетом и проверяет роль пользователя на домашней странице диспетчера отчетов.
Веб-служба возвращает cookie браузеру и отображает интерфейс соответствующего пользователя в диспетчере отчетов.
После проверки подлинности пользователя браузер отправляет запрос диспетчеру отчетов, вставляя файл cookie в заголовок HTTP. Эти запросы выполняются в ответ на действия пользователя внутри приложения диспетчера отчетов.
Файл cookie в заголовке HTTP передается веб-службе вместе с запрошенной пользователем операцией.
Файл cookie проверяется, и, если проверка проходит успешно, сервер отчетов возвращает дескриптор безопасности и другие сведения, связанные с запрашиваемой операцией, из базы данных сервера отчетов.
Если файл cookie проходит проверку, сервер отчетов вызывает модуль безопасности, чтобы проверить, имеет ли пользователь разрешение для выполнения определенной операции.
Если пользователь имеет такое разрешение, сервер отчетов выполняет запрошенную операцию и возвращает управление вызывавшему объекту.
После проверки подлинности пользователя во время доступа по URL-адресу к серверу отчетов используется тот же файл cookie. Файл cookie передается в заголовке HTTP.
Пользователь продолжает запрашивать операции на сервере отчетов до завершения сеанса.
Целесообразность реализации модуля безопасности
Рекомендуется использовать проверку подлинности Windows, если это возможно. Однако пользовательская проверка подлинности и авторизация для служб Службы Reporting Services может быть предпочтительнее в следующих двух случаях.
Имеется приложение для Интернета или корпоративной сети, которое не может использовать учетные записи Windows.
Имеются определяемые пользователем пользователи и роли, и необходимо предоставить подходящую схему авторизации в службах Службы Reporting Services.