2017-02-17 3 views
1

J'utilise l'API Graph pour importer des utilisateurs à partir d'Azure AD. Dans mon répertoire actif, je configure l'application en suivant cette link.Azure AD Import à l'aide de l'API Graph pour des applications aléatoires

Dans mon code, je génère un accesstoken et transmets ce jeton d'accès pour obtenir la liste des utilisateurs.

//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); 

Si j'ajouter plusieurs applications, il travaille pour quelques donne cette erreur pour le repos

{ "odata.error": { "code": "Authorization_RequestDenied", "message": { "lang": "en", "value": "Privilèges insuffisants pour terminer l'opération." }}}

Répondre

0

Une fois que vous cliquez sur le bouton « Octroyer des autorisations » le changement a besoin de temps (peut-être bien plus de 10 minutes) à appliquer, pouvez-vous attendre ce laps de temps, puis essayez à nouveau - la mise à problème existe toujours?