Позвоните в Azure AD, защищенный WebApi из Excel VSTO WorkBook
Я пытаюсь вызвать защищенный веб-интерфейс Azure AD из Excel VSTO WorkBook. Это то же самое webApi, которое мы используем для наших приложений SPA, но теперь хотим использовать тот же Api непосредственно из Excel.
Я долго искал и не могу найти каких-либо указаний о том, как это должно работать.
Кто-нибудь знает, возможно ли это и если да, то как это должно быть достигнуто?
2 ответа
Я столкнулся с этим вчера и получил это работает, спасибо этой теме.
Похоже, что этот сценарий некоторое время не поддерживали, но сейчас он определенно работает. Вот что нужно сделать:
Служба, доступ к которой осуществляется из Excel, должна в какой-то момент отправить обратно ответ HTTP 401, чтобы клиент (Excel) знал, что требуется аутентификация (это уже должно происходить). Excel затем отправит еще один запрос в сервис с заголовком Authorization: Bearer
, Важно отметить, что ничего не приходит после Bearer
потому что после завершения процесса проверки подлинности Excel начнет отправлять запросы с аналогичным заголовком, но после слова появится больше информации Bearer
и эти запросы вы должны разрешить продолжить через конвейер запросов.
Чтобы поток аутентификации работал правильно, ответ службы на вышеупомянутый запрос должен содержать следующее значение заголовка:
WWW-Authenticate: Bearer authorization_uri="Your auth URI here"
Цитаты ДОЛЖНЫ быть включены в ответ. Поскольку вы используете Azure AD, ваш URI будет выглядеть примерно так:
https://login.microsoftonline.com/{tenantId}/oauth2/authorize
замещать {tenantId}
с вашим номером арендатора.
Единственное предостережение, которое я нашел для того, чтобы это работало, это то, что URL-адрес домена службы (например, http://my.domain.com
) должен соответствовать идентификатору Uri приложения в регистрации приложения. Я надеюсь, что есть способ обойти это, потому что я считаю, что я читал в прошлом, что это не очень хорошая практика (хотя я больше не могу найти источник). Если есть другой способ справиться с этим, я вернусь и обновлю свой ответ.
(Не ответ) Спасибо, Брайан, твои комментарии мне очень помогают. Я не мог добавить больше подробностей в разделе комментариев. Я добавляю это как ответ. Вот ошибка, с которой я столкнулся. При входе в систему не открывалось окно аутентификации лазурного типа. Пожалуйста, подскажите, что делать дальше.