digitoimistodude / avoine-sso-login
Integrate login to Avoine SSO.
Installs: 1 918
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 1
Open Issues: 1
Type:wordpress-plugin
pkg:composer/digitoimistodude/avoine-sso-login
This package is auto-updated.
Last update: 2025-11-29 03:31:13 UTC
README
Plugin integrates Avoine SSO to WordPress and creates an shadow user in WordPress for users that log in via SSO. Using object cache like Object Cache Pro, Redis Object Cache, memcahed or something similar as plugin leverages WP_Object_Cache class for SSO user activity checks is recommended.
Setup
Plugin uses few environment variables for configuration.
AVOINE_SSO_SERVICE_IDis the ID for SSOAVOINE_SSO_KEYis the communications key for SSO
Auth flow
Login
- User is sent to log in url get with
avoine_sso_get_login_urlfunction - From SSO service, user is redirected back to WP
- Existence for SSO user is checked
- User activity checks are done if added any via filters
- If user does not exist, new shadow WP user is created
- If user exists, shadow WP user details are updated
- User is redirected to url that was specified when getting login url, defaults to home
- Every two days, if not altered via hook, user activity is checked
Logout
- When logging out, user is sent to logout url by using
avoine_sso_get_logout_urlfunction - SSO service calls domain.fi/sso-logout which still has the WP shadow user logged in
- WP shadow user is logged out with default WP logout functions and actions
Functions
avoine_sso_get_login_urlreturns login url for SSO service. Accepts one parameter for redirect url, to which user will be redirected after succesfull login.avoine_sso_get_logout_urlreturns logout url for SSO service.avoine_is_sso_userreturns boolean based on if user loggedin from SSO. Accepts one parameter for WP user ID, defaults to current user if not given.avoine_is_sso_user_activereturns boolean based on if user is still active based on SSO data. Accepts one parameter for WP user ID, defaults to current user if not given. Caches the status in object cache (redis, memcached or similar).
Hooks
Setup
avoine_sso_login\service\iddefaults to AVOINE_SSO_SERVICE_ID environment variableavoine_sso_login\api\keydefaults to AVOINE_SSO_KEY environment variableavoine_sso_login\service\domaindefaults to tunnistus.avoine.fiavoine_sso_login\login\return_urldefaults to home (home_url) and overrides the value given for login url functionavoine_sso_login\logout\urldefaults to https://{$sso_service_domain}/sso-logout/avoine_sso_login\failed\redirect_urldefaults to WP login url
Auth flow
avoine_sso_login\logout\messagemessage shown in case SSO logout becomes visible for the user.avoine_sso_login\login\user_is_activewhen SSO user activity is checked during the lofgin, defaults to true. Gives activity status, SSO user and SSO user full data as parameters.
User creation
avoine_sso_login\user\create\user_loginallows filtering the user login for shadow WP user. Defaults to combination of unixtime and SSO user id. Gives default login, SSO user and SSO user full data as parameters.avoine_sso_login\user\createallows filtering all the data given for wp_insert_user function when creating shadow WP user. Gives SSO user and SSO user full data as parameters.
User data
avoine_sso_login\user\create\user_email\use_originalboolean setting if real user email from SSO data should be used also for WP shadow user. Defaults to false.avoine_sso_login\user\dataarray given to wp_insert_user and wp_update_user functions.avoine_sso_login\user\mapping_idallows chaning the unique identifier for SSO user againts which WP shadow user will be checked. Defults to $sso_user->idp. Gives the mapping id, SSO user and SSO user full data as parameters.
User activity
avoine_sso_login\user\is_activewhen avoine_is_sso_user_active function is called and activity status is not cached. Gives activity status, WP_User object, SSO user and SSO user full data as parameters.avoine_sso_login\user\is_active\expirationcache lifetime for user activity check. Stored in object cache. Defaults to two days or value of WP native filter auth_cookie_expiration.
Actions
Auth flow
avoine_sso_login\succes\auth\beforewhen SSO user has been rediceted back and their activity validated but WP user is not logged in. Get's WP_User object and SSO user data given by the redirect.avoine_sso_login\succes\auth\afterwhen SSO user has been rediceted back and their activity validated. Get's WP_User object and SSO user data given by the redirect.avoine_sso_login\logout\afterafter SSO service has called logout url and WP user logout has been done.avoine_sso_login\failedwhen SSO user login fails for some reason after caputing valid redirect from SSO login.avoine_sso_login\login\user_is_active\afterafter SSO user activity check has been done durign the login. Gives SSO user and SSO user full data as parameters.
User creation
avoine_sso_login\user\create\beforebefore new WP shadow user is created after succesfull SSO login. Gives SSO user and SSO user full data as parameters.avoine_sso_login\user\create\afterafter new WP shadow user is created. Gives new WP user ID, SSO user and SSO user full data as parameters.
User activity
avoine_sso_login\user\is_active\afterwhen avoine_is_sso_user_active function is called and activity status is not cached. Gives WP_User object and activity status as parameters.
User action preventions
avoine_sso_login\user\prevented_wp_loginwhen SSO user normal WP login is preventedavoine_sso_login\user\prevented_password_resetwhen SSO user WP password reset is preventedavoine_sso_login\user\prevented_password_reset\emailwhen SSO uset WP password reset email is prevented