2016-04-20 13 views
1

Ich arbeite https://github.com/Azure-Samples/active-directory-androidErste die auf die vom androiden

ganz in der Nähe der Probe Mein Code ahmt

 mAuthContext.acquireToken(ToDoActivity.this, Constants.RESOURCE_ID, 
       Constants.CLIENT_ID, Constants.REDIRECT_URL, Constants.USER_HINT, 
       new AuthenticationCallback<AuthenticationResult>() { 

        @Override 
        public void onError(Exception exc) { 
         if (mLoginProgressDialog.isShowing()) { 
          mLoginProgressDialog.dismiss(); 
         } 
         Toast.makeText(getApplicationContext(), 
           TAG + "getToken Error:" + exc.getMessage(), Toast.LENGTH_SHORT) 
           .show(); 
         navigateToLogOut(); 
        } 

        @Override 
        public void onSuccess(AuthenticationResult result) { 
         if (mLoginProgressDialog.isShowing()) { 
          mLoginProgressDialog.dismiss(); 
         } 

         if (result != null && !result.getAccessToken().isEmpty()) { 
          setLocalToken(result); 
          sendRequest(); 
         } else { 
          navigateToLogOut(); 
         } 
        } 
       }); 

ich in der Benutzer-E-Mail-Adresse weitergeben mit ADAL in Benutzerinfos von ADAL angemeldet, aber wenn der Benutzer ändert es und verwendet eine andere ADAL-Bibliothek auf dem OnSuccess sagt mir nie, dass der Benutzer es geändert hat. Das AuthenticationResult hat ein Feld namens mUserInfo, das die Vorname/Nachname-E-Mail des Benutzers usw. enthalten sollte.

Aber für mich ist jede erfolgreiche Anmeldung mUserInfo = null.

Wer weiß, wie ADAL ein vollbesetztes mUserInfo-Objekt zurückgibt?

dank Tom

+0

Führen Sie Ihren Code gegen AAD oder adfs als Autorität? –

+0

ADFS-Berechtigung. Danke für die Antwort –

+0

@tomhackbarth, hast du herausgefunden, wie man damit umgeht? Ich stehe vor der gleichen Sache. Wir können sehen, dass ein Benutzer authentifiziert wurde, aber keine Ahnung hat, wer sie sind. –

Antwort

0

Userinfo aufgebaut ist aus der ID_token vom Server neu abgestimmt. Im Fall von adfs blue (3.0) gibt es kein ID_token zurück und Sie können daher nicht wirklich wissen, welcher Benutzer am IDP angemeldet war. Der Adfs-Schwellenwert unterstützt ID_token, wenn Sie ein Upgrade durchführen können.

+0

von "ADFS theshold" meinst du ADFS 2016 und die OpenID/Connect fließt? –

+0

Ja. Das ist es was ich meinte. Lassen Sie mich herausfinden, ob es ein Update auf 3.0 gibt, das Ihnen helfen kann ID-Token zu bekommen –

+0

Entschuldigung, es gibt keine Unterstützung für ID-Token in adfs 3.0 –