В запросе saml2 отсутствуют параметры SigAlg и Signature - PullRequest
1 голос
/ 10 июля 2020

Добрый день,

Мы использовали библиотеку ITfoxte c версии 1.2.2. Это решение сработало правильно.

Сейчас мы интегрируем библиотеку версии 4.0.5. Нам нужно использовать кодировку SHA-256. Мы использовали библиотеку 4.0.5 от Nugets. Согласно примеру реализации https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2.

Мы изменили AccountController, добавили App_Start \ IdentityConfig.cs и добавили вызов IdentityConfig.RegisterIdentity() в Global.asax.

Проблема: в запросе поставщика отсутствуют параметры SigAlg и Signature.

библиотека версии 1.2.2 ITfoxte c, трекер SAML

4.0.5 библиотека версий ITfoxte c, SAML трекер

Устанавливаем параметры:

  • "Saml2:IdPMetadata" = "/App_Data/metadata.xml"
  • "Saml2:Issuer" value = "http://xxx"
  • "Saml2:SignatureAlgorithm" = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
  • "Saml2:SingleSignOnDestination" = "https://yyy/oamfed/idp/samlv20"
  • "Saml2:SingleLogoutDestination" = "https://yyy/oamfed/idp/samlv20"
  • "Saml2:SigningCertificateFingerPrint" = "5d223463130bd1e290f1ae8dc064d1c48ab517c2"
  • "Saml2:CertificateValidationMode" = "None"
  • "Saml2:RevocationMode" = "NoCheck"

Параметр "Saml2:SigningCertificateFingerPrint" - настраиваемый параметр, мы загружаем сертификат из локального хранилища:

Saml2Configuration.SigningCertificate = CertificateUtil.Load (StoreName.My, StoreLocation.LocalMachine, X509FindType.FindByThumbprint, ConfigurationManager.AppSettings.Get ("Saml2: SigningCertificateFingerPrint"));

Вопрос: Почему отсутствуют параметры SigAlg и Signature в запросе? Плохая конфигурация? Плохая реализация?

Пожалуйста, помогите Хорошо спасибо DM

1 Ответ

0 голосов
/ 13 июля 2020

SAML 2.0 не требует подписи запросов аутентификации по умолчанию (запросы выхода должны быть подписаны через). Таким образом, пакет ITfoxte c Identity Saml2 по умолчанию не включает в запрос параметры SigAlg и Signature.

Чтобы подписать запросы Authn, установите Saml2Configuration.SignAuthnRequest = true в коде или в конфигурации "Saml2:SignAuthnRequest" = "true".

Отредактировано - чтение из метаданных

Saml2Configuration.SignAuthnRequest может быть установлено из метаданных IDP WantAuthnRequestsSigned.

. NET Пример кода платформы:

if(entityDescriptor.IdPSsoDescriptor.WantAuthnRequestsSigned.HasValue) {
    Saml2Configuration.SignAuthnRequest = entityDescriptor.IdPSsoDescriptor.WantAuthnRequestsSigned.Value; 
}

. NET Пример платформы IdentityConfig.cs

. NET Основной образец Startup.cs

...