2017-02-17 10 views
1

Ich verwende Graph API, um Benutzer von Azure AD zu importieren. In meinem Active Directory konfiguriere ich die Anwendung nach dieser link.Azure AD Import mit Graph API funktioniert für beliebige Anwendungen

In meinem Code erzeuge ich einen AccessStoken und übergeben Sie diesen Zugriffstoken, um Benutzerliste zu erhalten.

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

Wenn ich hinzufügen, mehrere Anwendungen es für einige Arbeiten gibt diesen Fehler für Ruhe

{ "odata.error": { "Code": "Authorization_RequestDenied", "message": { "lang": "en", "Wert": "Unzureichende Berechtigungen, um den Vorgang abzuschließen." }}}

Antwort

0

Sobald Sie auf „Berechtigungen erteilen“, um die Wechselzeit (könnte auch mehr als 10 Minuten) angewendet werden, können Sie warten, für diese Menge an Zeit und versuchen Sie es erneut benötigt - das tut Problem existiert noch?

Verwandte Themen