Позвоните в 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 приложения в регистрации приложения. Я надеюсь, что есть способ обойти это, потому что я считаю, что я читал в прошлом, что это не очень хорошая практика (хотя я больше не могу найти источник). Если есть другой способ справиться с этим, я вернусь и обновлю свой ответ.

(Не ответ) Спасибо, Брайан, твои комментарии мне очень помогают. Я не мог добавить больше подробностей в разделе комментариев. Я добавляю это как ответ. Вот ошибка, с которой я столкнулся. При входе в систему не открывалось окно аутентификации лазурного типа. Пожалуйста, подскажите, что делать дальше.

Другие вопросы по тегам