Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Since many institutions and organizations have existing authentication systems, DSpace has been designed to allow these to be easily integrated into an existing authentication infrastructure. It keeps a series, or "stack", of authentication methods, so each one can be tried in turn. This makes it easy to add new authentication methods or rearrange the order without changing any existing code. You can also share authentication code with other sites.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b874bdf0-6f7f-43df-a626-d4dc36bbd589"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.PasswordAuthentication

...

However, to enable Authentication by Password, you must ensure the org.dspace.authenticate.PasswordAuthentication class is listed as one of the AuthenticationMethods in the following configuration:

Configuration File:

[dspace]/config/modules/authentication.cfg

Property:

plugin.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="94bb809b-15ce-4d01-8aaf-7ae37f520a26"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.PasswordAuthentication

...

A full list of all available Password Authentication Configurations:

Configuration File:

[dspace]/config/modules/authentication-password.cfg

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="8f3c3139-e3eb-4485-bf60-463ec5c6bae0"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication-password.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

domain.valid

Example Value:

domain.value = @mit.edu, .ac.uk

Informational Note:

This option allows you to limit self-registration to email addresses ending in a particular domain value. The above example would limit self-registration to individuals with "@mit.edu" email addresses and all ".ac.uk" email addresses.

Property:

login.specialgroup

Example Value:

login.specialgroup = My DSpace Group

Informational Note:

This option allows you automatically add all password authenticated users to a specific DSpace Group (the group must exist in DSpace) for the remainder of their logged in session.

...

To enable Shibboleth Authentication, you must ensure the org.dspace.authenticate.ShibAuthentication class is listed as one of the AuthenticationMethods in the following configuration:

Configuration File:

[dspace]/config/

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d2649e0e-2cd3-4b45-b453-b74ca2e906a8"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.ShibAuthentication

...

Info
titleAdditional Instructions

Detailed instructions for installing Shibboleth on DSpace 1.5.x may be found at https://mams.melcoe.mq.edu.au/zope/mams/pubs/Installation/dspace15.

Wiki MarkupOnce it has been enabled (see above), Shibboleth Authentication is configured via its own {{\[dspace\]/config/modules/authentication-shibboleth.cfg}} file.

DSpace requires an email address as the user's credentials. There are two ways of providing email to DSpace from Shibboleth:

...

A full list of all available Shibboleth Configurations:

...

Configuration File:

[dspace]/config/modules/authentication-shibboleth.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

email-header

Example Value:

email-header = MAIL

Informational Note:

The option specifies that the email comes from the mentioned header. This value is CASE-Sensitive.

Property:

firstname-header

Example Value:

firstname-header = SHIB-EP-GIVENNAME

Informational Note:

Optional. Specify the header that carries the user's first name. This is going to be used for the creation of new-user.

Property:

lastname-header

Example Value:

lastname-header = SHIB-EP-SURNAME

Informational Note:

Optional. Specify the header that carries user's last name. This is used for creation of new user.

Property:

email-use-tomcat-remote-user

Example Value:

email-use-tomcat-remote-user = true

Informational Note:

This option forces the software to acquire the email from Tomcat.

Property:

autoregister

Example Value:

autoregister = true

Informational Note:

Option will allow new users to be registered automatically if the IdP provides sufficient information (and the user does not exist in DSpace).

Property:

Code Block
role-header
role-header.ignore-scope

Example Value:

Code Block
role-header = Shib-EP-ScopedAffiliation
role-header.ignore-scope = true

or

Code Block
role-header = Shib-EP-UnscopedAffiliation
role-header.ignore-scope = false

Informational Note:

These two options specify which attribute that is responsible for providing user's roles to DSpace and unscope the attributes if needed. When not specified, it is defaulted to 'Shib-EP-UnscopedAffiliation', and ignore-scope is defaulted to 'false'. The value is specified in AAP.xml (Shib 1.3.x) or attribute-filter.xml (Shib 2.x). The value is CASE-Sensitive. The values provided in this header are separated by semi-colon or comma. If your service provider (SP) only provides scoped role header, you need to set role-header.ignore-Scope as 'true'. For example if you only get Shib-EP-ScopedAffiliation instead of Shib-EP-ScopedAffiliation, you name to make your settings as in the example value above.

Property:

default-roles

Example Value:

default-roles = Staff, Walk-ins

Informational Note:

