Я развернул веб-API в службе приложений Azure и защитил его с помощью проверки подлинности активного каталога. Мне нужно вызвать этот веб-API при изменении поля на моем портале, то есть портала CRM. (Мой портал CRM также позволяет входить в систему только пользователям, прошедшим проверку подлинности Active Directory.) Как я думал, я сделаю вызов Ajax при изменении поля, чтобы получить ответ. Однако я не могу получить сам токен. Я использую adal.min.js в качестве библиотеки для поддержки аутентификации в активном каталоге. Я легко могу получить ответ при таком вызове веб-API без аутентификации.
Что мне делать, чтобы получить ответ от API-интерфейса с аутентификацией AD от вызова JQuery AJAX?


I have deployed a Web API to Azure App service and I secured it with active directory authentication.
AFAIK, вы можете использовать пакет NuGet промежуточного программного обеспечения OWIN Microsoft.Owin.Security.ActiveDirectory для аутентификации AAD, подробности вы можете следить за здесь. Более того, вы также можете использовать встроенный аутентификация и авторизация, предоставляемый службой приложений Azure для Настройте приложение службы приложений для использования входа в Azure Active Directory..
What should I be doing to get the response from an AD authenticated API from JQuery AJAX call?
После успешного входа в систему через ADAL.js вы можете использовать следующий код для получения токена и использовать его для доступа к конечной точке веб-API.
authContext.acquireToken(authContext.config.clientId, function (error, token) {
// Handle ADAL Error
if (error || !token) {
printErrorMessage('ADAL Error Occurred: ' + error);
return;
}
// Get TodoList Data
$.ajax({
type: "GET",
url: "/api/TodoList",
headers: {
'Authorization': 'Bearer ' + token,
},
}).done(function (data) {
//TODO:
});
});
Подробный пример кода, вы можете следовать Приступая к работе с Azure AD Javascript.
Вы можете просто создать одно приложение AAD и использовать его во внешнем интерфейсе и в серверной части веб-API. Кроме того, вы можете создать каждое приложение AAD для своего внешнего интерфейса и серверной части веб-API, для этого подхода вам необходимо настроить свойство enpoints для сопоставления ресурсов для создания экземпляра ADAL AuthenticationContext, подробности вы можете следовать Библиотека аутентификации Active Directory (ADAL) для JavaScript.
Более того, для встроенной аутентификации / авторизации службы приложений вы также можете использовать Как использовать клиентскую библиотеку JavaScript для мобильных приложений Azure для аутентификации пользователей и получения mobileServiceAuthenticationToken, а затем применять его к заголовку X-ZUMO-AUTH при доступе к конечным точкам вашего веб-API.