Skip to content

Shibboleth accounts email, netid and idp

Jozef M edited this page Apr 7, 2017 · 11 revisions

The functionality

For more details about federated logins (Shibboleth) visit the linked page, what's important in this section is that Shibboleth adds user's attributes into the http request headers.

EPerson (class that represents users in clarin-dspace) requires an email and emails must be unique (no two epersons can have the same email).

With default settings, federated users are autoregistered (automatically created). The process of search/creation is described below.

Searching

Firstly, finding an eperson is done using "netid" (that's also a database column name). The value is either eppn[idp] or eptid[idp] (eptid is equal to persistent-id in this context) where eppn and _eptid _ are attributes sent by IdPs and idp is the entityid of an IdP. If no user is found using "netid", mail attribute is tried (see note1 below). If successful, it might "assign" a shibboleth identity to a previously created local account.

Attributes in the user profile (fname/lname) are updated from the attributes sent by IdPs.

note1

The search by email can find an eperson that already has a "netid" but the netid is different to the current one. Usually this means that user has an account with multiple IdPs and is using a different organization than the last time. But there are also IdPs that let you create an account without even verifying your email (we block these, see https://lindat.mff.cuni.cz/en/how-do-i-sign-up). An error is shown to the user saying to either use the same IdP as the last time and/or to contact the administrators of clarin-dspace. Administrators can reset the netid with a button click in the user profile (Access Control -> People...) if there are reasons for that.

Creation

If still no eperson found (but we have at least one of those attributes), eperson is created. If the newly created eperson has no email, display a form to fill it. User shouldn't be able to login until he verifies the email.

No attributes released

If neither of the attributes is present, display error message asking the user to write an email.

Clone this wiki locally