When user is fully authN or IdP but would not like to release his/her roles to DSpace (for privacy reasons?), what should the default roles be given to such user. The values are separated by semi-colon or comma.

Property:

Code Block
role.Senior\ Researcher
role.Librarian

Example Value:

Code Block
role.Senior\ Researcher = Researcher, Staff
role.Librarian = Administrator

Informational Note:

The following mappings specify role mapping between IdP and Dspace. The left side of the entry is IdP's role (prefixed with 'role.') which will be mapped to the right entry from DSpace. DSpace's group as indicated on the right entry has to EXIST in DSpace, otherwise user will be identified as 'anonymous'. Multiple values on the right entry should be separated by comma. The values are CASE-Sensitive. Heuristic one-to-one mapping will be done when the IdP groups entry are not listed below (i.e. if 'X' group in IdP is not specified here, then it will be mapped to 'X' group in DSpace if it exists, otherwise it will be mapped to simply 'anonymous'). Given sufficient demand, future release could support regex for the mapping special characters need to be escaped by '\'

...

The values extracted (a user may have multiple roles) will be used to look up which groups to place the user into. The groups are defined as "authentication.shib.role.<role-name>" which is a comma separated list of  DSpace groups.

Configuration File:

[dspace]/config/dspace.cfg

Property:

authentication.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="ebe933bd-d8c6-43c2-a18b-1bcc8aa38b6f"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/dspace.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

authentication.shib.lazysession

Example Value:

authentication.shib.lazysession = true

Informational Note:

Whether to use lazy sessions or active sessions.

Property:

authentication.shib.lazysession.loginurl

Example Value:

authentication.shib.lazysession.loginurl = /Shibboleth.sso/Login

Informational Note:

The url to start a shibboleth session (only for lazy sessions)

Property:

authentication.shib.lazysession.secure

Example Value:

authentication.shib.lazysession.secure = true

Informational Note:

Force HTTPS when authenticating (only for lazy sessions)

Property:

authentication.shib.netid-header

Example Value:

authentication.shib.netid-header = SHIB-NETID

Informational Note:

The HTTP header where shibboleth will supply a user's NetID.

Property:

authentication.shib.email-header

Example Value:

authentication.shib.email-header = SHIB-MAIL

Informational Note:

The HTTP header where the shibboleth will supply a user's email address.

Property:

authentication.shib.email-use-tomcat-remote-user

Example Value:

authentication.shib.email-use-tomcat-remote-user = false

Informational Note:

Used when a netid or email heades are not available should shibboleth authentication fall back to using Tomcat's remote user feature.

Property:

authentication.shib.autoregister

Example Value:

authentication.shib.autoregister = true

Informational Note:

Should we allow new users to be registered automatically?

Property:

authentication.shib.sword.compatability

Example Value:

authentication.shib.sword.compatability = true

Informational Note:

Sword compatability will allow this authentication method to work when using sword. Sort relies on username and password based authentication and is entirely incapable of supporting shibboleth. This option allows you to authenticate username and passwords for sword sessions with out adding another authentication method onto the stack. You will need to ensure that a user has a password. One way to do that is to create the user via the create-administrator command line command and then edit their permissions.

Property:

authentication.shib.firstname-header

Example Value:

authentication.shib.firstname-header = SHIB_GIVENNAME

Informational Note:

The HTTP header where the shibboleth will supply a user's given name.

Property:

authentication.shib.lastname-header

Example Value:

authentication.shib.lastname-header = SHIB_SN

Informational Note:

The HTTP header where the shibboleth will supply a user's sur name.

Property:

authentication.shib.eperson.metadata

Example Value:

Code Block
authentication.shib.eperson.metadata = \
 SHIB-telephone => phone, \
 SHIB-cn => cn

Informational Note:

Additional user attributes mapping, multiple attributes may be stored
 for each user. The left side is the Shibboleth-based metadata Header
 and the right side is the eperson metadata field to map the attribute to.

Property:

authentication.shib.eperson.metadata.autocreate

Example Value:

authentication.shib.eperson.metadata.autocreate = true

Informational Note:

If the eperson metadata field is not found, should it be automatically created?

Property:

authentication.shib.role-header

Example Value:

authentication.shib.role-header = SHIB_SCOPED_AFFILIATION

Informational Note:

The shibboleth header to do role-based mappings (see section on roll based mapping section above)

Property:

authentication.shib.role-header.ignore-scope

Example Value:

