Настройте LightSaml Symfony Bridge с https://samltest.id/ - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь интегрировать имя пользователя SAML в мое приложение с https://www.lightsaml.com/ Для IDP я тестирую с https://samltest.id/

Я настроил Symfony-bridge (https://github.com/lightSAML/SymfonyBridgeBundle)

light_saml_symfony_bridge:
    own:
        entity_id: "http://my_domain.loc"
        entity_descriptor_provider:
            id: my_entity_descriptor
        credentials:
            -
                certificate: '%saml.certificate%'
                key:         '%saml.key%'
                password:    ~
    party:
        idp:
            files: 
                - '%kernel.root_dir%/../src/App/Resources/metadata/samltest_metadata.xml'
    store:
        id_state: id_store

samltest_metadata.xml был загружен с https://samltest.id/saml/idp

Для сертификата и ключа я попытался сгенерировать некоторые с помощью openSSL: openssl req -new -x509 -days 365 -nodes -sha256 -out saml.crt -keyout saml.pem

Но я неполучить метаданные, которые я должен загрузить на https://samltest.id/upload.php, чтобы иметь возможность проверить это.

Я пытался это сделать:

<?xml version="1.0"?>
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://my_domain.loc">
  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <KeyDescriptor use="encryption">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>{{ ..MY_CERTIFICATE.. }}</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </KeyDescriptor>
    <KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>{{ ..MY_CERTIFICATE.. }}</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </KeyDescriptor>
    <AssertionConsumerService index="0" isDefault="false" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://my_domain.loc/saml/login_check"/>
  </SPSSODescriptor>
  <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <KeyDescriptor use="encryption">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>{{ ..MY_CERTIFICATE.. }}</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </KeyDescriptor>
    <KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>{{ ..MY_CERTIFICATE.. }}</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </KeyDescriptor>
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://my_domain.loc"/>
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="http://my_domain.loc"/>
  </IDPSSODescriptor>
</EntityDescriptor>

Я хорошо перенаправлен на samltest.idдля входа в систему, но когда я возвращаюсь к своему приложению, я получил ошибку Assertions must be signed - LightSamlContextException

Кто-то знает, что я сделал не так? Спасибо за помощь

...