NAME

Lemonldap::NG::Portal::Lib::SAML - Common SAML functions

SYNOPSIS

use Lemonldap::NG::Portal::Lib::SAML;

DESCRIPTION

This module contains common methods for SAML authentication and user information loading

METHODS

loadLasso

Load Lasso module

loadService

Load SAML service by creating a Lasso::Server

loadIDPs

Load SAML identity providers

loadSPs

Load SAML service providers

checkMessage

Check SAML requests and responses

checkLassoError

Log Lasso error code and message if this is actually a Lasso::Error with code > 0

createServer

Load service metadata and create Lasso::Server object

addIDP

Add IDP to an existing Lasso::Server

addSP

Add SP to an existing Lasso::Server

addAA

Add Attribute Authority to an existing Lasso::Server

addProvider

Add provider to an existing Lasso::Server

getOrganizationName

Return name of organization picked up from metadata

createAuthnRequest

Create authentication request for selected IDP

createLogin

Create Lasso::Login object

initAuthnRequest

Init authentication request

initIdpInitiatedAuthnRequest

Init authentication request for IDP initiated

buildAuthnRequestMsg

Build authentication request message

processAuthnRequestMsg

Process authentication request message

processAuthnRequestMsgWithError

Process authentication request message and return Lasso error

validateRequestMsg

Validate request message

buildAuthnResponseMsg

Build authentication response message

buildArtifactMsg

Build artifact message

buildAssertion

Build assertion

processAuthnResponseMsg

Process authentication response message

getNameIdentifier

Get NameID from Lasso Profile

createIdentity

Create Lasso::Identity object

createSession

Create Lasso::Session object

acceptSSO

Accept SSO from IDP

storeRelayState

Store information in relayState database and return

extractRelayState

Extract RelayState information into $self

getAssertion

Get assertion in Lasso::Login object

getAttributeValue

Get SAML attribute value corresponding to name, format and friendly_name Multivaluated values are separated by ';'

validateConditions

Validate conditions

createLogoutRequest

Create logout request for selected entity

createLogout

Create Lasso::Logout object

initLogoutRequest

Init logout request

buildLogoutRequestMsg

Build logout request message

setSessionFromDump

Set session from dump in Lasso::Profile object

setIdentityFromDump

Set identity from dump in Lasso::Profile object

getMetaDataURL

Get URL stored in a service metadata configuration key

processLogoutResponseMsg

Process logout response message

processLogoutRequestMsg

Process logout request message

validateLogoutRequest

Validate logout request

buildLogoutResponseMsg

Build logout response msg

storeReplayProtection

Store ID of an SAML message in Replay Protection base

replayProtection

Check if SAML message do not correspond to a previously responded message

resolveArtifact

Resolve artifact to get the real SAML message

storeArtifact

Store artifact

loadArtifact

Load artifact

createArtifactResponse

Create artifact response

processArtRequestMsg

Process artifact response message

processArtResponseMsg

Process artifact response message

sendSOAPMessage

Send SOAP message and get response

createAssertionQuery

Create a new assertion query

createAttributeRequest

Create an attribute request

validateAttributeRequest

Validate an attribute request

processAttributeRequest

Process an attribute request

buildAttributeResponse

Build attribute response

processAttributeResponse

Process an attribute response

getNameIDFormat

Convert configuration string into SAML2 NameIDFormat string

getHttpMethod

Convert configuration string into Lasso HTTP Method integer

getHttpMethodString

Convert configuration Lasso HTTP Method integer into string

getFirstHttpMethod

Find a suitable HTTP method for an entity with a given protocol

disableSignature

Modify Lasso signature hint to disable signature

forceSignature

Modify Lasso signature hint to force signature

disableSignatureVerification

Modify Lasso signature hint to disable signature verification

forceSignatureVerification

Modify Lasso signature hint to force signature verification

getAuthnContext

Convert configuration string into SAML2 AuthnContextClassRef string

timestamp2samldate

Convert timestamp into SAML2 date format

samldate2timestamp

Convert SAML2 date format into timestamp

sendLogoutResponseToServiceProvider

Send logout response issue from a logout request

sendLogoutRequestToProvider

Send logout request to a provider

sendLogoutRequestToProviders

Send logout response issue from a logout request to all other providers. If information have to be displayed to users, such as iframe to send HTTP-Redirect or HTTP-POST logout request, then $self->{_info} will be updated.

checkSignatureStatus

Check signature status

authnContext2authnLevel

Return authentication level corresponding to authnContext

authnLevel2authnContext

Return SAML authentication context corresponding to authnLevel

checkDestination

If SAML Destination attribute is present, check it

getSamlSession

Try to recover the SAML session corresponding to id and return session data

createAttribute

Create a new SAML attribute

createAttributeValue

Create a new SAML attribute value

getEncryptionMode

Return Lasso encryption mode

setProviderEncryptionMode

Set encryption mode on a provider

deleteSAMLSecondarySessions

Find and delete SAML sessions bounded to a primary session

sendSLOErrorResponse

Send an SLO error response

getQueryString

Get query string with or without CGI query_string() method

getSignatureMethod

Return Lasso signature method

setProviderSignatureMethod

Set signature method on a provider

SEE ALSO

Lemonldap::NG::Portal::Auth::SAML, Lemonldap::NG::Portal::UserDBSAML

AUTHORS

LemonLDAP::NG team http://lemonldap-ng.org/team

BUG REPORT

Use OW2 system to report bug or ask for features: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues

DOWNLOAD

Lemonldap::NG is available at https://lemonldap-ng.org/download

COPYRIGHT AND LICENSE

See COPYING file for details.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.