Hi Nick,
OrangeHRM Opensource doesn't support SAML. But it's possible to implement this by using SimpleSAMLphp library.
https://simplesamlphp.org
Please follow their guides to implement the SAML facility.
In order to check how you can integrate with SAML user attributes with OrangeHRM user please refer to the following files in OrangeHRM code base. Example code is from OpenID Plugin which is currently available in OrangeHRM.
openIdCredentialsAction.class.php => https://github.com/orangehrm/orangehrm/blob/master/symfony/plugins/orangehrmOpenidAuthenticationPlugin/modules/openidauth/actions/openIdCredentialsAction.class.php
OpenIdAuthProvider.php => https://github.com/orangehrm/orangehrm/blob/master/symfony/plugins/orangehrmOpenidAuthenticationPlugin/lib/authproviders/OpenIdAuthProvider.php
The following are the basic steps for you to refer to.
1. Initiate the communication with SAML IDP => check SimpleSAMLphp documentation for more details.
2. Once the login success with IDP and response to back to OrangeHRM
2.1 Read the SAML user attributes => check SimpleSAMLphp documentation for more details.
2.2 Pick the user name from SAML user attributes.
2.3 call OpenIDService::setOpenIdCredentials method by passing user name and additional attributes that you need to track. It should return true for a valide user name.
Refer https://github.com/orangehrm/orangehrm/blob/master/symfony/plugins/orangehrmOpenidAuthenticationPlugin/lib/authproviders/OpenIdAuthProvider.php, from line number 47.
$success = $this->getOpenIdService()->setOpenIdCredentials($username, $dataArray);
2.4 Once this is done redirect to pim/viewMyDetails page.
Refer https://github.com/orangehrm/orangehrm/blob/master/symfony/plugins/orangehrmOpenidAuthenticationPlugin/modules/openidauth/actions/openIdCredentialsAction.class.php, showFlashMessage method.
$this->redirect('pim/viewMyDetails');