#485 OIDC RequireHttpsMetadata
This commit is contained in:
parent
9c9cf3d314
commit
57a64298c0
|
|
@ -79,11 +79,17 @@ namespace Microsoft.AspNet.Authentication.JwtBearer
|
||||||
Options.MetadataAddress += ".well-known/openid-configuration";
|
Options.MetadataAddress += ".well-known/openid-configuration";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Options.RequireHttpsMetadata && !Options.MetadataAddress.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("The MetadataAddress or Authority must use HTTPS unless disabled for development by setting RequireHttpsMetadata=false.");
|
||||||
|
}
|
||||||
|
|
||||||
var httpClient = new HttpClient(Options.BackchannelHttpHandler ?? new HttpClientHandler());
|
var httpClient = new HttpClient(Options.BackchannelHttpHandler ?? new HttpClientHandler());
|
||||||
httpClient.Timeout = Options.BackchannelTimeout;
|
httpClient.Timeout = Options.BackchannelTimeout;
|
||||||
httpClient.MaxResponseContentBufferSize = 1024 * 1024 * 10; // 10 MB
|
httpClient.MaxResponseContentBufferSize = 1024 * 1024 * 10; // 10 MB
|
||||||
|
|
||||||
Options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(Options.MetadataAddress, new OpenIdConnectConfigurationRetriever(), httpClient);
|
Options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(Options.MetadataAddress, new OpenIdConnectConfigurationRetriever(),
|
||||||
|
new HttpDocumentRetriever(httpClient) { RequireHttps = Options.RequireHttpsMetadata });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,12 @@ namespace Microsoft.AspNet.Authentication.JwtBearer
|
||||||
AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme;
|
AuthenticationScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets if HTTPS is required for the metadata address or authority.
|
||||||
|
/// The default is true. This should be disabled only in development environments.
|
||||||
|
/// </summary>
|
||||||
|
public bool RequireHttpsMetadata { get; set; } = true;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the discovery endpoint for obtaining metadata
|
/// Gets or sets the discovery endpoint for obtaining metadata
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,13 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
Options.MetadataAddress += ".well-known/openid-configuration";
|
Options.MetadataAddress += ".well-known/openid-configuration";
|
||||||
}
|
}
|
||||||
|
|
||||||
Options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(Options.MetadataAddress, new OpenIdConnectConfigurationRetriever(), Backchannel);
|
if (Options.RequireHttpsMetadata && !Options.MetadataAddress.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("The MetadataAddress or Authority must use HTTPS unless disabled for development by setting RequireHttpsMetadata=false.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(Options.MetadataAddress, new OpenIdConnectConfigurationRetriever(),
|
||||||
|
new HttpDocumentRetriever(Backchannel) { RequireHttps = Options.RequireHttpsMetadata });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,12 @@ namespace Microsoft.AspNet.Authentication.OpenIdConnect
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool GetClaimsFromUserInfoEndpoint { get; set; }
|
public bool GetClaimsFromUserInfoEndpoint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets if HTTPS is required for the metadata address or authority.
|
||||||
|
/// The default is true. This should be disabled only in development environments.
|
||||||
|
/// </summary>
|
||||||
|
public bool RequireHttpsMetadata { get; set; } = true;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the discovery endpoint for obtaining metadata
|
/// Gets or sets the discovery endpoint for obtaining metadata
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue