Skip to content

Commit d4f26c5

Browse files
xmorave2demiankatz
authored andcommitted
Open ID Connect authentication implementation (#1230)
1 parent 5d6b4f3 commit d4f26c5

8 files changed

Lines changed: 1121 additions & 20 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
; Open ID Connect authentication settings; see the [Authentication] section of config.ini to enable.
2+
[Default]
3+
url = "https://openidconnect.provider.url"
4+
client_id = "your_client_id"
5+
client_secret = "your_client_secret"
6+
; Optional settings of username prefix to ensure unique usernames in case of multiple authentication methods
7+
username_prefix = ""
8+
9+
; Attributes mapping in case of IdP using some non-standard/additional attributes
10+
;attributes[firstname] = given_name
11+
;attributes[lastname] = family_name
12+
;attributes[email] = email
13+
14+
; Provider related settings, some can support automatic discovery using url/.well_known endpoint, if it is not case of
15+
; your OpenID provider, you can set needed configuration manually below
16+
;authorization_endpoint = "https://openidconnect.provider.url/oauth/authorize"
17+
;token_endpoint = "https://openidconnect.provider.url/oauth/token"
18+
; Please note, that VuFind supports only client_secret_basic authentication method
19+
;token_endpoint_auth_methods_supported[] = "client_secret_basic"
20+
;userinfo_endpoint = "https://openidconnect.provider.url/oauth/userinfo"
21+
;issuer = "https://openidconnect.provider.url"
22+
;jwks_uri = "https://openidconnect.provider.url/oauth/jwks"

config/vufind/config.ini

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -472,11 +472,22 @@ force_first_scheduled_email = false
472472
;scheduled_search_frequencies[7] = schedule_weekly
473473

474474
; This section allows you to determine how the users will authenticate.
475-
; You can use an LDAP directory, the local ILS (or multiple ILSes through
476-
; the MultiILS option), the VuFind database (Database), a hard-coded list of
477-
; access passwords (PasswordAccess), AlmaDatabase (combination
478-
; of VuFind database and Alma account), Shibboleth, SIP2, CAS, Facebook, Email or
479-
; some combination of these (via the MultiAuth or ChoiceAuth options).
475+
[Authentication]
476+
; You can authenticate using one or more of the following methods:
477+
; - AlmaDatabase (combination of VuFind database and Alma account; see also Alma.ini)
478+
; - CAS (see also [CAS] section)
479+
; - Database: VuFind's internal user database
480+
; - Email (see notes below)
481+
; - Facebook (see also [Facebook] section)
482+
; - ILS: the local ILS
483+
; - LDAP: an LDAP directory (see also [LDAP] section)
484+
; - MultiILS: multiple ILSes (see also MultiBackend.ini)
485+
; - OpenIDConnect: Open ID Connect (see also OpenIDConnectClient.ini)
486+
; - PasswordAccess: a hard-coded list of access passwords (see also [PasswordAccess] section)
487+
; - Shibboleth (see also [Shibboleth] section)
488+
; - SimulatedSSO: simulated single sign-on for testing/development (see SimulatedSSO.ini)
489+
; - SIP2 (see also [SIP2] section)
490+
; - some combination of the above (via the MultiAuth or ChoiceAuth options).
480491
;
481492
; The Email method is special; it is intended to be used through ChoiceAuth in
482493
; combination with Database authentication (or any other method that reliably stores
@@ -489,21 +500,7 @@ force_first_scheduled_email = false
489500
; Also note that the Email method stores hashes in your database's auth_hash table.
490501
; You should run the "php $VUFIND_HOME/public/index.php util expire_auth_hashes"
491502
; utility periodically to clean out old data in this table.
492-
[Authentication]
493-
;method = LDAP
494-
;method = ILS
495-
method = Database
496-
;method = AlmaDatabase
497-
;method = Shibboleth
498-
;method = SIP2
499-
;method = CAS
500-
;method = MultiAuth
501-
;method = ChoiceAuth
502-
;method = MultiILS
503-
;method = Facebook
504-
;method = PasswordAccess
505-
;method = Email
506-
;method = SimulatedSSO ; FOR TESTING ONLY -- see SimulatedSSO.ini
503+
method = Database
507504

508505
; This setting only applies when method is set to ILS. It determines which
509506
; field of the ILS driver's patronLogin() return array is used as the username

0 commit comments

Comments
 (0)