-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OIDC authentication to AtoM #1741
Conversation
plugins/arOidcPlugin/config/arOidcPluginConfiguration.class.php
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice job, steve! minor typo and question, but otherwise looks good to me!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a few files that use elseif
instead of else if
that's probably causing the tests to fail, but other than that this looks good to me!
Thanks @anvit and @melaniekung! I have made the last change to satisfy PHP_cs_fixer. I will rebase, squash and merge. |
e96c541
to
ea8e456
Compare
This commit adds support for OIDC (OpenID Connect) user authentication in AtoM, implemented in a new arOidcPlugin. The plugin also provides an optional mechanism for dynamically setting AclUserGroup membership on each login, based on the presence or absence of expected values in tokens returned from the OIDC endpoint during authentication. Configuration of the plugin is handled manually by editing configuration files rather than through the AtoM user interface to avoid a "chicken-egg" problem of needing to log into AtoM as an administrator in order to set up the authentication mechanism. The steps required to enable the plugin are as follows, with all paths relative to the AtoM root directory: - Activate the plugin by adding it to the $plugins array in config/ProjectConfiguration.class.php - Configure the OIDC settings in plugins/arOidcPlugin/config/app.yml - Change the default login module from user to OIDC in apps/qubit/config/settings.yml - Change the user class to oidcUser in apps/qubit/config/factories.yml Tasks such as DIP upload will use authenticateWithBasicAuth method in AtoM's base myUser user class to allow Archivematica to authenticate for DIP Upload using basic auth even when a single sign-on method such as OIDC is enabled in AtoM.
51ae624
to
fecda72
Compare
This commit adds support for OIDC (OpenID Connect) user authentication in AtoM, implemented in a new arOidcPlugin.
The plugin also provides an optional mechanism for dynamically setting AclUserGroup membership on each login, based on the presence or absence of expected values in tokens returned from the OIDC endpoint during authentication.
Configuration of the plugin is handled manually by editing configuration files rather than through the AtoM user interface to avoid a "chicken-egg" problem of needing to log into AtoM as an administrator in order to set up the authentication mechanism. The steps required to enable the plugin are as follows, with all paths relative to the AtoM root directory:
Tasks such as DIP upload will use
authenticateWithBasicAuth
method in AtoM's basemyUser
user class to allow Archivematica to authenticate for DIP Upload using basic auth even when a single sign-on method such as OIDC is enabled in AtoM.