Single Sign On (Shibboleth) OPAC integration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Evergreen OPAC can now be used as a Service Provider (SP) in a Single Sign On infrastructure. This allows system administrators to connect the Evergreen OPAC to an identity provider (IdP). Such a scenario offers significant usability improvements to patrons: * They can use the same, IdP-provided login screen and credentials that they use for other applications (SPs). * If they have already logged into another participating application, when they arrive at the Evergreen OPAC, they can be logged in without needing to enter any credentials at all. * Evergreen can be configured to offer a Single Sign-out service, where logging out of the Evergreen OPAC will also log the user out of all other SPs. It can also offer security benefits, if it enables a Shibboleth-enabled Evergreen installation to move away from insecure autogenerated user passwords (e.g. year of birth or last four digits of a phone number). Different Org Units can use different IdPs. This development also supports a mix of Shibboleth and non-Shibboleth libraries. Note that only the OPAC can be integrated with Shibboleth at this time; no such support exists for the staff client, self-check, etc. Also note that this development does not include automatic provisioning of accounts. At this time, matching accounts must already exist in Evergreen for a patron to successfully authenticate into the OPAC via Single Sign On. Installation ++++++++++++ Installing and configuring Shibboleth support is a complex project. In broad strokes, the process includes: . Installing Shibboleth and the Shibboleth Apache module (`apt install libapache2-mod-shib2` on Debian and Ubuntu) . Configuring Shibboleth, including: * Setting up a certificate * assigning an Entity ID * getting metadata about the IdP from the IdP (perhaps "locally maintained metadata", where an XML file from the IdP is copied into place on your Evergreen server) * Understanding what attributes the IdP will provide about your users, describing those in the `attribute-map.xml` file. . Providing your Entity ID, information about possible bindings, and any other requested information to the IdP administrator. Much of this information will be available at http://YOUR_EVERGREEN_DOMAIN/Shibboleth.sso/Metadata . Configuring Apache, including: * Enabling shibboleth authentication in the `eg_vhost.conf` file * (Optional) Using the new _sso_loc_ Apache variable to identify which org unit should be used as the context location when fetching Shibboleth-related library settings. . As a user with the new _SSO_ADMIN_ permission, configure Evergreen using the Library Settings Editor, including: * Enable Shibboleth SSO for the OPAC * (Optional) Configure whether you will use SSO exclusively, or offer patrons a choice between SSO and standard Evergreen authentication * (Optional) Configure whether or not you will use Single Log Out * (Optional) In scenarios where a single Evergreen installation is connected to multiple IdPs, assign org units to the relevant IdPs, referenced by the IdP's Entity Id. * Of the attributes defined in `attribute-map.xml`, configure which one should be used to match users in the Evergreen database. This defaults to uid. * For the attribute you chose in the previous step, configure which Evergreen field it should match against. Options are usrname (default), barcode, and email. This https://www.youtube.com/watch?v=SvppXbpv-5k[video on the SAML protocol] can be very helpful for introducing the basic concepts used in the installation and configuration processes.