#java #msal
#Ява #msal
Вопрос:
Я пытаюсь сгенерировать от имени токен из токена доступа, сгенерированного из DeviceCode/UserCode. Используя следующий код:
UserAssertion userAssertion = new UserAssertion(clientAccessToken); IClientSecret clientSecret = ClientCredentialFactory.createFromSecret(lt;clientSecretValuegt;); ConfidentialClientApplication clientApplication = ConfidentialClientApplication.builder( lt;clientIdValuegt;, clientSecret) .authority(authority) .build(); String scope = "https://lt;sharepoint-online-host-namegt;/.default"; OnBehalfOfParameters params = OnBehalfOfParameters.builder(Collections.singleton(scope), userAssertion).build(); CompletableFuturelt;IAuthenticationResultgt; future = clientApplication.acquireToken(params); IAuthenticationResult authResult = future.get();
И это дает мне следующую ошибку: java.util.параллельный.Исключение ExecutionException: com.microsoft.aad.msal4j.msalinteractionrequired Исключение: AADSTS50013: Утверждение не удалось проверить подпись. [Причина — Предоставленное значение подписи не соответствует ожидаемому значению подписи., Отпечаток ключа, используемого клиентом: ‘977B10FB9D1C087E3105564B1D31B09D247BEBCD’, Найден ключ ‘Начало=02/07/2021 17:00:39, Конец=02/06/2026 17:00:39’]. Идентификатор трассировки: f98ee11b-ac67-4cd1-a3a9-ec7399f37001 Идентификатор корреляции: 35f97212-355e-44c2-ab4d-7c1726be4791 Метка времени: 2021-12-01 13:19:05Z
Примечание: Те же значения параметров работают для ADAL4J, и я пытаюсь перейти на MSAL.