Summary
This Step by Step Guide covers the installation of PhenixID SAML SP Filter for Password Self Service. The SAML SP filter is used in scenarios where the PSS users should be authenticated on an external SAML Identity Provider.
System Requirements
- NordicEdge/PhenixID Password Self Service 4.8 or above
- SAML Identity Provider Metadata available (file or URL)
Instruction
Download the software
Click the link to download installation files and documentation.
About the SAML SP Filter
- Supports POST-binding only.
- SingleSignOnServer location with POST binding must be available in IdP Metadata.
- SAML authnRequests will always be distributed using the HTTP-POST binding.
Installation of SAML SP
- Make sure the service Password Self Service is stopped.
- Unzip samlsp.zip (or untar samlsp.tgz on Linux) to <pss_installation_folder_root>. (This will create the file <pss_installation_folder_root>/webapps/samlsp.war and the <pss_installation_folder_root>/endorsed/ dir including a set of jar-files.)
- Start Password Self Service. (Password Self Service will now extract <pss_installation_folder_root>/webapps/samlsp.war to <pss_installation_folder_root>/webapps/samlsp/.)
- Start a browser and point it to https://<hostname>/samlsp. The SAML SP should now present a status message.
- Add samlspcommon.jar and samlspfilter.jar to Password Self Service lib directory (<pss_installation_folder_root>/webapps/phenixid/WEB-INF/lib)
Configuration of SAML SP
- Open <pss_installation_folder_root>/webapps/samlsp/WEB-INF/nesp.properties.
- Open the SAML Identity Provider Metadata and fetch the entityID value.
- Add your idp. Set entityid to the value fetched in previous step.
idp.1.entityid=<idp_entityID> idp.1.metadata.url=<idp_metadata_url>
Example:
idp.1.entityid=https://cstraining.local/idp idp.1.metadata.url=http://cstraining.local:8080/authenticate/startAuth?getIDPMeta
- Add your SP.
sp.1.entityid=<entityid_of_ppss> sp.1.contextpath=https://<ppss_server_domain>:<ppss_server_port>/ppss/ sp.1.idp.entityid=<idp_entityID>
Example:
sp.1.entityid=pss-sp sp.1.contextpath=http://im.local:8098/ppss/ sp.1.idp.entityid=https://cstraining.local/idp
- Restart Password Self Service
Configuration of SAML Identity Provider
Get PSS SAML SP metadata: https://<ppss_server_domain>:<imppssserver_port>/samlsp/metadata/1
Example:
http://ppss.local:8098/samlsp/metadata/1
Set up trust to the PPSS SAML SP on the SAML Identity Provider.
Configuration instructions for the SAML Identity Provider is not provided in this document.
Configuration of Password Self Service
Add filtering rules to web.xml
- Open <im_installation>/webapps/phenixid/WEB-INF/web.xml
- Add xml (within <web-app> tag):
<listener> <listener-class>se.nordicedge.sp.plugin.SamlSpFilter</listener-class> </listener> <filter> <filter-name>SamlSpFilter</filter-name> <filter-class>se.nordicedge.sp.plugin.SamlSpFilter</filter-class> <init-param> <param-name>entityid</param-name> <param-value><entityid_of_pss></param-value> </init-param> <init-param> <param-name>backend-url</param-name> <param-value><backend-url></param-value> </init-param> </filter> <filter-mapping> <filter-name>SamlSpFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Change <entityid_of_pss> to the value defined in nesp.properties.
Change <backend-url> to http://127.0.0.1:<tomcat-http-port>/samlsp/backendExample:
<listener> <listener-class>se.nordicedge.sp.plugin.SamlSpFilter</listener-class> </listener> <filter> <filter-name>SamlSpFilter</filter-name> <filter-class>se.nordicedge.sp.plugin.SamlSpFilter</filter-class> <init-param> <param-name>entityid</param-name> <param-value>pss-sp</param-value> </init-param> <init-param> <param-name>backend-url</param-name> <param-value>http://127.0.0.1:8098/samlsp/backend/</param-value> </init-param> </filter> <filter-mapping> <filter-name>SamlSpFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Add parameter to dseditor.properties
The SAML SP will convert SAML2 assertion attributes to header values. The header value will be used by PPSS to perform the lookup against LDAP. The SAML SP will name the headers like this:
SAML Attribute Name -> Header name
nameid -> nesp.nameid
givenName -> nesp.givenNamex -> nesp.x
- Open <im_installation>/webapps/ppss/WEB-INF/NEIDMgmt/dseditor.properties
- Add parameter. The value match the Header name where the userid is found (see above).
SERVLET_SSO_HEADER=<Header name>
Example:
SERVLET_SSO_HEADER=nesp.nameid
- Add url to redirect the user to in case of errors.
SERVLET_SSO_REDIRECT=<url_to_error_page>
Example:
SERVLET_SSO_REDIRECT=http://ppss.local:8098/ppss/jsp/custom/errors/ssoerror.jsp
Test
- Browse to https://<ppss_server_domain>:<ppss_port>/ppss/NEIDMgmt
- Browser should redirect to IdP for authentication
- Autentication on the IdP
- SAML assertion sent to PSS SAML SP
- User is logged in
Logout
Add this to DSEditor.properties to perform a logout. This will destroy the SP session and redirect the browser to redirecturl. In this example, the webapp name is ppss.
LOGOFFURI=/ppss/neagent/sp/logout?redirecturl=https://<your_idp>/<logout_uri>
Advanced configuration
For all available configuration settings and an overview of PhenixID SAML SP filter, pls view the documents in the installation zip.
DISCLAIMER
Information provided in this document is for your information only. PhenixID makes no explicit or implied claims to the validity of this information. Any trademarks referenced in this document are the property of their respective owners.The origin of this information may be internal or external to PhenixID. PhenixID makes all reasonable efforts to verify this information.
PhenixID - support.phenixid.se