2017-02-17 12 views
1

Я использую Graph API для импорта пользователей из Azure AD. В моем активном каталоге я настраиваю приложение после этого link.Azure AD Импорт с использованием Graph API работает для случайных приложений

В моем коде я генерирую accesstoken и передаю этот токен доступа, чтобы получить список пользователей.

//get token 

      String secretKey = EncryptionUtils.decryptAES(encodedSecretKey); 
      secretKey = URLEncoder.encode(secretKey); 
      String urltoConnect = loginUrlPrefix+tenantId+loginUrlSufix; 
      String payLoad = "resource=https%3A%2F%2Fmanagement.core.windows.net%2F&client_id="+clientId+"&grant_type=client_credentials&client_secret=" + secretKey; 
      System.out.println(payLoad); 
      URL url = new URL(urltoConnect); 
      URLConnection connection = null; 
      connection = url.openConnection(); 
      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
      connection.setDoOutput(true); 
      java.io.OutputStreamWriter wr = new java.io.OutputStreamWriter(connection.getOutputStream()); 
      wr.write(payLoad); 
      wr.flush(); 
      BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); 
      String content; 
      String html = ""; 
      while ((content = br.readLine()) != null) { 
       if (!content.equals("") && content.length() != 0) 
        html += content.trim(); 
      } 
      return html; 


//get user list 

      URL url = new URL(String.format("https://graph.windows.net/%s/users?api-version=2013-04-05", tenant, 
        accessToken)); 

      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      // Set the appropriate header fields in the request header. 
      conn.setRequestProperty("api-version", "2013-04-05"); 
      conn.setRequestProperty("Authorization","Bearer "+ accessToken); 
      conn.setRequestProperty("Accept", "application/json;odata=minimalmetadata"); 
      String goodRespStr = HttpClientHelper.getResponseStringFromConn(conn, true); 
      int responseCode = conn.getResponseCode(); 
      org.json.JSONObject response = HttpClientHelper.processGoodRespStr(responseCode, goodRespStr); 
      org.json.JSONArray users; 

      users = JSONHelper.fetchDirectoryObjectJSONArray(response); 

Если добавить несколько приложений, это работает для нескольких дает эту ошибку для отдыха

{ "odata.error": { "код": "Authorization_RequestDenied", "сообщение": { «lang»: «en», «value»: «Недостаточно привилегий для завершения операции». }}}

ответ

0

После нажатия кнопки «Предоставление разрешений» кнопка изменения требуется время (может быть также более 10 минут), чтобы применить, вы можете ждать, что количество времени, а затем попробуйте еще раз - делает вопрос все еще существует?