Microsoft Graph API OrganizationFromTenantGuidNotНайдено с использованием MSAL - PullRequest
0 голосов
/ 01 декабря 2018

В приложении AAD регистрация имеет неявный поток предоставления прав на true;Мы делегировали разрешения для User.Read и User.Read.All.

private static getContext(): Msal.UserAgentApplication {
    if (AuthenticationService.Context) return AuthenticationService.Context;
    const logger = new Msal.Logger((_logLevel, message, _piiEnabled) => {
        console.log(message);
    }, { level: Msal.LogLevel.Verbose, correlationId: "12345" });

    AuthenticationService.Context = new Msal.UserAgentApplication(
        Environment().authentication.clientId,
        AuthenticationService.getAuthority(),
        (errorDesc, token, error, _tokenType) => {
            if (token) {
                AuthenticationService.isAuthenticated = true;
                AuthenticationService.accessToken = token;
            } else {
                const localizedError: string = LocalizationService.localize(error);
                alert(localizedError !== error ? localizedError : errorDesc);
            }
        },
        {
            logger: logger,
            storeAuthStateInCookie: true,
            state: "12345",
            cacheLocation: "localStorage" // enable this for IE, as sessionStorage does not work for localhost.
        });
    if (AuthenticationService.Context.getUser()) {
        AuthenticationService.isAuthenticated = true;
    }

    return AuthenticationService.Context;
}

У нас есть метод входа в систему:

public static login(): void {
    const context: Msal.UserAgentApplication = AuthenticationService.getContext();
    if (context.loginInProgress()) return;
    AuthenticationService.CurrentUser = null;
    context.loginRedirect(AuthenticationService.SCOPES);
}

И у нас есть метод для получения токена для графа:

public static async getGraphToken(): Promise<string | null> {
    const authContext: Msal.UserAgentApplication = AuthenticationService.getContext();
    const cachedUser: Msal.User = authContext.getUser();
    if (!cachedUser) {
        return null;
    }
    return authContext.acquireTokenSilent(AuthenticationService.SCOPES);
}

Когда я использую токен графика, чтобы получить фотографию пользователя, у меня есть:

{
    "error": {
        "code": "OrganizationFromTenantGuidNotFound",
        "message": "The tenant for tenant guid '68cc0dcb-5873-4ea0-a498-fe57e9b51827' does not exist.",
        "innerError": {
            "request-id": "b402e405-342a-4002-a880-84f30413cbf7",
            "date": "2018-11-30T23:39:23"
         }
     }
}

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

У меня была такая же ошибка при использовании tenantId из Azure AD.

Я исправил это после изменения tenantId на "потребители" ("общие", "организации")

0 голосов
/ 09 декабря 2018

У меня была та же проблема, и после 4 часов проб и ошибок я решил эту проблему.

Мой сценарий был немного другим, но, возможно, он применим к вашему делу.

Я былпопытка прочитать электронные письма пользователя (/ users / userId / messages), которые завершились с той же ошибкой.Попытка получить информацию о пользователе сработала, но попытка получить сообщения не удалась, что привело меня к осознанию того, что, хотя пользователи существовали в моей AD, фактическая AD учетной записи Exchange была другой ... Как только я переместил регистрацию приложениядо правильной AD все работало отлично ...

Надеюсь, что поможет ...

...