В настоящее время я пытаюсь использовать библиотеку MSAL4J, чтобы получить AccessToken для ConfidentialClientApplication. Я уже получил токен, но когда я передаю его в Exchange, я получаю сообщение об ошибке «Токен не содержит разрешений, или разрешения не могут быть поняты». Я проверил токен с помощью jwt.io и вижу, что нет поля «scp», что означает, что, вероятно, нет областей, но я не знаю почему.
Код Java для доступа к токену :
String AUTHORITY = "https://login.microsoftonline.com/common";
IClientSecret createFromSecret = ClientCredentialFactory.createFromSecret(clientSecret);
Builder builder = ConfidentialClientApplication.builder(clientId, createFromSecret).authority(aUTHORITY).validateAuthority(true);
ConfidentialClientApplication application = builder.build();
HashSet<String> scopes = new HashSet<String>();
scopes.add("https://outlook.office.com/.default");
ClientCredentialParameters clientCredentialParameters = ClientCredentialParameters.builder(scopes).build();
CompletableFuture<IAuthenticationResult> acquireTokenFuture = application.acquireToken(clientCredentialParameters);
IAuthenticationResult iAuthenticationResult = acquireTokenFuture.get(30, TimeUnit.SECONDS);
iAuthenticationResult = acquireTokenFuture.get(30, TimeUnit.SECONDS);
Я добавил необходимые разрешения API и утвердил их с учетной записью администратора:
Есть идеи, что здесь не так?