Ho un'app ASP.NET MVC 5 che esegue l'autenticazione con Azure Active Directory. Volevo abilitare SSL su di essa attraverso l'app. e quindi sfruttato filtri globali come segue:Abilitazione SSL nell'app ASP.NET MVC 5 risultati nel problema OpenIdConnectProtocolValidator
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());
}
}
Dopo questo ho anche impostato 'Abilita SSL' nelle proprietà del progetto è true. Questo mi ha dato il seguente URL SSL ->https://localhost:34567. Ho aggiornato il progetto per avere questo nel suo percorso IIS Express sotto la 'Scheda Web' sotto Server in 'URL del progetto'. Tuttavia durante l'esecuzione del sito eseguo il seguente errore:
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'.
I have auth. abilitato sul sito. Io uso la directory di Azure Active.
Il codice di sicurezza è la seguente:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = audience,
Tenant = tenant,
});
L'autenticazione. I valori vengono letti dal web.config e sono i seguenti:
<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/" />
ho provato a installare RequireNonce false come indicato nel messaggio di errore come segue:
ProtocolValidator = new OpenIdConnectProtocolValidator
{
RequireNonce = false
}
Ma questo solo portato a un invalido richiesta di errore.
Qualcuno potrebbe aiutarmi a capire qual è il problema? Tutto ha funzionato alla grande fino a quando SSL non è stato abilitato.
Credo di aver capito. L'applicazione. i dettagli in Azure AD sono cablati per dipendere dall'endpoint HTTP originale. Aggiornerà questo una volta convalidata la mia teoria. –
Anche questo lo sto facendo ... –
Per favore, hai risolto questo errore? Sono nella stessa situazione. – Mastenka