Чтобы подключить клиентский интерфейс к моему кубу, я использую msmdpump.dll, который позволяет любому подключаться к ssas через http.
Но у меня есть проблема безопасности, потому что доступ к dll в IIS является анонимным. Таким образом, любой, кто найдет URL-адрес библиотеки DLL, может подключиться к моему кубу, потому что не требуется логин / пароль. Мы используем это решение, поскольку локальное имя пользователя и домены передаются в IIS при подключении пользователя к веб-сайту.
Архитектура такова:
- Один веб-сайт на сервере IIS (имя домена - AA)
- Куб на SSAS на втором сервере (имя Домена - AA, то есть тот же домен, что и у сервера IIS)
- Разрешить пользователям входить в Active Directory (в домене AA)
- xxx пользователи подключаются к веб-сайту (локальный пользователь и локальный домен на каждом компьютере)
Чтобы избежать анонимного режима, я хотел бы сделать что-то вроде этого:
- Пользователь заходит на сайт
- Сайт запрашивает учетные данные у пользователя
- Пользователь вводит свое имя пользователя и пароль из Active Directory в любой форме веб-сайта и предоставляет информацию
- IIS распознает его и идентифицирует пользователя как пользователя домена
Это пример моего описания:
- У меня есть аккаунт в домене AD "AA"
- Учетная запись AA \ toto и мой пароль 1234
- Этому пользователю разрешено подключаться к ssas
- Я из дома (без домена AA) и захожу на сайт куба
- Появляется форма, запрашивающая мой логин и пароль
- Я поставил AA \ toto и 1234
- IIS позволяет мне перейти на другую страницу с учетными данными моей учетной записи AD
Кто-нибудь знает, возможно ли это?
Если кто-нибудь знает, какой режим аутентификации Excel использует в ODC-файле для подключения SSAS, возможно, это будет хорошей отправной точкой.
РЕДАКТИРОВАТЬ:
Я пытался поставить «Базовую аутентификацию» в IIS на сайте DLL. Если я поставлю учетную запись, которой нет в домене, доступ будет запрещен в Excel. Но если я поставлю хороший аккаунт, Excel успешно подключится к ssas. Я думаю, что я близок к решению. Я постараюсь сделать страницу входа и посмотреть, работает ли соединение.