itfoxtec-идентификатор-saml2 SAML Порт назначения запроса удаляется

#port #uri #itfoxtec-identity-saml2

Вопрос:

При выполнении запроса SAML номер порта (443) удаляется из назначения. Я понимаю, что это поведение объекта URI по умолчанию. Однако поставщик идентификационных данных SAML требует, чтобы адресат включал номер порта для проверки.

Как я могу заставить конструктор SAML включить порт? 443 удаляется из https://sit-api.eat.xxxxxx.xxxx.xx:443/samlsso (см. Ниже)

             Saml2Configuration samlconfig = GetSAMLConfig();

            var samlRequest = new Saml2AuthnRequest(samlconfig);
            samlRequest.AssertionConsumerServiceUrl = new Uri(_appConfiguration["Saml2:AssertionConsumerServiceUrl"]); 

            samlRequest.Destination = new Uri(_appConfiguration["Saml2:SingleSignOnDestination"]); // https://sit-api.eat.xxxxxx.xxxx.xx:443/samlsso

            samlRequest.NameIdPolicy = new NameIdPolicy()
            {
                AllowCreate = false,
                Format = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
                SPNameQualifier = _appConfiguration["Saml2:SPNameQualifier"]
            };

            samlRequest.Conditions = new Condition();
            samlRequest.Conditions.Items = new List<ITfoxtec.Identity.Saml2.Schemas.Conditions.ICondition>();
            samlRequest.Conditions.Items.Add(new ITfoxtec.Identity.Saml2.Schemas.Conditions.AudienceRestriction() { Audiences = new List<Audience>() { new Audience() { Uri = _appConfiguration["Saml2:AllowedAudienceUris"] } } });

            var bnd = binding.Bind(samlRequest);
 

Ответ №1:

Можно изменить URL-адрес назначения после ToActionResult вызова метода, если вы используете Saml2RedirectBinding . И тем самым переопределяет поведение по умолчанию.

Вот так:

 var action = binding.ToActionResult() as RedirectResu<
action.Url = action.Url.Replace("https://sit-api.eat.xxxxxx.xxxx.xx/samlsso", "https://sit-api.eat.xxxxxx.xxxx.xx:443/samlsso");
return action;