authentication.shib.role-header.ignore-scope = true

Informational Note:

Weather to ignore the attribute's scope (everything after the @ sign for scoped attributes)

Property:

authentication.shib.role-header.ignore-value

Example Value:

authentication.shib.role-header.ignore-value = false

Informational Note:

Weather to ignore the attribute's value (everything before the @ sign for scoped attributes)

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="53f1bf1e-91a2-4e96-a1a8-440de885104b"><ac:plain-text-body><![CDATA[

Property:

authentication.shib.role.[affiliation-attribute]

]]></ac:plain-text-body></ac:structured-macro>

Property:

authentication.shib.role.[affiliation-attribute]

Example Value:

Code Block
authentication.shib.role.faculty = Faculty, Member \
 authentication.shib.role.staff = Staff, Member \
 authentication.shib.role.student = Students, Member

Informational Note:

Mapping of affiliation values to DSpace groups.(See the roll based mapping section above)

...

The values extracted (a user may have multiple roles) will be used to look up which groups to place the user into. The groups are defined as "role.<role-name>" which is a comma separated list of  DSpace groups.

Configuration File:

[dspace]/config/modules/authentication-shibboleth.cfg

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="677cb8d5-1075-403e-b054-bbfcbf32f917"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication-shibboleth.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

lazysession

Example Value:

lazysession = true

Informational Note:

Whether to use lazy sessions or active sessions.

Property:

lazysession.loginurl

Example Value:

lazysession.loginurl = /Shibboleth.sso/Login

Informational Note:

The url to start a shibboleth session (only for lazy sessions)

Property:

lazysession.secure

Example Value:

lazysession.secure = true

Informational Note:

Force HTTPS when authenticating (only for lazy sessions)

Property:

netid-header

Example Value:

netid-header = SHIB-NETID

Informational Note:

The HTTP header where shibboleth will supply a user's NetID.

Property:

email-header

Example Value:

email-header = SHIB-MAIL

Informational Note:

The HTTP header where the shibboleth will supply a user's email address.

Property:

email-use-tomcat-remote-user

Example Value:

email-use-tomcat-remote-user = false

Informational Note:

Used when a netid or email heades are not available should shibboleth authentication fall back to using Tomcat's remote user feature.

Property:

autoregister

Example Value:

autoregister = true

Informational Note:

Should we allow new users to be registered automatically?

Property:

sword.compatability

Example Value:

sword.compatability = true

Informational Note:

Sword compatability will allow this authentication method to work when using sword. Sort relies on username and password based authentication and is entirely incapable of supporting shibboleth. This option allows you to authenticate username and passwords for sword sessions with out adding another authentication method onto the stack. You will need to ensure that a user has a password. One way to do that is to create the user via the create-administrator command line command and then edit their permissions.

Property:

firstname-header

Example Value:

firstname-header = SHIB_GIVENNAME

Informational Note:

The HTTP header where the shibboleth will supply a user's given name.

Property:

lastname-header

Example Value:

lastname-header = SHIB_SN

Informational Note:

The HTTP header where the shibboleth will supply a user's sur name.

Property:

eperson.metadata

Example Value:

Code Block
eperson.metadata = \
 SHIB-telephone => phone, \
 SHIB-cn => cn

Informational Note:

Additional user attributes mapping, multiple attributes may be stored
 for each user. The left side is the Shibboleth-based metadata Header
 and the right side is the eperson metadata field to map the attribute to.

Property:

eperson.metadata.autocreate

Example Value:

eperson.metadata.autocreate = true

Informational Note:

If the eperson metadata field is not found, should it be automatically created?

Property:

role-header

Example Value:

role-header = SHIB_SCOPED_AFFILIATION

Informational Note:

The shibboleth header to do role-based mappings (see section on roll based mapping section above)

Property:

role-header.ignore-scope

Example Value:

role-header.ignore-scope = true

Informational Note:

Weather to ignore the attribute's scope (everything after the @ sign for scoped attributes)

Property:

role-header.ignore-value

Example Value:

role-header.ignore-value = false

Informational Note:

Weather to ignore the attribute's value (everything before the @ sign for scoped attributes)

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="20fb84b7-cfa2-413d-8957-80210dad5714"><ac:plain-text-body><![CDATA[

Property:

role.[affiliation-attribute]

]]></ac:plain-text-body></ac:structured-macro>

Property:

role.[affiliation-attribute]

Example Value:

