簡體   English   中英

Azure AD Graph API-為getMemberGroups方法不斷返回403

[英]Azure AD Graph API - Constantly returning 403 for getMemberGroups method

我有已成功與Azure AD集成以便登錄的Java Spring MVC應用程序。

但是,當我要列出用戶組成員身份時,出現錯誤代碼403。從Azure AD Graph Explorer手動測試時,它的工作正常。

這是我正在處理的代碼:

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

    String json = "{\n" +
            "    \"securityEnabledOnly\" : true\n" +
            "}";

    byte[] postDataBytes = json.toString().getBytes("UTF-8");

    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
    conn.setRequestProperty("Connection", "keep-alive");
    conn.setRequestProperty("Content-Length", "36");
    conn.setRequestProperty("api-version", apiVersion);
    conn.setRequestProperty("Authorization", accessToken);
    conn.setRequestProperty("Accept", "application/json, text/plain, */*");
    conn.setDoOutput(true);
    conn.getOutputStream().write(postDataBytes);

中的Reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),“ UTF-8”));

在Microsoft示例中,我從Refresh Token獲得訪問令牌。 對於其他API方法(例如/ users /),該功能也可以正常工作。 我猜想在Azure中需要配置一些參數才能訪問組成員身份。 但是,當我使用同一用戶登錄時,它在Graph Explorer中運行良好。( https://graphexplorer.azurewebsites.net/ )。

是否有人擁有完整的工作示例,其中包含需要配置的所有步驟才能讀取用戶組成員身份。

謝謝,伊戈爾

請參考此文檔: 權限范圍| 圖形API概念

您可以找到如何選擇權限范圍,以提供應用程序所需的最低特權級別。 正如@juunas所說,對於委托范圍,授予該應用程序的實際訪問權限將是該范圍授予的訪問權限和已登錄用戶的特權的最小特權組合(交叉)。請嘗試授予User.Read。對app的全部和Group.Read.All權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM