Ich habe eine ASP.NET MVC 5 App, die sich gegen Azure Active Directory authentifiziert. Ich wollte SSL in der gesamten App aktivieren. und damit globale Filter genutzt wie folgt:Aktivieren von SSL in ASP.NET MVC 5 App führt zu OpenIdConnectProtocolValidator Problem
public class FilterConfig
{
/// <summary>
/// Registers the global filters.
/// </summary>
/// <param name="filters">The filters.</param>
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new RequireHttpsAttribute());
}
}
Danach Ich habe auch ‚SSL aktivieren‘ in den Eigenschaften des Projekts zu wahren. Dies gab mir die folgende SSL-URL ->https://localhost:34567. Ich habe das Projekt aktualisiert, um dies in seinem IIS Express-Pfad unter dem "Web Tab" unter Server in "Project URL" zu haben. Beim Ausführen der Site lief ich jedoch zu folgendem Fehler:
IDX10311: RequireNonce is 'true' (default) but validationContext.Nonce is null. A nonce cannot be validated. If you don't need to check the nonce, set OpenIdConnectProtocolValidator.RequireNonce to 'false'.
Ich habe auth. auf der Website aktiviert. Ich verwende Azure Active Directory.
Der Sicherheitscode ist wie folgt:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = audience,
Tenant = tenant,
});
Die Auth. Werte werden aus der web.config lesen und sind wie folgt:
<add key="ida:ClientId" value="<some_guid>" />
<add key="ida:Audience" value="https://localhost:34567/" />
<add key="ida:AADInstance" value="https://login.windows.net/{0}" />
<add key="ida:Tenant" value="microsoft.onmicrosoft.com" />
<add key="ida:PostLogoutRedirectUri" value="https://localhost:34567/" />
ich RequireNonce auf false versucht Einstellung wie in der Fehlermeldung gerichtet wie folgt:
ProtocolValidator = new OpenIdConnectProtocolValidator
{
RequireNonce = false
}
Aber dies ist nur in Folge einer ungültigen Fehler anfordern
Könnte jemand mir helfen zu verstehen, was das Problem hier ist? Alles hat gut funktioniert, bis SSL aktiviert wurde.
Denken Sie, dass ich das herausgefunden habe. Die App. Details in Azure AD sind fest auf den ursprünglichen HTTP-Endpunkt angewiesen. Ich werde dies aktualisieren, sobald ich meine Theorie bestätigt habe. –
Ich bekomme das auch ... –
Bitte, hast du es geschafft, diesen Fehler zu beheben? Ich bin in der gleichen Situation. – Mastenka