2016-08-03 21 views
0

Ich versuche, eine Java-Webanwendung mit SSO zu entwickeln, indem ich diesem azure tutorial folge. Ich habe ein Konto in Azure erstellt und eine AD erstellt. Entwickelte und implementierte den Code in Tomcat. Wenn ich versuche, auf die Seite zuzugreifen, erhalte ich den folgenden Fehler:Grafik-API in SSO funktioniert nicht in 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 

Ich finde nicht genügend Antworten für diesen Fehler. Ich habe die API-Version auf 1.6 geändert. Selbst dann hat es nicht funktioniert.

WEITERE ANALYSE:

Nach Fehlerbehebung, fand ich heraus, dass der angemeldete Benutzer Informationen geholt und ist in Sessions Objekt. Es wird ausgegeben, wenn es versucht, die Antwort zu lesen und in das String-Objekt zu konvertieren. Im Folgenden ist die aufrufende Methode, wo es ausgibt.

HttpClientHelper.getResponseStringFromConn(conn, true); 

tatsächliche Methode, um die Reaktion in String zu schreiben:

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(); 
} 

Die eigentliche Frage auf dem Grafik-API ist, wo wir versuchen, die Antwort im String-Format zu lesen.

+0

Haben Sie dieses Problem gelöst? – Paul

+0

@Paul, ich bin auf ein anderes Projekt gezogen, da es eine niedrige Priorität hat. Um Ihre Frage zu beantworten, Nein. Ich werde daran arbeiten, wenn ich die Chance dazu habe. Hast du eine Lösung? – Anand

Antwort

1

@Anand, nach Microsoft Graph error responses and resource types bedeutet der Antwortcode 403 Forbidden unten.

Zugriff auf die angeforderte Ressource verweigert. Der Benutzer hat möglicherweise nicht genügend Berechtigungen.

Bitte bewegen Sie auf die Registerkarte CONFIGURE Ihrer Anwendung in Ihrer AAD Domain auf Azure klassischen Portal registriert, dann prüfen, ob genug Erlaubnis aktivieren, finden Sie in der Abbildung unten.

enter image description here

+0

Ich folgte Ihren Anweisungen. Ich habe alle Optionen außer der ersten ausgewählt. Selbst dann hat es nicht funktioniert. Ich bekomme immer noch den gleichen Fehler. Muss ich die API-Version ändern? Ich verwende diese URL - https://graph.windows.net/ppceses.onmicrosoft.com/users?api-version=2013-04-05. Bitte geben Sie – Anand

+0

das gleiche Problem auch, ich habe die Erlaubnis für alle Optionen, aber ich habe immer noch 403 Fehler. –

0

habe ich die gleichen Fehler, wurde mit ihm ein paar Tage zu kämpfen. Was ich bemerkte war, dass selbst wenn ich ALLE Berechtigungen für Windows Azure Active Directory überprüft habe ich immer noch die 403. Also, ich löschte die App in App-Registrierungen und neu erstellt von Grund auf, generierte neue Anwendungsschlüssel und readed URLs. In Erforderliche Berechtigungen/Windows Azure Active Directory-Check:

  • Anmelden und lesen erfolgreich Benutzerprofil
  • Besuchen Sie das Verzeichnis als die angemeldeten Nutzer

ich jetzt me/memberOf nennen kann.

Ich hoffe, es hilft.