-
Notifications
You must be signed in to change notification settings - Fork 1
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
Problem: Archivematica doesn't support OpenID Connect (OIDC) authentication #1053
Comments
@sevein Is this related to CAS at all? |
It could be related, if CAS is set up with OIDC enabled (https://apereo.github.io/cas/5.1.x/planning/Architecture.html). Similarly, I believe that CAS can also be set up with SAML which Archivematica already supports (Shibboleth). |
@alexwlchan we've just merged support for CAS and OIDC is next on the list and with the v1.12 milestone on it. Do you have some time to rebase artefactual/archivematica#1536, artefactual/archivematica-storage-service#517 and artefactual/archivematica-docs#342? Thanks! |
@sevein @alexwlchan It might be best to hold off rebasing the Storage Service PR until artefactual/archivematica-storage-service#538 is merged, which should happen in the next day or two. Thanks! |
I’ll keep an eye on Tessa’s storage service PR, and look at getting some time to rebase our OIDC PRs. How soon is the v1.12 release? |
We're aiming for August 28th, with a code freeze date of August 7th. |
@alexwlchan FYI, I just merged the CAS Storage Service PR into You might run into a known issue updating the Storage Service requirements in the Docker Compose dev environment. We're working a proper fix but for now there is a workaround described here: #1039 (comment). |
Done, done and done! |
Thank you! |
@alexwlchan, I thought I would try this locally but I've stumped into something. I've set up testprovider which is what mozilla-django-oidc uses in their integration tests and I got pretty far with some changes I will describe below. Added testprovider:
stdin_open: true
tty: true
image: "mozilla/oidc-testprovider:oidc_testprovider-latest"
ports:
- "127.0.0.1:8080:8080" These are the env strings I've added to archivematica-dashboard: ARCHIVEMATICA_DASHBOARD_DASHBOARD_OIDC_AUTHENTICATION: "true"
OIDC_RP_CLIENT_ID: "1"
OIDC_RP_CLIENT_SECRET: "bd01adf93cfb"
OIDC_OP_AUTHORIZATION_ENDPOINT: "http://testprovider:8080/openid/authorize"
OIDC_OP_TOKEN_ENDPOINT: "http://testprovider:8080/openid/token"
OIDC_OP_USER_ENDPOINT: "http://testprovider:8080/openid/userinfo" I had to make a change to the settings module (isn't it needed when using Azure?): OIDC_AUTHENTICATION_CALLBACK_URL = "oidc_authentication_callback" Also I updated the model in testprovider: models.Client.objects.filter(pk=1).update(
_redirect_uris="http://127.0.0.1:62080/oidc/callback/") I am redirected to http://127.0.0.1:62080/oidc/callback/?code=... but
Do you have any idea of what could be missing? Thank you in advance. |
Not sure off the top of my head; I’ll have a look at our config and send you the details tomorrow. |
@sevein I've had a look, and those two patches are very close to what we have in production (we just change the setting so Archivematica doesn't auto-create users when somebody logs in with OIDC – we create the AM user accounts manually and use people’s OIDC email as the account email). These are the OIDC-related settings we're running in production:
The authorization/token/user endpoint are populated automatically, because we're running in Azure. We don’t set the Which docker-compose file are you using? |
I will consult the team but I think we're ok to merge as is. I'll suggest to mark as experimental until we learn more. |
Please describe the problem you'd like to be solved
There is no support for authentication via Open ID Connect (as provided by Microsoft Azure platform and others). Doing so would enable users in organisations that use these platforms to log in with their existing accounts.
Describe the solution you'd like to see implemented
The solution could be similar to existing Shibboleth and LDAP auth implementations:
Describe alternatives you've considered
There already are alternative ways to authenticate on Archivematica. This would provide an alternative method by which to do so.
Additional context
This has already been developed on the Wellcome fork.
For Artefactual use:
Before you close this issue, you must check off the following:
The text was updated successfully, but these errors were encountered: