#.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’
У меня есть настройка приложения Azure AD в соответствии с этим. Однако я не использую промежуточное программное обеспечение JWT bearer, а скорее получаю токен доступа от клиента и с его помощью создаю UserAssertion и вызываю ConfidentialClientApplication.AcquireTokenOnBehalfOf
Я что-то неправильно настраиваю?
Спасибо
Комментарии:
1. Как вы приобрели первый токен доступа? Можете ли вы это показать?
Ответ №1:
Я получил эту работу, внимательно следуя приведенному здесь примеру. Я не настроил то, что требовалось в разделе «Предоставить API» при регистрации приложения, и впоследствии не добавил новые разрешения api.