Невозможно получить токен Azure с помощью Adal4j Api - PullRequest
0 голосов
/ 11 сентября 2018

я пытаюсь прочитать профиль пользователя / изображение с графического изображения Microsoft и использую adal4j-1.5.0.jar для генерации лазурного токена, чтобы на основе токена я мог позвонить в графический API / Microsoft delve.

У меня проблема с кодом ниже. было просто перейти к окончательному блоку после строки ниже без генерации токена или какого-либо исключения. "Будущее будущее = context.acquireToken (resourceUri, учетные данные, ноль);"

String clientId = "clientid";
String clientSecret = "cleintsecret";
String resourceUri = "https://graph.microsoft.com/v1.0/me";

String redirectUri = "http://localhost:9082/contextroot";

String authorityUri ="https://login.microsoftonline.com/{tenent id}/oauth2/authorize";


AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
    service = Executors.newFixedThreadPool(1);
    context = new AuthenticationContext(authorityUri, false, service);
    ClientCredential credential = new ClientCredential(clientId,clientSecret);

    Future<AuthenticationResult> future = context.acquireToken(resourceUri, credential, null);



    result = future.get();
}
finally {
    service.shutdown();
}

1 Ответ

0 голосов
/ 12 сентября 2018

Кажется, что некоторые зависимости adal4j-1.5.0 также не загружаются, пожалуйста, проверьте файлы пакета jar из вашего проекта. На основании моего теста, если я использую adal4j 1.5.0. Я обнаружил, что некоторые зависимости adal4j-1.5.0 отсутствуют в проекте. Тогда я не могу получить токен доступа.

enter image description here

Но если я использую adal4j 1.0.0 , он у меня работает правильно. Если версия 1.0.0 является приемлемой, вы можете использовать это в качестве обходного пути или добавить зависимости вручную.

enter image description here

Тестовый демонстрационный код:

 private static final String APP_ID = "clientId";
 private static final String APP_SECRET = "secret key";
 private static final String TENATID = "xxxxx";
 public static void main(String[] args) throws Exception {
 String authority = "https://login.microsoftonline.com/"+TENATID; 
 String resourceUrl = "https://graph.microsoft.com"; //Microsoft graph. AD graph: https://graph.windows.net
 ExecutorService service = Executors.newFixedThreadPool(1);
 AuthenticationContext context = new AuthenticationContext(authority, true, service);
        // Acquire Token
 Future<AuthenticationResult> result = context.acquireToken(
                resourceUrl,
                new ClientCredential(APP_ID, APP_SECRET),
                null
        );
        String token = result.get().getAccessToken();
        System.out.println(token);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...