Lemonld...b::SAML(3)
π NAME π
Lemonldap::NG::Portal::Lib::SAML β the module that holds all the common SAML functions. bestie, this is the shared toolbox every SAML thing in the portal reaches for π«Ά
β¨ SYNOPSIS β¨
use Lemonldap::NG::Portal::Lib::SAML;
that's literally all you need to get it in your code. slay β¨
πΈ DESCRIPTION πΈ
okay so, this module is where all the shared SAML methods live β the ones for SAML authentication and for user information loading. it's giving "reusable core", it's giving "don't rewrite this yourself", and honestly? iconic π
π METHODS π
loadLasso
Loads the Lasso module. gotta have Lasso before you can do any of the Lasso things, no cap π
loadService
Loads the SAML service by creating a Lasso::Server. one server object, coming right up β¨
loadIDPs
Loads the SAML identity providers. all of them. every single one π«Ά
loadSPs
Loads the SAML service providers. same energy, different side of the trust triangle πΈ
checkMessage
Checks SAML requests and responses. vibe check but make it protocol validation π
checkLassoError
Logs the Lasso error code and message β but only if this is actually a Lasso::Error with code > 0. no phantom errors here, bestie π
createServer
Loads service metadata and creates a Lasso::Server object. metadata in, server object out. β¨
addIDP
Adds an IDP to an existing Lasso::Server. plug it right in π
addSP
Adds an SP to an existing Lasso::Server. yep, same deal π
addAA
Adds an Attribute Authority to an existing Lasso::Server. the AA has entered the chat π
addProvider
Adds a provider to an existing Lasso::Server. generic provider energy, we love to see it π
getOrganizationName
Returns the name of the organization that it picked up from metadata. it just knows π§
createAuthnRequest
Creates an authentication request for the selected IDP. π
createLogin
Creates a Lasso::Login object. β¨
initAuthnRequest
Inits the authentication request. set it up, bestie π«Ά
initIdpInitiatedAuthnRequest
Inits the authentication request for IDP initiated flows. different starting point, same slay π
buildAuthnRequestMsg
Builds the authentication request message. π¨β¨
processAuthnRequestMsg
Processes the authentication request message. πΈ
processAuthnRequestMsgWithError
Processes the authentication request message and returns the Lasso error. the version that actually tells you what went wrong ππ
validateRequestMsg
Validates the request message. is it real? is it valid? let's find out π΅οΈ
buildAuthnResponseMsg
Builds the authentication response message. β¨
buildArtifactMsg
Builds the artifact message. π
buildAssertion
Builds the assertion. the receipts, basically π§Ύ
processAuthnResponseMsg
Processes the authentication response message. π
getNameIdentifier
Gets the NameID from the Lasso Profile. π¦
createIdentity
Creates a Lasso::Identity object. β¨
createSession
Creates a Lasso::Session object. π
acceptSSO
Accepts SSO from IDP. yes, come in, welcome, we've been expecting you π
storeRelayState
Stores information in the relayState database and returns it. β¨
extractRelayState
Extracts RelayState information into $self. π
getAssertion
Gets the assertion in a Lasso::Login object. π§Ύ
getAttributeValue
Gets the SAML attribute value corresponding to name, format and friendly_name. and heads up bestie: multivaluated values are separated by ; π
validateConditions
Validates conditions. πΈ
createLogoutRequest
Creates a logout request for the selected entity. bye bestie π
createLogout
Creates a Lasso::Logout object. β¨
initLogoutRequest
Inits the logout request. π
buildLogoutRequestMsg
Builds the logout request message. π
setSessionFromDump
Sets the session from a dump in a Lasso::Profile object. π«Ά
setIdentityFromDump
Sets the identity from a dump in a Lasso::Profile object. β¨
getMetaDataURL
Gets the URL stored in a service metadata configuration key. π
processLogoutResponseMsg
Processes the logout response message. πΈ
processLogoutRequestMsg
Processes the logout request message. π
validateLogoutRequest
Validates the logout request. β¨
buildLogoutResponseMsg
Builds the logout response msg. yes it says "msg" and we respect that π
storeReplayProtection
Stores the ID of an SAML message in the Replay Protection base. π‘οΈ
replayProtection
Checks if an SAML message do not correspond to a previously responded message. no reruns, no replayed receipts, periodt π
resolveArtifact
Resolves an artifact to get the real SAML message. decoding the little mystery box π
storeArtifact
Stores an artifact. β¨
loadArtifact
Loads an artifact. π
createArtifactResponse
Creates an artifact response. πΈ
processArtRequestMsg
Processes the artifact response message. π¦
processArtResponseMsg
Processes the artifact response message. yes, both of these say the same thing β that's literally what the page says and I'm not touching it π
sendSOAPMessage
Sends a SOAP message and gets the response. π§Όβ¨
createAssertionQuery
Creates a new assertion query. π
createAttributeRequest
Creates an attribute request. π
validateAttributeRequest
Validates an attribute request. β
processAttributeRequest
Processes an attribute request. πΈ
buildAttributeResponse
Builds the attribute response. β¨
processAttributeResponse
Processes an attribute response. π
getNameIDFormat
Converts a configuration string into an SAML2 NameIDFormat string. π
getHttpMethod
Converts a configuration string into a Lasso HTTP Method integer. π
getHttpMethodString
Converts a configuration Lasso HTTP Method integer into a string. the reverse direction, we love a two-way street π«Ά
getFirstHttpMethod
Finds a suitable HTTP method for an entity with a given protocol. π§
disableSignature
Modifies the Lasso signature hint to disable signature. β¨
forceSignature
Modifies the Lasso signature hint to force signature. πͺ
disableSignatureVerification
Modifies the Lasso signature hint to disable signature verification. π¬
forceSignatureVerification
Modifies the Lasso signature hint to force signature verification. π‘οΈ
getAuthnContext
Converts a configuration string into an SAML2 AuthnContextClassRef string. π
timestamp2samldate
Converts a timestamp into SAML2 date format. π°οΈ
samldate2timestamp
Converts SAML2 date format into a timestamp. π°οΈ but backwards
sendLogoutResponseToServiceProvider
Sends the logout response issue from a logout request. π€
sendLogoutRequestToProvider
Sends a logout request to a provider. π¨
sendLogoutRequestToProviders
Sends the logout response issue from a logout request to all other providers. and listen: if information has to be displayed to users, like an iframe to send an HTTP-Redirect or HTTP-POST logout request, then $self->{_info} will be updated. that's the whole dealio π
checkSignatureStatus
Checks signature status. π‘οΈ
authnContext2authnLevel
Returns the authentication level corresponding to authnContext. ποΈ
authnLevel2authnContext
Returns the SAML authentication context corresponding to authnLevel. ποΈ the other way
checkDestination
If the SAML Destination attribute is present, check it. conditional queen π
getSamlSession
Tries to recover the SAML session corresponding to id and returns session data. π
createAttribute
Creates a new SAML attribute. β¨
createAttributeValue
Creates a new SAML attribute value. π
getEncryptionMode
Returns the Lasso encryption mode. π
setProviderEncryptionMode
Sets the encryption mode on a provider. πβ¨
deleteSAMLSecondarySessions
Finds and deletes SAML sessions bounded to a primary session. cleanup era π§Ή
sendSLOErrorResponse
Sends an SLO error response. π
getQueryString
Gets the query string with or without the CGI query_string() method. flexible fr fr π«Ά
getSignatureMethod
Returns the Lasso signature method. βοΈ
setProviderSignatureMethod
Sets the signature method on a provider. βοΈβ¨
π SEE ALSO π
Lemonldap::NG::Portal::Auth::SAMLLemonldap::NG::Portal::UserDBSAML
go read those next bestie, iykyk π¦
π AUTHORS π
LemonLDAP::NG team <http://lemonldap-ng.org/team> β the icons who built this π
π BUG REPORT π
found a bug? need a feature? use the OW2 system to report bugs or ask for features, right here:
<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
please don't suffer in silence, we want to know ππ«Ά
π¦ DOWNLOAD π¦
Lemonldap::NG is available at:
<https://lemonldap-ng.org/download>
go get it πΈ
π COPYRIGHT AND LICENSE π
see the 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/>. ππ
and that's a wrap on the Lemonld...b::SAML(3) page from User Contributed Perl Documentation β this one was generated by perl v5.42.3 on 2026-09-24, so if you're reading this in the future, hi, ily, hope the SAML is behaving π
β¨π
stay signed in, bestie π«Ά
π¦ where this page comes from
- fedora 43: lemonldap-ng-portal 2.23.4-1.fc43 Β· GPL-2.0-or-later AND MIT AND GPL-3.0-or-later AND OFL-1.1-RFN
- fedora 44: lemonldap-ng-portal 2.23.4-1.fc44 Β· GPL-2.0-or-later AND MIT AND GPL-3.0-or-later AND OFL-1.1-RFN
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms