Вызов веб-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.

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