public function getAuthnRequest(
        $consumer_service_url,
        $idp_destination,
        $issuer,
        $saml_crt,
        $saml_key
    ) {
        $authn_request = new AuthnRequest();
        $authn_request
            ->setAssertionConsumerServiceURL($consumer_service_url)
            ->setProtocolBinding(SamlConstants::BINDING_SAML2_HTTP_POST)
            ->setID(Helper::generateID())
            ->setIssueInstant(new DateTime())
            ->setDestination($idp_destination)
            ->setIssuer(new Issuer($issuer));

        $certificate = new X509Certificate();
        $certificate->loadPem($saml_crt);
        $private_key = KeyHelper::createPrivateKey($saml_key, '', false);

        $authn_request->setSignature(new SignatureWriter($certificate, $private_key));

        $serialization_context = new SerializationContext();
        $authn_request->serialize($serialization_context->getDocument(), $serialization_context);

        $binding_factory = new BindingFactory();
        $redirect_binding = $binding_factory->create(SamlConstants::BINDING_SAML2_HTTP_REDIRECT);

        $message_context = new MessageContext();
        $message_context->setMessage($authn_request);

        /** @var \Symfony\Component\HttpFoundation\RedirectResponse $http_response */
        $http_response = $redirect_binding->send($message_context);

        return $http_response->getTargetUrl();
    }
public function getAuthnRequest(
        $consumer_service_url,
        $idp_destination,
        $issuer,
        $saml_crt,
        $saml_key
    ) {
        $authn_request = new AuthnRequest();
        $authn_request
            ->setAssertionConsumerServiceURL($consumer_service_url)
            ->setProtocolBinding(SamlConstants::BINDING_SAML2_HTTP_POST)
            ->setID(Helper::generateID())
            ->setIssueInstant(new DateTime())
            ->setDestination($idp_destination)
            ->setIssuer(new Issuer($issuer));

        $certificate = new X509Certificate();
        $certificate->loadPem($saml_crt);
        $private_key = KeyHelper::createPrivateKey($saml_key, '', false);

        $authn_request->setSignature(new SignatureWriter($certificate, $private_key));

        $serialization_context = new SerializationContext();
        $authn_request->serialize($serialization_context->getDocument(), $serialization_context);

        $binding_factory = new BindingFactory();
        $redirect_binding = $binding_factory->create(SamlConstants::BINDING_SAML2_HTTP_REDIRECT);

        $message_context = new MessageContext();
        $message_context->setMessage($authn_request);

        /** @var \Symfony\Component\HttpFoundation\RedirectResponse $http_response */
        $http_response = $redirect_binding->send($message_context);

        return $http_response->getTargetUrl();
    }
public function getAuthnRequest ( $ consumer_service_url , $ idp_destination , $ issuer , $ saml_crt , $ saml_key ) { $ authn_request = new AuthnRequest ( ) ; $ authn_request -> setAssertionConsumerServiceURL ( $ consumer_service_url ) -> setProtocolBinding ( SamlConstants :: BINDING_SAML2_HTTP_POST ) -> setID ( Helper :: generateID ( ) ) -> setIssueInstant ( new DateTime ( ) ) -> setDestination ( $ idp_destination ) -> setIssuer ( new Issuer ( $ issuer ) ) ; $ certificate = new X509Certificate ( ) ; $ certificate -> loadPem ( $ saml_crt ) ; $ private_key = KeyHelper :: createPrivateKey ( $ saml_key , '' , false ) ; $ authn_request -> setSignature ( new SignatureWriter ( $ certificate , $ private_key ) ) ; $ serialization_context = new SerializationContext ( ) ; $ authn_request -> serialize ( $ serialization_context -> getDocument ( ) , $ serialization_context ) ; $ binding_factory = new BindingFactory ( ) ; $ redirect_binding = $ binding_factory -> create ( SamlConstants :: BINDING_SAML2_HTTP_REDIRECT ) ; $ message_context = new MessageContext ( ) ; $ message_context -> setMessage ( $ authn_request ) ; /** @var \Symfony\Component\HttpFoundation\RedirectResponse $http_response */ $ http_response = $ redirect_binding -> send ( $ message_context ) ; return $ http_response -> getTargetUrl ( ) ; }
Get saml authnRequest.

@param  string $consumer_service_url
@param  string $idp_destination
@param  string $issuer
@param  string $saml_crt
@param  string $saml_key
@return string
Get saml authnRequest .