Проблема с внедрением SAML2 между Apereo CAS и Sisense - PullRequest
0 голосов
/ 28 апреля 2020

У меня проблема с реализацией рабочего процесса, инициированного SP, с использованием Sisense в качестве SP и Apereo CAS версии 5.1.2 в качестве Idp.

Это метаданные SP

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2021-01-28T18:12:42Z" cacheDuration="PT604800S" entityID="https://sisense.domain.com/app/main#/home">
  <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
   <md:KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>MIIDGT..</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:KeyDescriptor use="encryption">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>MIIDG...</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress</NameIDFormat>
    <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sisense.domain.com/api/v1/authentication/login_saml_callback/" index="1"/>
  </md:SPSSODescriptor>
</md:EntityDescriptor>

На стороне SP ожидаются следующие конфигурации.

URl удаленного входа - https://cas.com: 8443 / cas / idp / profile / SAML2 / Redirect / SSO

URL удаленного выхода из системы - https://cas.com: 8443 / cas / logout

X509 сертификат - сертификат от idp

На сервере Cas я настроил определение службы для cas как json

  "@class" : "org.apereo.cas.support.saml.services.SamlRegisteredService",
  "serviceId" : "https://sisense.domain.com/app/main#/home",
  "name" : "SAMLService",
  "id" : 10000012,
  "evaluationOrder" : 10,
  "metadataLocation" : "https://localhost:8443/cas/etc/cas/saml/sisense_metadata.xml",
  "usernameAttributeProvider" :{
    "@class" : "org.jasig.cas.services.PrincipalAttributeRegisteredServiceUsernameProvider",
    "usernameAttribute" : "cn"
  }
}

, когда рабочий процесс инициируется, вызывая этот URL https://sisense.domain.com/app/main# / home SP перенаправляет на конечную точку cas SSO со следующим SAMLRequest

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                    ID="_6f357780b767b788a3c0"
                    Version="2.0"
                    IssueInstant="2020-04-28T10:48:35.405Z"
                    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                    AssertionConsumerServiceURL="https://sisense.domain.com/api/v1/authentication/login_saml_callback/"
                    Destination="https://cas.com:8443/cas/idp/profile/SAML2/Redirect/SSO"
                    >
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://sisense.domain.com/app/main#/home</saml:Issuer>
    <samlp:NameIDPolicy xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                        Format="urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress"
                        AllowCreate="true"
                        />
    <samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                                 Comparison="exact"
                                 >
        <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
    </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

Я не получаю экран входа в систему для CAS, вместо этого получаю 500 Внутренняя ошибка сервера с сообщением об ошибке Отправка обработчика не смогли; Вложенное исключение: java .lang.NoSuchMethodError: org.jasig.cas.client.util.CommonUtils.constructServiceUrl (Ljavax / servlet / http / HttpServletRequest; Ljavax / servlet / http / HttpSangvlring_Ljpse / String; Ljava / lang / String; Ljava / lang / String; Z) Ljava / lang / String;

Я не могу продолжить, любая помощь приветствуется

Спасибо

...