From e5ab127f749256e7ec6f7b2ad5ae4bb72661e39c Mon Sep 17 00:00:00 2001 From: Chris Ross Date: Sun, 23 Aug 2020 17:04:43 -0700 Subject: [PATCH] Update OAuth providers #4684 (#25112) --- .../Authentication/Facebook/src/FacebookDefaults.cs | 6 +++--- src/Security/Authentication/Google/src/GoogleDefaults.cs | 4 ++-- .../OpenIdConnect/samples/OpenIdConnectSample/Startup.cs | 2 +- .../Authentication/samples/SocialSample/Startup.cs | 7 ++++--- src/Security/Authentication/test/FacebookTests.cs | 6 +++--- src/Security/Authentication/test/GoogleTests.cs | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Security/Authentication/Facebook/src/FacebookDefaults.cs b/src/Security/Authentication/Facebook/src/FacebookDefaults.cs index 0e155bf3b6..bab049a7bf 100644 --- a/src/Security/Authentication/Facebook/src/FacebookDefaults.cs +++ b/src/Security/Authentication/Facebook/src/FacebookDefaults.cs @@ -10,10 +10,10 @@ namespace Microsoft.AspNetCore.Authentication.Facebook public static readonly string DisplayName = "Facebook"; // https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#login - public static readonly string AuthorizationEndpoint = "https://www.facebook.com/v4.0/dialog/oauth"; + public static readonly string AuthorizationEndpoint = "https://www.facebook.com/v8.0/dialog/oauth"; - public static readonly string TokenEndpoint = "https://graph.facebook.com/v4.0/oauth/access_token"; + public static readonly string TokenEndpoint = "https://graph.facebook.com/v8.0/oauth/access_token"; - public static readonly string UserInformationEndpoint = "https://graph.facebook.com/v4.0/me"; + public static readonly string UserInformationEndpoint = "https://graph.facebook.com/v8.0/me"; } } diff --git a/src/Security/Authentication/Google/src/GoogleDefaults.cs b/src/Security/Authentication/Google/src/GoogleDefaults.cs index 5d87ac1bc0..006abde8b3 100644 --- a/src/Security/Authentication/Google/src/GoogleDefaults.cs +++ b/src/Security/Authentication/Google/src/GoogleDefaults.cs @@ -14,10 +14,10 @@ namespace Microsoft.AspNetCore.Authentication.Google public static readonly string DisplayName = "Google"; - // https://developers.google.com/identity/protocols/OAuth2WebServer + // https://developers.google.com/identity/protocols/oauth2/web-server#httprest public static readonly string AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth"; - public static readonly string TokenEndpoint = "https://www.googleapis.com/oauth2/v4/token"; + public static readonly string TokenEndpoint = "https://oauth2.googleapis.com/token"; // https://developers.google.com/apis-explorer/#search/oauth2/oauth2/v2/ public static readonly string UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo"; diff --git a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs index 3e761aa6db..d5d8bb9470 100644 --- a/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs +++ b/src/Security/Authentication/OpenIdConnect/samples/OpenIdConnectSample/Startup.cs @@ -110,7 +110,7 @@ namespace OpenIdConnectSample o.Authority = Configuration["oidc:authority"]; */ // https://github.com/IdentityServer/IdentityServer4.Demo/blob/master/src/IdentityServer4Demo/Config.cs - o.ClientId = "server.hybrid"; + o.ClientId = "hybrid"; o.ClientSecret = "secret"; // for code flow o.Authority = "https://demo.identityserver.io/"; diff --git a/src/Security/Authentication/samples/SocialSample/Startup.cs b/src/Security/Authentication/samples/SocialSample/Startup.cs index 9ac713b448..81efc00e4c 100644 --- a/src/Security/Authentication/samples/SocialSample/Startup.cs +++ b/src/Security/Authentication/samples/SocialSample/Startup.cs @@ -117,7 +117,7 @@ namespace SocialSample }) // You must first create an app with GitHub and add its ID and Secret to your user-secrets. // https://github.com/settings/applications/ - // https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/ + // https://docs.github.com/en/developers/apps/authorizing-oauth-apps .AddOAuth("GitHub", "Github", o => { o.ClientId = Configuration["github:clientid"]; @@ -156,7 +156,7 @@ namespace SocialSample }) // You must first create an app with GitHub and add its ID and Secret to your user-secrets. // https://github.com/settings/applications/ - // https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/ + // https://docs.github.com/en/developers/apps/authorizing-oauth-apps .AddOAuth("GitHub-AccessToken", "GitHub AccessToken only", o => { o.ClientId = Configuration["github-token:clientid"]; @@ -171,9 +171,10 @@ namespace SocialSample }; }) // https://demo.identityserver.io/ + // https://github.com/IdentityServer/IdentityServer4.Demo/blob/master/src/IdentityServer4Demo/Config.cs .AddOAuth("IdentityServer", "Identity Server", o => { - o.ClientId = "server.code"; + o.ClientId = "interactive.public"; o.ClientSecret = "secret"; o.CallbackPath = new PathString("/signin-identityserver"); o.AuthorizationEndpoint = "https://demo.identityserver.io/connect/authorize"; diff --git a/src/Security/Authentication/test/FacebookTests.cs b/src/Security/Authentication/test/FacebookTests.cs index d2c33019e4..2d1a849aa3 100644 --- a/src/Security/Authentication/test/FacebookTests.cs +++ b/src/Security/Authentication/test/FacebookTests.cs @@ -233,7 +233,7 @@ namespace Microsoft.AspNetCore.Authentication.Facebook var transaction = await server.SendAsync("http://example.com/base/login"); Assert.Equal(HttpStatusCode.Redirect, transaction.Response.StatusCode); var location = transaction.Response.Headers.Location.AbsoluteUri; - Assert.Contains("https://www.facebook.com/v4.0/dialog/oauth", location); + Assert.Contains("https://www.facebook.com/v8.0/dialog/oauth", location); Assert.Contains("response_type=code", location); Assert.Contains("client_id=", location); Assert.Contains("redirect_uri=" + UrlEncoder.Default.Encode("http://example.com/base/signin-facebook"), location); @@ -266,7 +266,7 @@ namespace Microsoft.AspNetCore.Authentication.Facebook var transaction = await server.SendAsync("http://example.com/login"); Assert.Equal(HttpStatusCode.Redirect, transaction.Response.StatusCode); var location = transaction.Response.Headers.Location.AbsoluteUri; - Assert.Contains("https://www.facebook.com/v4.0/dialog/oauth", location); + Assert.Contains("https://www.facebook.com/v8.0/dialog/oauth", location); Assert.Contains("response_type=code", location); Assert.Contains("client_id=", location); Assert.Contains("redirect_uri=" + UrlEncoder.Default.Encode("http://example.com/signin-facebook"), location); @@ -301,7 +301,7 @@ namespace Microsoft.AspNetCore.Authentication.Facebook var transaction = await server.SendAsync("http://example.com/challenge"); Assert.Equal(HttpStatusCode.Redirect, transaction.Response.StatusCode); var location = transaction.Response.Headers.Location.AbsoluteUri; - Assert.Contains("https://www.facebook.com/v4.0/dialog/oauth", location); + Assert.Contains("https://www.facebook.com/v8.0/dialog/oauth", location); Assert.Contains("response_type=code", location); Assert.Contains("client_id=", location); Assert.Contains("redirect_uri=", location); diff --git a/src/Security/Authentication/test/GoogleTests.cs b/src/Security/Authentication/test/GoogleTests.cs index 27d90adaad..c53181047b 100644 --- a/src/Security/Authentication/test/GoogleTests.cs +++ b/src/Security/Authentication/test/GoogleTests.cs @@ -1020,7 +1020,7 @@ namespace Microsoft.AspNetCore.Authentication.Google { Sender = req => { - if (req.RequestUri.AbsoluteUri == "https://www.googleapis.com/oauth2/v4/token") + if (req.RequestUri.AbsoluteUri == "https://oauth2.googleapis.com/token") { return ReturnJsonResponse(new {