Lemonldap::NG::Portal::Lib::OpenIDConnect(3pm)

NAME
Lemonldap::NG::Portal::Lib::OpenIDConnect - Common OpenIDConnect functions

SYNOPSIS
use Lemonldap::NG::Portal::Lib::OpenIDConnect;

DESCRIPTION
This module contains common methods for OpenIDConnect authentication and user information loading

METHODS

  loadOPs
Load OpenID Connect Providers and JWKS data

  loadRPs
Load OpenID Connect Relying Parties

  refreshJWKSdata
Refresh JWKS data if needed

  getRP
Get Relying Party corresponding to a Client ID

  getCallbackUri
Compute callback URI

  buildAuthorizationCodeAuthnRequest
Build Authentication Request URI for Authorization Code Flow

  buildAuthorizationCodeAuthnResponse
Build Authentication Response URI for Authorization Code Flow

  buildImplicitAuthnResponse
Build Authentication Response URI for Implicit Flow

  buildHybridAuthnResponse
Build Authentication Response URI for Hybrid Flow

  getAuthorizationCodeAccessToken
Get Token response with authorization code

  checkTokenResponseValidity
Check validity of Token Response

  getUserInfo
Get UserInfo response

  decodeJSON
Convert JSON to HashRef

  newAuthorizationCode
Generate new Authorization Code session

  newAccessToken
Generate new Access Token session

  newRefreshToken
Generate new Refresh Token session

  getAuthorizationCode
Get existing Authorization Code session

  getAccessToken
Get existing Access Token session

  getRefreshToken
Get existing Refresh Token session

  getOpenIDConnectSession
Try to recover the OpenID Connect session corresponding to id and return session

  storeState
Store information in state database and return

  extractState
Extract state information into $self

  extractJWT
Extract parts of a JWT

  verifyJWTSignature
Check signature of a JWT

  verifyHash
Check value hash

  createHash
Create Hash

  returnBearerError
Return Bearer error

  getEndPointAuthenticationCredentials
Get Client ID and Client Secret

  getEndPointAccessToken
Get Access Token

  getAttributesListFromClaim
Return list of attributes authorized for a claim

  buildUserInfoResponseFromId
Return Hash of UserInfo data from session ID

  buildUserInfoResponse
Return Hash of UserInfo data from session object

  createJWT
Return JWT

  createIDToken
Return ID Token

  getFlowType
Return flow type

  getIDTokenSub
Return sub field of an ID Token

  getJWTJSONData
Return payload of a JWT as Hash ref

  key2jwks
Return JWKS representation of a key

  buildLogoutRequest
Build Logout Request URI

  buildLogoutResponse
Build Logout Response URI

  addRouteFromConf
Build a Lemonldap::NG::Common::PSGI::Router route from OIDC configuration attribute

  validatePKCEChallenge
Validate PKCE code challenge with given code challenge method

SEE ALSO
Lemonldap::NG::Portal::AuthOpenIDConnect, Lemonldap::NG::Portal::UserDBOpenIDConnect

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 <http://forge.objectweb.org/project/showfiles.php?group_id=274>

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