Вызов веб-API с проверкой подлинности Active Directory с использованием Ajax
Я развернул веб-API в службе приложений Azure и защитил его активной аутентификацией каталогов. Мне нужно вызвать это Web API On-Change поля в моем портале, т.е. CRM Portal. (Мой портал CRM также позволяет входить в систему только пользователям, прошедшим проверку подлинности в Active Directory.) Я подумал, что я сделаю Ajax-вызов On-Change для получения ответа. Однако я не могу получить сам токен. Я использую adal.min.js в качестве библиотеки для поддержки аутентификации в активном каталоге. Я легко могу получить ответ при вызове веб-API без аутентификации таким образом.
Что я должен сделать, чтобы получить ответ от аутентифицированного API AD от вызова JQuery AJAX?
1 ответ
Я развернул веб-API в службе приложений Azure и защитил его активной аутентификацией каталогов.
AFAIK, вы могли бы использовать промежуточный пакет NuGet OWIN https://www.nuget.org/packages/Microsoft.Owin.Security.ActiveDirectory для аутентификации AAD, подробности которого вы можете найти здесь. Кроме того, вы также можете использовать встроенную проверку подлинности и авторизацию, предоставляемую службой приложений Azure, чтобы настроить приложение службы приложений для использования входа в Azure Active Directory.
Что я должен сделать, чтобы получить ответ от аутентифицированного API AD от вызова JQuery AJAX?
После успешного входа в систему через 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:
});
});
Подробный пример кода, вы можете следить за началом работы с Javascript Azure AD.
Вы можете просто создать одно приложение AAD и использовать его в своем интерфейсе и бэкэнде Web API. Кроме того, вы можете создать каждое приложение AAD для своего интерфейса и серверной части Web API, для этого подхода вам необходимо настроить enpoints
свойство для сопоставления ресурсов для создания экземпляра ADAL AuthenticationContext, подробности которого вы можете использовать в Библиотеке аутентификации Active Directory (ADAL) для JavaScript.
Более того, для встроенной аутентификации / авторизации службы приложений вы также можете использовать Как использовать клиентскую библиотеку JavaScript для мобильных приложений Azure для аутентификации пользователей и получения mobileServiceAuthenticationToken
затем примените его к X-ZUMO-AUTH
заголовок при доступе к вашим конечным точкам Web API.