Authentication With Single Sign-On (SSO)

Uyuni supports single sign-on (SSO) by implementing the Security Assertion Markup Language (SAML) 2 protocol.

Single sign-on is an authentication process that allows a user to access multiple applications with one set of credentials. SAML is an XML-based standard for exchanging authentication and authorization data. A SAML identity service provider (IdP) provides authentication and authorization services to service providers (SP), such as Uyuni. Uyuni exposes three endpoints which must be enabled for single sign-on.

SSO in Uyuni supports:

  • Log in with SSO.

  • Log out with service provider-initiated single logout (SLO), and Identity service provider single logout service (SLS).

  • Assertion and nameId encryption.

  • Assertion signatures.

  • Message signatures with AuthNRequest, LogoutRequest, and LogoutResponses.

  • Enable an Assertion consumer service endpoint.

  • Enable a single logout service endpoint.

  • Publish the SP metadata (which can be signed).

SSO in Uyuni does not support:

  • Product choosing and implementation for the identity service provider (IdP).

  • SAML support for other products (check with the respective product documentation).

For an example implementation of SSO, see Example SSO Implementation.

If you change from the default authentication method to single sign-on, the new SSO credentials apply only to the Web UI. Client tools such as mgr-sync or spacecmd will continue to work with the default authentication method only.

Prerequisites

Before you begin, you need to have configured an external identity service provider with these parameters. Check your IdP documentation for instructions.

Your IdP must have a SAML:Attribute containing the username of the IdP user domain, called uid. The uid attribute passed in the SAML:Attribute must be created in the Uyuni user base before you activate single sign-on.

You will need these endpoints:

After the authentication with the IdP using the user orgadmin is successful, you will be logged in into Uyuni as the orgadmin user, provided that the orgadmin user exists in Uyuni.

Enable SSO

Using SSO is mutually exclusive with other types of authentication: it is either enabled or disabled. SSO is disabled by default.

Procedure: Enabling SSO
  1. If your users do not yet exist in Uyuni, create them first.

  2. Edit /etc/rhn/rhn.conf and add this line at the end of the file:

    java.sso = true
  3. Find the parameters you want to customize in /usr/share/rhn/config-defaults/rhn_java_sso.conf. Insert the parameters you want to customize into /etc/rhn/rhn.conf and prefix them with java.sso. For example, in /usr/share/rhn/config-defaults/rhn_java_sso.conf find:

    onelogin.saml2.sp.assertion_consumer_service.url = https://YOUR-PRODUCT-HOSTNAME-OR-IP/rhn/manager/sso/acs

    To customize it, create the corresponding option in /etc/rhn/rhn.conf by prefixing the option name with java.sso.:

    java.sso.onelogin.saml2.sp.assertion_consumer_service.url = https://YOUR-PRODUCT-HOSTNAME-OR-IP/rhn/manager/sso/acs

    To find all the occurrences you need to change, search in the file for the placeholders YOUR-PRODUCT and YOUR-IDP-ENTITY. Every parameter comes with a brief explanation of what it is meant for.

  4. Restart the spacewalk service to pick up the changes:

    spacewalk-service restart

When you visit the Uyuni URL, you will be redirected to the IdP for SSO where you will be requested to authenticate. Upon successful authentication, you will be redirected to the Uyuni Web UI, logged in as the authenticated user. If you encounter problems with logging in using SSO, check the Uyuni logs for more information.