djangocms-oidc-form-fields

Plugin OIDC (OpenID Connect) for Aldryn form fields.


License
gnuplot
Install
pip install djangocms-oidc-form-fields==3.0.0

Documentation

Build Status Coverage Pypi package status Python versions license

DjangoCMS OIDC (OpenID Connect) plugins for Aldryn form fields

Plugins for post a data hangovered from OpenID provider, based on plugins DjangoCMS OIDC and Aldryn Forms.

Installation

$ pip install djangocms-oidc-form-fields

Add settings to settings.py

Start by making the following changes to your settings.py file.

# Add 'aldryn_forms' and 'djangocms_oidc_form_fields' to INSTALLED_APPS
INSTALLED_APPS = [
    # ...
    'multiselectfield',
    'django_countries',
    'mozilla_django_oidc',  # place after auth (django.contrib.auth)
    'djangocms_oidc',
    'aldryn_forms',
    'djangocms_oidc_form_fields',
]

AUTHENTICATION_BACKENDS = [
    # ...
    'djangocms_oidc.auth.DjangocmsOIDCAuthenticationBackend',
]

MIDDLEWARE = [
    # ...
    'djangocms_oidc.middleware.OIDCSessionRefresh',
]

# Define OIDC classes
OIDC_AUTHENTICATE_CLASS = "djangocms_oidc.views.DjangocmsOIDCAuthenticationRequestView"
OIDC_CALLBACK_CLASS = "djangocms_oidc.views.DjangocmsOIDCAuthenticationCallbackView"
OIDC_OP_AUTHORIZATION_ENDPOINT = "https://example.com/authorization-endpoint"
OIDC_RP_CLIENT_ID = "myClientId"

Add OIDC urls to urls.py

Modify your project urls.py file.

urlpatterns = [
    # ....
    path('oidc/', include('mozilla_django_oidc.urls')),
    path('djangocms-oidc/', include('djangocms_oidc.urls')),
]

Usage in administration

These plugins are available to the editor in the administration:

  • OIDC Fields
  • OIDC Text
  • OIDC Textarea
  • OIDC Hidden
  • OIDC Email
  • OIDC EmailIntoFromField
  • OIDC Phone
  • OIDC Number
  • OIDC Boolean
  • OIDC Span element

How to use provider MojeID

Home › Djangocms_Oidc › Oidc register consumers › oidc register consumer: Add

Name: MojeID Test

Home › Djangocms_Oidc › Oidc providers › oidc provider: add

Name: MojeID Test
Code: mojeid
Register consumer: MojeID Test

Page structure: Add

OpenID Connect: OIDC Handover data
Provider: MojeID Test
Claims: {...} (copy from the example below) For mojeid see list "claims_supported" in .well-known openid-configuration.
Verified by names: ... (copy from the example below)

How to run an example

Run the example in Docker. Install as follows:

$ git clone https://github.com/CZ-NIC/djangocms-oidc-form-fields.git
$ cd djangocms-oidc-form-fields/example
$ docker-compose build web
$ docker-compose run --user $(id -u):$(id -g) web python manage.py migrate
$ docker-compose run --user $(id -u):$(id -g) web python manage.py loaddata site.json

You start the webserver:

$ docker-compose up -d

Open in your browser: https://localhost:8000/. To log in to the administrations use admin:password at http://localhost:8000/admin.

You sto Webserver:

$ docker-compose down

License

This software is licensed under the GNU GPL license. For more info check the LICENSE file.