Я пытаюсь подключиться к службам аналитики Azure с помощью ADOMD, передавая токен доступа, полученный через OAuth, но независимо от того, какие разрешения я установил и какую комбинацию учетных данных / токенов я пробую, он не будет аутентифицироваться.Я хочу убедиться, что я правильно понимаю аутентификацию Azure AS.
Ниже описан мой процесс аутентификации:
- Выполните
GET
запрос к https://login.microsoftonline.com/[tenant]/oauth2/authorize
для получения токена авторизациина фронтенде.Идентификатор приложения отправлен.Пользователю предлагается войти в систему. Пользователь вводит хост источника данных в другое текстовое поле. - Клиент делает
POST
запрос на выполнение бэкэнда с токеном авторизации и хостом. - Сервер делает
POST
запрос к https://login.microsoftonline.com/[tenant]/oauth2/token
для получения токена доступа.Он отправляет идентификатор приложения, секрет приложения, тип предоставления, код и URI перенаправления.Токен доступа и токен обновления получены из API. - Затем сервер пытается подключиться к ADOMD.NET, используя следующую строку подключения:
Provider=MSOLAP;Data Source={host};Initial Catalog=;User ID=;Password={access_token};Persist Security Info=True;Impersonation Level=Impersonate
. - ADOMD.NET выдает ошибку, которая простоговорит "аутентификация не удалась".
Я уже добавил участника службы приложений и пользователя, с которым пытаюсь войти в роль администратора, используя SSMS.
Соединяетсяидеально, если я жестко закодирую строку подключения, установив имя пользователя app:{app-id}
и пароль в качестве секретного ключа клиента.Тем не менее, я хочу аутентификацию пользователя.
Не понимаю ли я правильно концепции аутентификации пользователя с использованием ADOMD?Или я что-то не так делаю в этом процессе?