re:ADM kan betale seg selv på ett år. Bestill innen 18. desember og få 20% rabatt www.identum.no/re-adm

Adding a SAML 2.0 Identity Provider to eAdm

Overview

This page is how to add a SAML 2.0 identity provider.

eAdm is the SAML service provider. The customer gives eAdm their identity provider's metadata. eAdm gives back one service-provider metadata document. Users start at the eAdm login page. eAdm accepts the response only when eAdm asked for that sign-in.

Item

Detail

Bindings eAdm accepts from the identity provider

HTTPS. HTTP-Redirect is used for sign-in when the metadata lists it. Otherwise HTTP-POST.

Response binding

HTTP POST only. HTTP-Redirect is not used for this callback, and HTTP-Artifact is not supported.

Identifiers

One only: UPN, email, or national ID

Single logout

Supported, from eAdm and from the identity provider

Sign-in started at the identity provider

Rejected. The user starts on the eAdm login page.

Encrypted assertions

Not supported. A response that encrypts the assertion is rejected.


Add a SAML provider

On the customer, open Single Sign-On and add a provider. Choose SAML 2.0.

Connection

  1. Enter a display name. This is the login-button text. Example: Fableton AD FS.

  2. Copy the service-provider metadata URL or download the file, and import it at the identity provider. eAdm signs the sign-in request and the logout request with a certificate in the service-provider metadata. The metadata URL on the tab is public. The identity provider, or a browser on an admin machine, must be able to open it if you subscribe to the URL instead of importing a file.

  3. Provide the identity provider metadata in one of two ways:

  • URL. An absolute <https://> address, at most 1000 characters, with no username or password in the URL. The host must be publicly reachable. Private, loopback, and link-local addresses are rejected.

  • File. The metadata XML, at most 256 KB. Use a file when the metadata URL is internal.

  1. Wait until eAdm shows the parsed entity ID, sign-in URL, and signing certificate. You cannot continue without a successful parse.

eAdm reads the entity ID, the sign-in URL, the logout URL, the NameID format, and the signing certificates. An encryption certificate in the file is ignored. A sign-in or logout URL that is not HTTPS is ignored. The signing certificates shown here come from the metadata. To replace them, upload new metadata or refresh from the URL. There is no separate certificate upload.

The same entity ID cannot be added twice on one customer.

If you save a public metadata URL, eAdm refreshes that document about once a day, and about once an hour during the last day before the metadata expiry. A failed refresh keeps the metadata already stored. If the metadata has an expiry, there is no refresh URL, and that date has passed, sign-in stops until you upload a new file.

Security

Setting

Default

Range

Require a signed assertion

On

Leave this on unless the identity provider cannot sign the assertion.

Require a signed response

Off

Turn on when the identity provider signs the response and you want that check.

Clock skew

5 minutes

0 to 5 minutes. This is how far the identity provider's clock may differ when eAdm checks the assertion lifetime.

eAdm does not decrypt assertions. The certificate in the service-provider metadata is for signing requests. If the identity provider encrypts the assertion, sign-in fails.

Attributes

Map one claim to one eAdm field.

eAdm field

What happens at sign-in

UPN

The claim value is compared with UPN and email on active users in this company. Exactly one user must match. Two matches fail the sign-in.

Email

Same lookup as UPN. Exactly one user must match.

National ID

The claim value must equal the national ID stored on the user, in the same format. When more than one active user has that number, eAdm shows a page where the person chooses which user profile to open.

UPN and email use the same lookup. A value that matches one user's email and another user's UPN is two users, and sign-in fails.

The claim box lists attribute names found in the metadata. You can also type a claim URI that the metadata does not list. The identity provider must actually send that claim.

To use the SAML subject (NameID) as the identifier, type nameid. That is accepted only when the metadata NameID format is email or unspecified. A persistent NameID is an opaque value that eAdm cannot use to look up a user. A transient NameID changes every sign-in. Neither can be the identifier.

NameID is still required for single logout, even when the identifier is a different claim. Logout needs one NameID. It does not have to be the claim that finds the user.

National ID is sensitive. Use UPN or email unless the customer has a reason to release the national ID.

Save, enable, and role

Save stores the provider turned off. It stays off the login page until you enable it from the list. Leave it off and run Test on Single Sign-On first, so a failed setup is not offered to users. The test is described in Testing .

Open an enabled provider to choose Primary or Secondary. Primary is available only while the provider is enabled. Primary makes SAML the company's main sign-in method, so these buttons are listed first.

When several SAML providers are enabled, the primary one is listed first among them. The others follow by display name.

While SAML is the primary method, the last enabled SAML provider cannot be turned off or deleted. Choose another primary method first.


Sign-in and sign-out

