У меня есть приложение ASP.NET MVC 5, которое аутентифицируется против Azure Active Directory. Я хотел включить SSL на нем через приложение. и, следовательно, заемные средства глобальных фильтров следующим образом:Включение SSL в приложении ASP.NET MVC 5 в результате проблемы с 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());
}
}
После этого я также установить «Включить SSL» в свойствах проекта в действительность. Это дало мне следующий URL-адрес SSL ->https://localhost:34567. Я обновил проект, чтобы иметь это на своем пути IIS Express в разделе «Веб-вкладка» под серверами в «URL проекта». Однако при запуске сайта я столкнулся со следующей ошибкой:
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'.
У меня есть автоответчик. разрешено на сайте. Я использую каталог Azure Active.
Код безопасности выглядит следующим образом:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri
});
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = audience,
Tenant = tenant,
});
аутентификации. значения считываются из web.config и заключаются в следующем:
<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/" />
Я попытался установить RequireNonce ложь, как указано в сообщении об ошибке следующим образом:
ProtocolValidator = new OpenIdConnectProtocolValidator
{
RequireNonce = false
}
Но это только привело к недопустимым запрос ошибки.
Может кто-нибудь помочь мне понять, в чем проблема? Все работало отлично, пока SSL не был включен.
Думаю, я понял это. Приложение. детали в Azure AD жестко привязаны к исходной конечной точке HTTP. Обновит это, как только я подтвержу свою теорию. –
Я получаю это тоже ... –
Прошу, вам удалось исправить эту ошибку? Я в той же ситуации. – Mastenka