Path to function: Management > Connections > Add > ADFS

OpenAthens can connect to ADFS (Active Directory Federation Services) so that you do not have to issue personal accounts for your users (you will still need your OpenAthens administrator account).

As well as the ability to use local accounts instead of maintaining a separate set of credentials, accesses to federated resources that already involve discovery (identifying the users' home organisation) will take the user directly to your ADFS login.


Before you start you will need:

If you are migrating from an alternative IdP such as Shibboleth, also see: Migrating from your own IdP

If you're unsure about anything or get stuck, we're happy to help. Hit the support link in the top right of the admin area to get through to your local support guys.

Add the connection in OpenAthens

In the administration interface as the domain administrator, go to Management > Connections

(If you already have ADFS visible as a SAML connection, you will need to delete that connection before the system will allow you to add it back)

  1. Click the add button on the left and select ADFS

  2. Enter the ADFS metadata URL or upload the xml file as supplied by your IT team.

    1. The metadata URL is typically something like https://YOURDOMAIN/FederationMetadata/2007-06/FederationMetadata.xml and would need to be accessible outside of your network.

  3. Set the user identifier field to match the claim you will be sending as the user identifier. This can be changed later, but needs to have a value to save the page.

  4. Set the display name to match the claim you want to use - if you are only sending one claim, you can set this the same as the user identifier. Again this can be changed later, but needs to have a value to save the page.

  5. Do not set it as default at this time.

  6. Save changes

  7. Go to the relying party tab and make a note of the metadata address displayed there. You will need this when you add OpenAthens to ADFS.
The detail fields displayed are

Display name

The name of the connection as it will appear at our authentication point when there is a choice of connector. Defaults to the name specified in the ADFS metadata

Metadata URL

Where the ADFS metadata is published. Populated only when metadata is loaded from a URL, it allows easy updates to the connection if your ADFS system changes.


The entity identifier of your ADFS instance, typically http://YOURDOMAIN/adfs/services/trust. Drawn from the ADFS metadata.

SSO endpoint

The login address, typically https://YOURDOMAIN/adfs/ls/. Drawn from the ADFS metadata.
Display name attributeThe claim you specify here supplies the value displayed in account lists and audit where you would normally see the OpenAthens username. DisplayName is a common source but it does not have to be different from the Unique user attribute claim.
Unique user attribute

The claim you specify here must supply a value unique to the user within the current user set and should supply a pseudonymous value unique to that user for all time. This is used by the system to tell users apart and also used in the generation of targetedIDs and statistics. It does not have to be the username entered at your login point. ObjectGUID is a popular choice.


Not live = connection can only be used in debug mode. The visibility and default flags are ignored.

Live and visible (if this is the only local connection) = connection can only be used in debug mode.

Live and visible (if there are multiple live and visible connections) = users are offered a choice of connections, including this one. There is a domain preference to include OpenAthens accounts or not.

Live & visible & default = This is your only login option and users will be sent directly to your login whenever the organisation is known. A successful authentication will tell the authentication point to remember that location. A failed authentication will clear that setting. Debug mode will not show other login options.

Changes to the status usually take effect within moments.

Create local accounts

Automatically - any user authenticated by your system and passed back to us is deemed ok and will be accepted by the system

Manually - only user IDs you have previously uploaded via the list page will be accepted by our systems

Remove local accounts

Salt value

The salt used to generate a targetedID for users authenticated by this connection.

You might edit it if you were migrating from something like OpenAthens LA to MD so that your users can have the same targetedID value when they change systems. If you set it to blank the connection will use the same salt as your MD accounts.

Modifying this after you go live will change the identifiers seen by service providers for your users... which is rarely desirable.

Add OpenAthens as a relying party in ADFS

The following section assumes you are familiar with ADFS, If you are not, the next three steps have an alternative more detailed guide available.

  1. In your ADFS management console add a new relying party trust using the OpenAthens metadata address you recorded earlier 

  2. Edit claim rules to release at least a user identifier attribute.

    1. A simple 'Send LDAP Attributes as Claims' rule is sufficient. 

    2. The claim value must unique amongst current users and should ideally be pseudonymous and unique forever. Something like objectGUID would be a good choice.

    3. Naming considerations
      1. If you are unfamiliar with the ADFS name space, or want to provide more meaningful names for the interface your library colleagues will see, you may like to prefix the claim names with something such as 'oa_', e.g. 'oa_username', to avoid accidentally using reserved terms.
      2. Claim names may not contain spaces

  3. Save

Depending on your library's needs, this may be sufficient however you will usually want to release more information so that claims can be mapped to OpenAthens attributes and used for organisation, statistics, resource access, display names and resource allocation - e.g:

In all cases, the library will need the name of the claim for the next part of the set-up. Claim names are case sensitive.

Example Issuance transform rule:

AD will truncate sAMAccountName before release if it is over 20 characters. This may affect your choice of unique user attribute.

Configure mappings and permission sets

The final two areas to configure are permission set rules and attribute mappings:

When you're ready to go live, check both the live and visible boxes and then save. Your new connection should be testable a few seconds later.

The other tabs

Certificates - allows you to add a second certificate. Used when you need to change a server certificate on AD and want to minimise downtime for your users.

Advanced - Allows you to switch between SAML versions should you need to, and toggle signing of authentication requests (SHA-1 or SHA-256). Changes to the defaults are rarely necessary for this connection type.

Anything to watch out for?

When you use the refresh metadata button it will update everything in the connection with values from the metadata including endpoints, names and certificates. This will also undo any manual changes you have made on the advanced tab. The metadata URL can be removed to guard against this if you choose.

If for any reason you have locked your ADFS system down to use TLS versions earlier than 1.2, we're going to reject the connections and it won't work.


Pseudonymous identifiers are recommended for the unique user attribute to avoid potential problems with data protection legislation as that identifier will live on for a time in the audit trail after other mapped attributes are cleared.