Example Value:

Code Block
role.faculty = Faculty, Member \
 role.staff = Staff, Member \
 role.student = Students, Member

Informational Note:

Mapping of affiliation values to DSpace groups.(See the roll based mapping section above)

...

To enable LDAP Authentication, you must ensure the org.dspace.authenticate.LDAPAuthentication class is listed as one of the AuthenticationMethods in the following configuration:

Configuration File:

[dspace]/config/modules/authentication.cfg

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="99f344f2-94b6-4b45-b211-e9539893ac27"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.LDAPAuthentication

...

Here is an explanation of each of the different LDAP configuration parameters:

Configuration File:

[dspace]/config/modules/authentication-ldap.cfg

Property:

enable

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f0d5f0a8-aa3b-4370-99cc-26bd3b3b38cf"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication-ldap.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

enable

Example Value:

enable = false

Informational Note:

This setting will enable or disable LDAP authentication in DSpace. With the setting off, users will be required to register and login with their email address. With this setting on, users will be able to login and register with their LDAP user ids and passwords.

Property:

autoregister

Example Value:

autoregister = true

Informational Note:

This will turn LDAP autoregistration on or off. With this on, a new EPerson object will be created for any user who successfully authenticates against the LDAP server when they first login. With this setting off, the user must first register to get an EPerson object by entering their ldap username and password and filling out the forms.

Property:

provider_url

Example Value:

provider_url = ldap://ldap.myu.edu/o=myu.edu

Informational Note:

This is the url to your institution's LDAP server. You may or may not need the /o=myu.edu part at the end. Your server may also require the ldaps:// protocol.

Property:

id_field

Example Value:

id_field = uid

Explanation:

This is the unique identifier field in the LDAP directory where the username is stored.

Property:

object_context

Example Value:

object_context = ou=people, o=myu.edu

Informational Note:

This is the object context used when authenticating the user. It is appended to the id_field and username. For example uid=username,ou=people,o=myu.edu. You will need to modify this to match your LDAP configuration.

Property:

search_context

Example Value:

search_context = ou=people

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="5c5b6700-c890-4c94-92ce-2288cec00f18"><ac:plain-text-body><![CDATA[

Informational Note:

Informational Note:

This is the search This is the search context used when looking up a user's LDAP object to retrieve their data for autoregistering. With autoregister turned on, when a user authenticates without an EPerson object we search the LDAP directory to get their name and email address so that we can create one for them. So after we have authenticated against uid=username,ou=people,o=byu.edu we now search in ou=people for filtering on [uid=username]. Often the search_context is the same as the object_context parameter. But again this depends on your LDAP server configuration.

]]></ac:plain-text-body></ac:structured-macro>

Property:

email_field

Example Value:

email_field = mail

Informational Note:

This is the LDAP object field where the user's email address is stored. "mail" is the default and the most common for LDAP servers. If the mail field is not found the username will be used as the email address when creating the eperson object.

Property:

surname_field

Example Value:

surname_field = sn

Informational Note:

This is the LDAP object field where the user's last name is stored. "sn" is the default and is the most common for LDAP servers. If the field is not found the field will be left blank in the new eperson object.

Property:

givenname_field

Example Value:

givenname_field = givenName

Informational Note:

This is the LDAP object field where the user's given names are stored. I'm not sure how common the givenName field is in different LDAP instances. If the field is not found the field will be left blank in the new eperson object.

Property:

phone_field

Example Value:

phone_field = telephoneNumber

Informational Note:

This is the field where the user's phone number is stored in the LDAP directory. If the field is not found the field will be left blank in the new eperson object.

Property:

login.specialgroup

Example Value:

login.specialgroup = group-name

Informational Note:

If required, a group name can be given here, and all users who log into LDAP will automatically become members of this group. This is useful if you want a group made up of all internal authenticated users. (Remember to log on as the administrator, add this to the "Groups" with read rights).

...

To enable Hierarchical LDAP Authentication, you must ensure the org.dspace.authenticate.LDAPHierarchicalAuthentication class is listed as one of the AuthenticationMethods in the following configuration:

Configuration File:

[dspace]/config/modules/authentication.cfg

Property:

plugin.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d230c8d0-f1fb-4997-a738-66ebbe6ce2da"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.LDAPHierarchicalAuthentication

...

You can optionally specify the search scope. If anonymous access is not enabled on your LDAP server, you will need to specify the full DN and password of a user that is allowed to bind in order to search for the users.

