2016-07-19 36 views
0

Die ASP.NET-Sicherheit Social Beispiel has two ways to interact with Google.Was sind die Standardnamen der Protokolle hinter UseOAuthAuthentication und UseGoogleAuthentication?

UseOAuthAuthentication

app.UseOAuthAuthentication(new OAuthOptions 
{ 
    AuthenticationScheme = "Google-AccessToken", 
    DisplayName = "Google-AccessToken", 
    ClientId = Configuration["google:clientid"], 
    ClientSecret = Configuration["google:clientsecret"], 
    CallbackPath = new PathString("/signin-google-token"), 
    AuthorizationEndpoint = GoogleDefaults.AuthorizationEndpoint, 
    TokenEndpoint = GoogleDefaults.TokenEndpoint, 
    Scope = { "openid", "profile", "email" }, 
    SaveTokens = true 
}); 

UseGoogleAuthentication

app.UseGoogleAuthentication(new GoogleOptions 
{ 
    ClientId = Configuration["google:clientid"], 
    ClientSecret = Configuration["google:clientsecret"], 
    SaveTokens = true, 
    Events = new OAuthEvents() 
    { 
     OnRemoteFailure = ctx => 
     { 
      ctx.Response.Redirect("/error?FailureMessage=" 
       + UrlEncoder.Default.Encode(ctx.Failure.Message)); 
      ctx.HandleResponse(); 
      return Task.FromResult(0); 
     } 
    } 
}); 

Was ist der Standardname für diese beiden Arten von Authentifizierung und Autorisierung? I.e. ist ein OAuth und die andere OpenID Connect?

Bei der Auswahl UseOAuthAuthentication ist dies das Ergebnis.

context 
    .User.Claims: [] 
    .User.Identity.Name: null 
    .Authentication.GetTokenAsync("access_token"): ya29.CjAlAz3AcUnRD... 
    .Authentication.GetTokenAsync("refresh_token"): null 
    .Authentication.GetTokenAsync("token_type"): Bearer 
    .Authentication.GetTokenAsync("expires_at"): 2016-07-19T22:49:54... 

Wann UseGoogleAuthentication die Wahl, das ist das Ergebnis.

context 
    .User.Claims: [ 
     nameidentifier: 10424487944... 
     givenname: Shaun 
     surname: Luttin 
     name: Shaun Luttin 
     emailaddress: [email protected] 
     profile: https://plus.google.com/+ShaunLuttin   
    ] 
    .User.Identity.Name: "Shaun Luttin" 
    .Authentication.GetTokenAsync("access_token"): ya29.CjAlAz3AcUnRD... 
    .Authentication.GetTokenAsync("refresh_token"): null 
    .Authentication.GetTokenAsync("token_type"): Bearer 
    .Authentication.GetTokenAsync("expires_at"): 2016-07-19T22:49:54... 

Antwort

0

Sowohl UseOAuthAuthentication und UseGoogleAuthentication sind OAuth. Der Unterschied besteht darin, dass die Google Middleware einige standardmäßige OAuth-Optionen für Google festlegt und eine GoogleHandler hinzufügt, die die Benutzerprofilinformationen abruft.

Mit anderen Worten,

  • UseOAuthAuthentication ist OAuth, die und Zugriffstoken abruft.

  • UseGoogleAuthentication ist OAuth mit seinen Optionen und Flow abgestimmt, um einen Zugriffscode und Benutzerprofilinformationen von Google abzurufen.