#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;