2017-02-17 9 views
1

グラフAPIを使用してAzure ADからユーザーをインポートしています。私のアクティブディレクトリでは、このlinkに続いてアプリケーションを設定しています。グラフAPIを使用したAzure ADインポートはランダムなアプリケーションで動作します

私のコードでは、私は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"、 "値": "操作を完了するための権限がありません。 }}}

答えて

0

あなたは変更が適用される時間を(10分よりも多くの可能性)必要があり、あなたはその時間を待つことができ、「グラント権限」ボタンをクリックして、再度お試したら - ん問題はまだ存在する?

関連する問題