От имени потока возвращает AADSTS50013: утверждение не удалось проверить подпись

#.net #oauth-2.0 #azure-active-directory #msal

#.net #oauth-2.0 #azure-active-directory #msal

Вопрос:

Я использую этот пакет для аутентификации пользователя из мобильного приложения react native. После получения токена доступа я отправляю его на свой .net WebAPI, который пытается вызвать ConfidentialClientApplication.AcquireTokenOnBehalfOf. Как мобильное приложение react native, так и webapi используют один и тот же идентификатор клиента из регистрации и областей приложений Azure.

     public async Task<AuthenticationResult> AquireTokenOnBehalfOf(IEnumerable<string> scopes, string jwt)
    {
        var userAssertion = new UserAssertion(jwt);

        var res = await ConfidentialClientApplication.AcquireTokenOnBehalfOf(scopes, userAssertion).ExecuteAsync();

        return res;
    }
 

Он возвращает приведенную ниже ошибку:

Майкрософт.Идентификация.Client.MsalUiRequiredException: ‘AADSTS50013: утверждение не удалось проверить подпись. [Причина — предоставленное значение подписи не соответствует ожидаемому значению подписи., Отпечаток ключа, используемого клиентом: ‘9CEA37643ACE0D710AD63296857B251D1FCA5C48’, найден ключ ‘Начало = 21.12.2020 20:50:17, конец = 20.12.2025 20:50:17′] Идентификатор трассировки: a03a5cf8-8d05- 4bd2-a47a-Идентификатор корреляции ce3a1ce70e00: 8b42b1c2-21bc-4d63-9b90-bafb81f83d32 Временная метка: 2021-02-23 14:13:26Z’

Проблема с Github

У меня есть настройка приложения Azure AD в соответствии с этим. Однако я не использую промежуточное программное обеспечение JWT bearer, а скорее получаю токен доступа от клиента и с его помощью создаю UserAssertion и вызываю ConfidentialClientApplication.AcquireTokenOnBehalfOf

Я что-то неправильно настраиваю?

Спасибо

Комментарии:

1. Как вы приобрели первый токен доступа? Можете ли вы это показать?

Ответ №1:

Я получил эту работу, внимательно следуя приведенному здесь примеру. Я не настроил то, что требовалось в разделе «Предоставить API» при регистрации приложения, и впоследствии не добавил новые разрешения api.