2016-08-03 85 views
0

我正試圖通過遵循此azure tutorial來開發具有SSO的Java Web應用程序。我在Azure中創建了一個帳戶並創建了一個AD。在Tomcat中開發和部署代碼。當我嘗試訪問該頁面時,出現以下錯誤SSO中的圖形API在Azure AD中不起作用

Exception - java.io.IOException: Server returned HTTP response code: 403 for URL: https://graph.windows.net/ppceses.onmicrosoft.com/users?api-version=2013-04-05 

我沒有找到足夠的此錯誤答案。我將api版本更改爲1.6。即使這樣也行不通。

更多的分析:

故障排除之後,我發現登錄的用戶信息被提取,並提供在會話對象。它嘗試讀取響應並將其轉換爲String對象時出錯。以下是調用方法出錯的地方。

HttpClientHelper.getResponseStringFromConn(conn, true); 

實際的方法來寫響應轉換成字符串:

public static String getResponseStringFromConn(HttpURLConnection conn, boolean isSuccess) throws IOException { 

    BufferedReader reader = null; 
    if (isSuccess) { 
     reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    } else { 
     reader = new BufferedReader(new InputStreamReader(conn.getErrorStream())); 
    } 
    StringBuffer stringBuffer = new StringBuffer(); 
    String line = ""; 
    while ((line = reader.readLine()) != null) { 
     stringBuffer.append(line); 
    } 

    return stringBuffer.toString(); 
} 

實際的問題是在圖形API,我們試圖讀取該字符串格式的響應。

+0

你解決了這個問題嗎? – Paul

+0

@Paul,因爲它的優先級低,我轉移到其他項目上。要回答你的問題,不,我會在有機會的時候處理這​​件事。你有解決方案嗎? – Anand

回答

1

@Anand根據Microsoft Graph error responses and resource types,響應碼403意味着Forbidden下面。

拒絕訪問被請求的資源。用戶可能沒有足夠的權限。

請移動到Azure經典門戶上的AAD域中註冊的應用程序的CONFIGURE選項卡,然後檢查是否啓用了足夠的權限,請參見下圖。

enter image description here

+0

我遵照你的指示。我選擇了除第一個之外的所有選項。即使這樣也行不通。我仍然收到同樣的錯誤。我是否需要更改api版本?我正在使用此網址 - https://graph.windows.net/ppceses.onmicrosoft.com/users?api-version=2013-04-05。請告知 – Anand

+0

同樣的問題,我已啓用所有選項的權限,但我仍然得到403錯誤。 –

0

我得到了同樣的錯誤,一直在努力用它幾天。我注意到,即使我檢查了Windows Azure Active Directory的所有權限,我仍然得到了403.因此,我刪除了應用程序註冊中的應用程序,並從頭開始創建它,生成新的應用程序密鑰和已讀的回覆URL。在所需的權限/ Windows Azure中的Active Directory檢查:

  • 登錄和讀取用戶配置文件
  • 訪問目錄作爲登錄用戶

我現在可以叫me/memberOf成功。

希望它有幫助。

相關問題