Configuration File:

[dspace]/config/modules/authentication-ldap.cfg

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="77ef16c1-dfb8-40fa-b5f3-b1dcab0c6a5b"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication-ldap.cfg

]]></ac:plain-text-body></ac:structured-macro>

Property:

search_scope

Example Value:

search_scope = 2

Informational Note:

This is the search scope value for the LDAP search during autoregistering. This will depend on your LDAP server setup. This value must be one of the following integers corresponding to the following values:
object scope : 0
one level scope : 1
subtree scope : 2

Property:

search.user
search.password

Example Value:

search.user = cn=admin,ou=people,o=myu.edu
search.password = password

Informational Note:

The full DN and password of a user allowed to connect to the LDAP server and search for the DN of the user trying to log in. If these are not specified, the initial bind will be performed anonymously.

Property:

netid_email_domain

Example Value:

netid_email_domain = @example.com

Informational Note:

If your LDAP server does not hold an email address for a user, you can use the following field to specify your email domain. This value is appended to the netid in order to make an email address. E.g. a netid of 'user' and netid_email_domain as @example.com would set the email of the user to be user@example.com

...

To enable IP Authentication, you must ensure the org.dspace.authenticate.IPAuthentication class is listed as one of the AuthenticationMethods in the following configuration:

Configuration File:

[dspace]/config/

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="33c22b44-fe40-43db-a41e-d638687c902e"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication.cfg]]></ac:plain-text-body></ac:structured-macro>

Property:

plugin.sequence.org.dspace.authenticate.AuthenticationMethod

Example Value:

Code Block
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
 org.dspace.authenticate.IPAuthentication

Configuring IP Authentication

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0d7ae43b-2a80-4bdf-b066-a17bc78dd6ad"><ac:plain-text-body><![CDATA[

Configuration File:

[dspace]/config/modules/authentication-ip.cfg

]]></ac:plain-text-body></ac:structured-macro>

/modules/authentication-ip.cfg

Once enabled, you are then able to map DSpace groups to IP addresses in Wiki MarkupOnce enabled, you are then able to map DSpace groups to IP addresses in {{authentication-ip.cfg}} by setting {{ip.GROUPNAME = iprange\[, iprange ...\]}}, e.g:

Code Block
ip.MY_UNIVERSITY = 10.1.2.3, \                  # Full IP
13.5, \                      # Partial IP
11.3.4.5/24, \               # with CIDR
12.7.8.9/255.255.128.0, \    # with netmask
2001:18e8::32                # IPv6 too

...

  1. See the HTTPS installation instructions to configure your Web server. If you are using HTTPS with Tomcat, note that the <Connector> tag must include the attribute clientAuth="true" so the server requests a personal Web certificate from the client.
  2. Add the org.dspace.authenticate.X509Authentication plugin first to the list of stackable authentication methods in the value of the configuration key plugin.sequence.org.dspace.authenticate.AuthenticationMethod.authenticate.AuthenticationMethod
    <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0982e132-7f8b-4d09-b598-1f69eb285270"><ac:plain-text-body><![CDATA[

    Configuration File:

    [dspace]/config/modules/authentication.cfg

    ]]></ac:plain-text-body></ac:structured-macro>

    Property:

    plugin.sequence.org.dspace.authenticate.AuthenticationMethod

    Example Value:

    Code Block
    plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
     org.dspace.authenticate.X509Authentication, \
     org.dspace.authenticate.PasswordAuthentication

Configuring X.509 Certificate Authentication

...

Configuration File:

[dspace]/config/modules/authentication-x509.cfg]]></ac:plain-text-body></ac:structured-macro>

  1. You must also configure DSpace with the same CA certificates as the web server, so it can accept and interpret the clients' certificates. It can share the same keystore file as the web server, or a separate one, or a CA certificate in a file by itself. Configure it by one of these methods, either the Java keystore
    Code Block
    keystore.path =  path to Java keystore file
    keystore.password =  password to access the keystore
    ...or the separate CA certificate file (in PEM or DER format):
    Code Block
    ca.cert =  path to certificate file for CA whose client certs to accept.
  2. Choose whether to enable auto-registration: If you want users who authenticate successfully to be automatically registered as new E-Persons if they are not already, set the autoregister configuration property to true. This lets you automatically accept all users with valid personal certificates. The default is false.

...