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/.