Как можно выполнить тестирование с помощью контроллера SAML 2.0?

#c# #.net-core #entity-framework-core #saml-2.0 #itfoxtec-identity-saml2

#c# #.net-ядро #сущность-структура-ядро #saml-2.0 #itfoxtec-идентификация-saml2

Вопрос:

У меня есть проект .Net 5 Entity Framework, в который я добавил библиотеку ITfoxtec SAML 2.0.

Мне нужно иметь возможность подключиться к корпоративной сети, использующей SAML 2.0. ИТ-специалисты говорят, что мне нужно «создать утверждение SAML 2.0, чтобы указать корпоративный маршрут SAML».

Я следовал примерам кода в репозитории Git и добавил все необходимые элементы конфигурации в свой startup.cs класс.

Также в моем AuthController.cs я добавил следующее:

 [Route("Login")]  public IActionResult Login(string returnUrl = null)  {  var binding = new Saml2RedirectBinding();  binding.SetRelayStateQuery(new Dictionarylt;string, stringgt; { { relayStateReturnUrl, returnUrl ?? Url.Content("~/") } });   return binding.Bind(new Saml2AuthnRequest(config)).ToActionResult();  }   [Route("AssertionConsumerService")]  public async Tasklt;IActionResultgt; AssertionConsumerService()  {  var binding = new Saml2PostBinding();  var saml2AuthnResponse = new Saml2AuthnResponse(config);   binding.ReadSamlResponse(Request.ToGenericHttpRequest(), saml2AuthnResponse);  if (saml2AuthnResponse.Status != Saml2StatusCodes.Success)  {  throw new AuthenticationException($"SAML Response status: {saml2AuthnResponse.Status}");  }  binding.Unbind(Request.ToGenericHttpRequest(), saml2AuthnResponse);  await saml2AuthnResponse.CreateSession(HttpContext, claimsTransform: (claimsPrincipal) =gt; ClaimsTransform.Transform(claimsPrincipal));   var relayStateQuery = binding.GetRelayStateQuery();  var returnUrl = relayStateQuery.ContainsKey(relayStateReturnUrl) ? relayStateQuery[relayStateReturnUrl] : Url.Content("~/");  return Redirect(returnUrl);  }  

Проект строится и запускается, но я не уверен, как протестировать эту библиотеку ITfoxtec SAML 2.0.

У кого — нибудь есть какой-нибудь опыт в этом деле?

Спасибо!

Ответ №1:

Вы просто тестируете его, открыв браузер и нажав «Войти». Компонент ITfoxtec Identity SAML 2.0 вместе с вашим кодом перенаправит на ваш корпоративный IdP, и он ожидает обратной публикации через браузер.

Комментарии:

1. Спасибо! Являются ли конечные точки корпоративного IdP, как правило, просто URL-адресом контроллера? Кроме того, моему приложению .Net Core SP потребуется метод GET для подключения к конечной точке IdP и метод POST для получения ответа IdP? Еще раз спасибо!

2. Корпоративный IdP обычно поддерживает конечную точку метаданных, которая описывает конечные точки. Ваше приложение .NET Core SP отправит сообщение GET, а не получит его. Вашему приложению .NET Core SP требуется конечная точка POST для получения ответа IdP.