1

Ich verwende OWIN OpenID Connect Middleware zur Verbindung mit Azure AD. Ich bin in der Lage, den Benutzer erfolgreich zu authentifizieren und zurück zum Callback-Endpunkt umzuleiten. Ich bin hier ein wenig verwirrt, da ich nur & code in der Antwort empfange.OpenIDConnect zum Herstellen einer Verbindung mit Azure AD

app.UseOpenIdConnectAuthentication(
     new OpenIdConnectAuthenticationOptions 
      { 
       AuthenticationType = "Azure AD - TEST", 
       Caption = "azure AD", 
       SignInAsAuthenticationType = signInAsType, 
       ClientId = "some guid", 
       Authority = "https://sts.windows.net/idp", 
       ResponseType = OpenIdConnectResponseTypes.CodeIdToken, 
       RedirectUri = "https://localhost:44392/ExternalLogins/Callback/", 
       AuthenticationMode = AuthenticationMode.Active, 
      }); 

Callback-Methode:

[HttpPost] 
[Route("ExternalLogins/Callback")] 
[AllowAnonymous] 
public async Task<IHttpActionResult> ExternalLoginCallback() 
{ 
    var content = await Request.Content.ReadAsStringAsync(); 
    // I could see the content is a string with id_token, code , state etc. 

    //id_token is a JWT, so i can decode it and see the user claims and use them later 
} 

Meine Fragen sind:

  1. Ist Azure AD verwendet nur für den Benutzer zu authentifizieren? Was ist mit Autorisierung?
  2. Wenn ich nach der Authentifizierung zu anderen APIs aufrufen möchte, wie mache ich das, weil ich access_token nicht habe?
  3. Ich denke, ich kann code mit access_token austauschen, aber nicht sicher, welchen Azure-Endpunkt muss ich anrufen, um access_token zu erhalten?
  4. Was ist der Unterschied zwischen AuthenticationMode.Active und AuthenticationMode.Passive?

Antwort

0
  1. Azure AD absolut einen Benutzer autorisieren und Access/Refresh-Token erhalten. Es unterstützt alle oAuth 2.0- und OIDC-Flows.
  2. Sie müssen eine access token erhalten, um Anrufe zu einer API zu tätigen. Nehmen wir an, Sie möchten einen/get-Endpunkt auf dem MS-Graph aufrufen, Sie stopfen den access token in den Hauptteil der http-Anfrage mit dem Schlüsselwort Bearer ey... davor. Darüber hinaus müssen Sie das Azure-Portal aufrufen und die delegierten Berechtigungen konfigurieren, auf die Sie zugreifen möchten.
  3. Der Authentifizierungscode wird verwendet, um das access_token auszutauschen. Ich schlage vor, this protocol doc auszuprobieren, die Ihnen zeigt, wie Sie alle Endpunkte verwenden. Die kurze Antwort ist POST an den Endpunkt/token.
  4. Der Unterschied zwischen aktiv und passiv ist ein bisschen komplex für eine SO Antwort, ich empfehle this blog post über die Unterschiede zu lesen.

Ich werde nur hinzufügen, dass, wenn Sie einige Beispiel-Code mit Azure AD sehen möchten Sie Azure AD Dev Guide oder Azure AD code samples on Github gehen kann.

Verwandte Themen