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