Description
This plugin allows to authenticate users against GH Portal API with Authorization Flow.
Once installed, it can be configured to automatically authenticate users (SSO). After consent has been obtained, an existing user is automatically logged into WordPress, while
new users are created in WordPress database.
Plugin flow explained
When a user of your WordPress application visits one of your public pages, a check is done if a user session is currently set. When GH_Portal_SSO_Option_Settings::enforce_privacy
is set to TRUE
, the plugin will redirect the user from the public page to the Greenhouse Portal SSO page incase no active session was found. The default WordPress authorization check if performed when accessing any of the wp-admin
pages. This also allows to user to sign-in using either the Greenhouse account of their existing WordPress acount.
The following applies to any non wp-admin page request incase no user session is found:
The user will be redirected from the current page to the Greenhouse Portal, which acts a proxy between Auth0’s management system and Greenhouse’s Microsoft Identity (OpenID Connect) accounts, to perform it’s authentication through SSO.
A success SSO using the Greenhouse Portal results in an active access token that’s short lived (8 hours). The access token can be used to retrieve data on behalf of the user to which he/she has given consent.
The request for a redirect to the Greenhouse Portal requires a redirect_uri
as one of its query parameter. This is the URL to which the proxy should return the user’s access token. By default, the redirect URL is set to admin-ajax.php
in conjuction with admin_url and uses WordPress’ AJAX API to further handle the redirect flow.
`
Temperary Redirect
Location:
https://authorize.my.greenhousegroup.com/authorize
redirect_uri=<redirect/callback URL>
`
The above URL will initiate a SSO request to Auth0. Once the user has signed in, the Greenhouse Portal will redirect the user to the given URL in the redirect_uri
query parameter. The access token is passed through as a query parameter to the redirect url (e.g. ?GHP_authorization_token=xxxxxxxxxxxx
).
On successfull redirect, the access token is fetched from the query parameters. An additional request is made to the Greenhouse API to fetch the Greenhouse user information from the retrieved access token.
`
POST / HTTP/1.1
Host:
https://api.my.greenhousegroup.com/user
Headers:
Authorization=
x-api-version=
`
The Greenhouse user information is used to find an existing WordPress user. When no WordPress user was found, a new one can be automatically created when GH_Portal_SSO_Option_Settings::create_if_does_not_exist
is set to TRUE
on successfull sign-in.
After finding/creating the WordPress user, a session of 8 hours is created, the duration can be set by GH_Portal_SSO_Option_Settings::expires_in
using a numeric measured in seconds.
When no WordPress user account was found or can not be created, the user is redirected to the wp-admin sign-in page with the approriate error message (if any).
Installation
- Install from plugins page by name (Greenhouse Portal SSO) OR upload to the
/wp-content/plugins/
directory - Activate the plugin
- Configure the plugin settings to meet your needs
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Greenhouse Portal SSO” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Greenhouse Portal SSO” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.