Я пытаюсь интегрировать имя пользователя 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
Кто-то знает, что я сделал не так? Спасибо за помощь