Угловая 2 Проверка подлинности Azure Active Directory с помощью ADAL

Я пытаюсь проверить подлинность клиентского приложения Angular 2 (которое также использует Ionic framework) в Azure Active Directory, а затем поговорить с веб-API .NET.

Однако я получаю следующую ошибку после входа в систему:

Login error: AADSTS65001: The user or administrator has not consented to use the application with ID '1cdd3510-c720-44b8-9531-b880f51aa3dd'. Send an interactive authorization request for this user and resource.

Когда я вошел в систему в первый раз, меня попросили разрешения, которое я принял. Я могу видеть большую часть приложения, за исключением частей, зависящих от API. Проблема может быть решена путем удаления атрибута [Authorize] на контроллерах API, но это оставит его полностью открытым.

Клиентское приложение настраивается на портале Azure следующим образом:

Разрешения клиентского приложения

Я включил все разрешения в последней попытке заставить его работать, я также включил доступ к приложению API.

Мой сервис auth настроен следующим образом:

private version: string = "-dev";
private config: any = { // web browser
    tenant: "***.onmicrosoft.com",
    clientId: "********-****-****-****-************", // Client ID
    postLogoutRedirectUri: window.location.origin,
    endpoints: {
        ["https://***" + this.version + ".azurewebsites.net/api"]: "https://***.onmicrosoft.com/api"
    },
    cacheLocation: "localStorage"
};
private base: string = "https://***.onmicrosoft.com";
private appId: string = this.base + "/interface";
private apiId: string = this.base + "/api";
private appUri: string = "https://***" + this.version + ".azurewebsites.net"
private apiUri: string = this.appUri + "/api";
private authority = "https://login.windows.net/***.onmicrosoft.com"; // Authority from azure
private nativeClientId = "********-****-****-****-************";     // Ionic app ID
private redirectUri = "http://***app";                               // Ionic app URI
private currentUser: any;                                            // Object representing the current user
private authContext: any;                                            // Auth context from adal.js

И часть службы, которая бросает ошибку выше:

this.authContext.acquireToken(endpoint, (error, token) => {
    if (error || !token) {
        console.log("Login error: " + error);
        return;
    } else {
        resolve(token);
    }
});

Этот вопрос продолжается довольно долго, поэтому любая помощь была бы очень признательна.

1 ответ