Вызов служб отчетов SQL Server из PHP - проблема аутентификации - PullRequest
0 голосов
/ 27 января 2010

Нам нужно использовать службы отчетов SQL Server на веб-сайте с проверкой подлинности php и php на стороне сервера. На данный момент у нас есть два отдельных входа / аутентификации - php и SQL Server Reporting Services - один (который, я считаю, использует нечто похожее на аутентификацию ASP.NET). У нас должен быть только логин php, и нам также нужно, чтобы отчеты были безопасными (то есть отчеты не могут быть открыты анонимным пользователям).

Некоторые из наших отчетов меняются только в установленное время дня, поэтому мы можем генерировать pdf-файлы программно, сохранять их в базе данных или где-то еще, и php извлекает их, когда пользователь делает запрос. Это довольно просто.

Проблема возникает с одним отчетом, который постоянно меняется, и поэтому нам нужно было бы генерировать pdf на лету из базы данных всякий раз, когда пользователь делает запрос. Для этого потребуется, чтобы php вызывал службы отчетов напрямую (в настоящее время у нас есть ссылка на службы отчетов, встроенная в веб-страницу, пользователь нажимает на нее, а затем должен войти в систему для входа в систему вторичных служб отчетов / Windows-типа).

Чтобы обойти эту проблему, я думаю, что мы могли бы обернуть вызов служб отчетов в исполняемый файл и сделать так, чтобы php вызывал исполняемый файл, который затем выплевывает pdf, который php передает обратно пользователю. Мы можем даже обернуть службы отчетов в CGI, который доступен только с веб-сервера, на котором размещен php. Кто-нибудь пробовал что-то подобное раньше? Будет ли это работать? Требуется ли только проверка подлинности PHP и при этом безопасность ???

Службы отчетов могут быть либо 2005, либо 2008.

1 Ответ

0 голосов
/ 27 января 2010

У меня похожая ситуация, о которой я сейчас позабочусь, раздав второй пароль службы отчетов людям, которым он нужен. В моем случае мое веб-приложение проходит проверку подлинности на основе данных LDAP Novell, но, похоже, нет способа передать это в окно служб отчетов. Я еще не дошел до этого, но я подумал о том, чтобы создать направляющую или произвольную строку, нажав кнопку создания отчета, сохранить ее в таблице, добавить ее в запрос отчета (строку запроса или сообщение), а затем поставить условное выражение. в sproc, управляющем отчетом, так что если строка не существует в таблице, никакие данные не возвращаются. Строки могут быть удалены периодически. Вроде rube goldberg, но, может быть, проще, чем упомянутая вами исполняемая оболочка, и это лучшее, что я могу себе представить, если не пытаться создать свой собственный поставщик ldap для служб отчетов, и в этом случае человеку все равно придется сделать второй вход в систему.

...