Sign-in

  1. The user opens the eAdm login page and chooses the provider's display name.

  2. eAdm redirects the browser to the identity provider.

  3. The identity provider posts the SAML response back to the assertion consumer URL.

  4. eAdm checks that this response answers the request it just sent, checks the signature against the stored signing certificates, and reads the one mapped identifier.

  5. UPN or email: one matching user opens eAdm as that user. No match, or two matches, fails the sign-in.

  6. National ID: one matching user opens eAdm as that user. Several matching users see a page that lists those profiles. They choose one, and eAdm opens that profile. The other matches are signed out.

A sign-in that the user started at the identity provider, with no matching request from eAdm, is rejected.

Sign-out started in eAdm

Signing out of eAdm ends the eAdm session first. When the identity provider metadata has a logout URL, eAdm then sends the browser there with a logout request. The identity provider posts the logout response back, and the browser lands on the eAdm signed-out page. When the metadata has no logout URL, eAdm returns straight to the signed-out page.

The assertion from the current sign-in must contain one NameID and a session index. Add or change that rule at the identity provider, then sign in again. Older sessions do not gain a NameID afterwards.


Sign-out started at the identity provider

The identity provider sends a logout request to the single-logout URL in the eAdm metadata. eAdm ends the matching session and returns a logout response. A request that matches no session still gets a success response. It does not start a sign-in.


Testing

Test on the provider row runs in its own window. It is a short-lived session that does not replace an eAdm session you already have.

eAdm matches the user and then ends that test session in eAdm. When the identity provider metadata includes a logout URL, and the assertion has one NameID, eAdm also sends a logout for that same test session to the identity provider. The row reports success only after that logout completes. Without a logout URL, eAdm still ends its own test session, but it cannot end the session at the identity provider, and the test reports failure.

The admin test reports failure when the user was found but logout could not finish. That happens when the metadata has no logout URL, or the assertion has no NameID. Fix that, then try again. A popup blocker also fails the test.


Troubleshooting

Symptom

Likely cause

Action

Metadata URL is rejected

The URL is not public HTTPS, includes a username, or the host is private, loopback, or link-local

Upload the XML file instead. Use a URL only when eAdm's servers can fetch it on the public internet.

Parse fails or the file is refused

The XML is not SAML metadata, or it is larger than 256 KB

Export the identity provider's federation metadata again. Upload the public metadata only, never a private key or a PFX.

Login button is missing

The provider is disabled

Enable the provider.

Identity provider accepts the user, eAdm does not find them

The claim URI or the value does not match, or two users match a UPN or email value

Compare the issued claim with the user field. For UPN and email, exactly one user may match across both fields.

Test says the user was not found

No active user in this company has that identifier

Compare the claim value with the user in this company.

Several accounts share a national ID

More than one active account has that ID

The person chooses a profile on the sign-in page. That is expected.

Test fails after a successful sign-in at the identity provider

No logout URL in the metadata, or the assertion has no single NameID

Add a logout endpoint to the metadata and one NameID rule. Sign in again.

Sign-in fails and the assertion is encrypted

The identity provider encrypted the assertion

eAdm has no decryption setting. Stop encrypting assertions for this relying party, and import the current eAdm metadata.

Sign-in fails around the assertion time

Clocks differ by more than the configured skew

Set skew up to 5 minutes, or correct the identity provider clock.

Sign-in stops after a metadata expiry date

The stored metadata is expired and there is no working refresh URL

Upload current metadata, or set a public metadata URL.

Logout ends eAdm only

The identity provider metadata has no logout service, or the identity provider is missing the eAdm logout endpoint

Re-import both metadata files. Confirm one NameID and a session index on a new sign-in.

Signing out of the identity provider leaves eAdm signed in

The identity provider did not send a SAML logout request, or the session was created before the NameID rule

Use the identity provider's SAML sign-out. Confirm it has the eAdm logout endpoint.


Certificate changes

Identity provider signing certificate. When the public metadata URL is set, eAdm refreshes it. When you use a file, download new metadata before the old signing certificate expires and upload it to the same provider. eAdm keeps every signing certificate from the file and will accept an assertion signed by any of them, which covers a rollover period.

eAdm request-signing certificate. When the service-provider panel shows a rollover, download the current metadata and update the identity provider before eAdm signs with the new certificate. Leave the previous public key in place until eAdm drops it.


Go-live checklist

  • Metadata parses and shows the entity ID, sign-in URL, and a current signing certificate
  • Public metadata URL saved only when eAdm can fetch it; otherwise a file, and a reminder to re-upload before certificate expiry
  • One claim mapped to UPN, email, or national ID
  • NameID issued for logout, one value, on a new sign-in
  • Provider enabled, and primary or secondary set
  • Service-provider metadata imported at the identity provider
  • The identity provider is not encrypting assertions
  • Admin test succeeds
  • Sign-in from the eAdm login page opens the expected user
  • Sign-out from eAdm and from the identity provider both end the eAdm session

Fableton Municipality (org NO999000001) is fictional.

Last updated: