Net-Saml2
view release on metacpan or search on metacpan
lib/Net/SAML2/SP.pm view on Meta::CPAN
sub sso_redirect_binding {
my ($self, $idp, $param) = @_;
my $redirect = Net::SAML2::Binding::Redirect->new(
url => $idp->sso_url('urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'),
cert => $idp->cert('signing'),
key => $self->key,
param => $param,
);
return $redirect;
}
sub slo_redirect_binding {
my ($self, $idp, $param) = @_;
my $redirect = Net::SAML2::Binding::Redirect->new(
url => $idp->slo_url('urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect'),
cert => $idp->cert('signing'),
key => $self->key,
param => $param,
);
return $redirect;
}
sub soap_binding {
my ($self, $ua, $idp_url, $idp_cert) = @_;
my $soap = Net::SAML2::Binding::SOAP->new(
ua => $ua,
key => $self->key,
cert => $self->cert,
url => $idp_url,
idp_cert => $idp_cert,
cacert => $self->cacert,
);
return $soap;
}
sub post_binding {
my ($self) = @_;
my $post = Net::SAML2::Binding::POST->new(
cacert => $self->cacert,
);
return $post;
}
sub metadata {
my ($self) = @_;
my $x = XML::Generator->new(':pretty', conformance => 'loose');
my $md = ['md' => 'urn:oasis:names:tc:SAML:2.0:metadata'];
my $ds = ['ds' => 'http://www.w3.org/2000/09/xmldsig#'];
$x->EntityDescriptor(
$md,
{
entityID => $self->id },
$x->SPSSODescriptor(
$md,
{ AuthnRequestsSigned => defined($self->authnreq_signed) ? $self->authnreq_signed : '1',
WantAssertionsSigned => defined($self->want_assertions_signed) ? $self->want_assertions_signed : '1',
errorURL => $self->url . '/saml/error',
protocolSupportEnumeration => 'urn:oasis:names:tc:SAML:2.0:protocol' },
$x->KeyDescriptor(
$md,
{
use => 'signing' },
$x->KeyInfo(
$ds,
$x->X509Data(
$ds,
$x->X509Certificate(
$ds,
$self->_cert_text,
)
)
)
),
$x->SingleLogoutService(
$md,
{ Binding => 'urn:oasis:names:tc:SAML:2.0:bindings:SOAP',
Location => $self->url . '/saml/slo-soap' },
),
$x->SingleLogoutService(
$md,
{ Binding => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
Location => $self->url . '/saml/sls-redirect-response' },
),
$x->AssertionConsumerService(
$md,
{ Binding => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
Location => $self->url . '/saml/consumer-post',
index => '1',
isDefault => 'true' },
),
$x->AssertionConsumerService(
$md,
{ Binding => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
Location => $self->url . '/saml/consumer-artifact',
index => '2',
isDefault => 'false' },
),
),
$x->Organization(
$md,
$x->OrganizationName(
$md,
{
'xml:lang' => 'en' },
$self->org_name,
),
$x->OrganizationDisplayName(
( run in 0.662 second using v1.01-cache-2.11-cpan-71847e10f99 )