2016-06-20 12 views
2

Ich versuche, unseren ADFS-Login mit unserer Anwendung zu integrieren, die ActiveAdmin in Kombination mit Devise verwendet. Ich fügte zu diesem Zweck erfolgreich omniauth-saml hinzu. Die Anwendung leitet nun ADFS weiter, die Anmeldung ist erfolgreich, schlägt aber beim Rückruf fehl. Ich bekomme den Fehler Invalid ticket.Schienen omniauth-saml + devise + ADFS Problem

Wenn ich versuche, auf dem Server in der omniauth-saml lib in die Antwort auf sehe ich es sehen kann, sagt: @document=<UNDEFINED> ... </> und @decrypted_document=<UNDEFINED> ... </>

Die initializers/devise.rb lautet:

config.omniauth :saml, 
       assertion_consumer_service_url: 'https://my_server/admin/auth/saml/callback', 
       issuer: 'https://my_server/', 
       authn_context: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', 
       idp_sso_target_url: 'https://my_adfs_server/adfs/ls/', 
       assertion_consumer_service_binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 
       assertion_consumer_logout_service_binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 
       idp_sso_target_url_runtime_params: {original_request_param: :mapped_idp_param}, 
       name_identifier_format: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', 
       idp_cert: idp_certificate, 
       request_attributes: {}, 
       attribute_statements: {email: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'], 
             name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'], 
             first_name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'], 
             last_name: ['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname']}, 
       private_key: sp_key, 
       certificate: sp_certificate, 
       security: {authn_requests_signed: true, 
          logout_requests_signed: true, 
          logout_responses_signed: true, 
          metadata_signed: true, 
          digest_method: XMLSecurity::Document::SHA1, 
          signature_method: XMLSecurity::Document::RSA_SHA1, 
          embed_sign: false} 

Wie kann ich dieses Problem lösen ?

Addition: Scheint, dass REXML :: Document das Cypher innerhalb der SAML-Antwort nicht entschlüsseln kann. Dies geschieht nicht ohne Fehler. Wenn ich versuche, es selbst zu tun, indem ich https://www.samltool.com/decrypt.php benutze, sehe ich keine Probleme damit.

Antwort

1

Ich wählte das falsche Zertifikat aus ADFS Metadaten Xml. Brauchen Sie die Unterzeichnung, nicht das Verschlüsselungszertifikat.

Gefunden mit https://www.samltool.com/validate_response.php zum Debuggen.

+0

Wie ich schließlich behoben es kann auf meinem Blog gefunden werden: http://www.michaelsommer.nl/2016/06/implementing-single-sign-on-with-adfs.html –