Skip to main content

Oauth2/OpenID authentication for CubicWeb

Project description

Summary

Oauth2/OpenID connect authentication client for cubicweb.

All configuration is done in all-in-one.conf. Defaults values should work fine with Keycloak, for other provider refer to the documentation of the content of the JWT token.

  • oauth2-enabled should be set to yes once it is configured

  • oauth2-client-id and oauth2-client-secret should be set (given by the provider).

  • For OpenID connect providers oauth2-server-url can be set. For keycloak it is https://<server>/auth/realms/<realm>. The configuration is then obtained from the metadata url /.well-known/openid-configuration

  • If you want to avoid a request to the metadata url, or if your provider doesn’t implement OpenID, you should to configure oauth2-authorization-url, oauth2-token-url and oauth2-jwk-path.

  • oauth2-token-login is used to map a field of the JWT token with CubicWeb login.

  • On the provider side, the callback url should be configured to https://<cubicweb>/oauth2/callback

At this point you should be able to log in an existing user through the login page using the “Log in with Oauth2” button.

If you want to automatically register new users, you must set oauth2-register-user to yes and configure oauth2-default-group, oauth2-token-firstname, oauth2-token-surname and oauth2-token-email.

If your instance only accepts users from the Oauth2 provider, you can set oauth2-auto-login which skip the login page and start oauth2 authentication directly.

If your instance require authenticated users from Oauth2 provider only, you can set oauth2-force-login to yes, this will redirect all unauthenticated requests to oauth2 login.

How to test this with keycloak

Using standard flow and confidential (client_id/client_secret) access.

test_full_login() might be a good entry point to understand the authentication flow.

Here is how to test this with keycloak:

  1. Create a new client using url http://:8080

  2. Set Access Type to “confidential” with standard flow enabled

  3. Get client_id & client_secret from the “Credentials” tab

  4. Enable the oauth2 cube to your project

  5. In all-in-one.conf set these parameters:

    oauth2-enabled=yes oauth2-server-url=https://keycloak/auth/realms/master oauth2-client-id=<client_id> oauth2-client-secret=<client_secret>

  6. Start your instance, go to login page and click on “Log in with Oauth2”

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubicweb_oauth2-1.2.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cubicweb_oauth2-1.2.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file cubicweb_oauth2-1.2.0.tar.gz.

File metadata

  • Download URL: cubicweb_oauth2-1.2.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for cubicweb_oauth2-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d182414317cc5a56ea6c890af54c619462898ae95007a7eb30eec40567f0454f
MD5 45c7e408062d9fc176300b868cbe893f
BLAKE2b-256 6e81c1f6009e0e0ae0842a1dba469f83636a109ccb39112cb37963b20a52bc66

See more details on using hashes here.

File details

Details for the file cubicweb_oauth2-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cubicweb_oauth2-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27d9470d6667b670658e471f92d980575764f5691db050f96bfbb48f2b7b05e3
MD5 97ec32ef7ad7de495e6078c87a7b7c89
BLAKE2b-256 5fae416fa1ecf2cf21ddbbbd13a1b13220fc9b19e156b2f0db499a6bac5f5d4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page