InvalidSaml2BindingException: не метод HTTP GET
Добрый день,
Я использую ITfoxtec.Identity.Saml2.MvcCore 4.0.7 с TestWebAppCore и TestIdPCore от GitHub ITfoxtec. Когда я запускаю этот образец из Visual Studio, я не получаю никаких ошибок, и все работает нормально. Но когда я развертываю эти образцы в IIS 10 на Windows server 2019, я получаю сообщение об ошибке при тестировании SecurePage. Смотрите мою ошибку здесь ниже. Похоже, что метод ITfoxtec.Identity.Saml2.Saml2RedirectBinding.Read получает запрос POST в программе Sample вместо GET. Вы можете помочь мне с этим исключением?
При обработке запроса возникло необработанное исключение. InvalidSaml2BindingException: не метод HTTP GET. ITfoxtec.Identity.Saml2.Saml2RedirectBinding.Read(запрос HttpRequest, Saml2Request saml2RequestResponse, строка messageName, bool validateXmlSignature) в Saml2RedirectBinding.cs, строка 151
Заголовки файлов cookie запроса стека. Маршрутизация InvalidSaml2BindingException: не метод HTTP GET. ITfoxtec.Identity.Saml2.Saml2RedirectBinding.Read(запрос HttpRequest, Saml2Request saml2RequestResponse, строка messageName, bool validateXmlSignature) в Saml2RedirectBinding.cs + throw new InvalidSaml2BindingException("Not HTTP GET Method." Not HTTP GET Method. ITfoxtec.Identity.Saml2.Saml2Binding.ReadSamlRequest(запрос HttpRequest, Saml2Request saml2Request) в Saml2Binding.cs + { TestIdPCore.Controllers.AuthController.ReadRelyingPartyFromLoginRequest. (в Saml2BindingRequinding.ReadRelyingPartyFromLoginRequest. (в привязке Saml2Binding) (привязка Saml2Binding) Saml2AuthnRequest(config))?.Issuer;. TestIdPCore.Controllers.AuthController.Login() в AuthController.cs + var relyingParty = ValidateRelyingParty(ReadRelyingPartyFromLoginRequest(requestBinding)); lambda_method(Closure, object, object[]) Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(целевой объект, параметры объекта []) Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+SyncActionResultExecutor.Executor maverd (контроллер объекта, object [] arguments) Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(ссылка State next, ref Scope scope, ref objectNet, ref bool.Asppleted).Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(контекст ActionExehibitedContextSealed) Microsoft.AspNetCore.Mvc.Infrastructure.Controller.Next(Ref.ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited scope, TaskInvoker.g__Awaited scope, StateInvoker_Server, последний invoker_scope |24_0(ResourceInvoker invoker), состояние объекта, bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted) Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) Microsoft.AspdleNetCore.Routing_Routing_Endwapoint requestMicrosoft.AspdleNetCore.Routing_Requestpoint__Tasking_EndpointToot__Регистратор ILogger) Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke (контекст HttpContext) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageContext(HttpContext) (контекст HttpContext).
С уважением, Эд
1 ответ
Раньше, боюсь, я не видел этой ошибки. Похоже, что SAML 2.0 Authn Request отправляется как POST вместо GET. Примеры для ITfoxtec Identity SAML по умолчанию обрабатывают запрос аутентификации SAML 2.0 с помощью Saml2RedirectBinding. Использует ли метод входа TestWebAppCore.AuthController в вашем случае Saml2RedirectBinding?