跳转到主要内容

将OIDC (OpenID Connect) 插件集成到Django CMS中。

项目描述

Build Status Coverage Pypi package status Python versions license

DjangoCMS OIDC (OpenID Connect)

基于Mozilla Django OIDC的用户身份验证OpenID插件。

安装

$ pip install djangocms-oidc

注意!如果您正在使用项目django-python3-ldap,您必须使用高于0.11.3的版本。

requirements.txt中的示例

django-python3-ldap @ git+https://github.com/etianen/django-python3-ldap.git@759d3483d9e656fef2b6a2e669101bca3021d9d5

将设置添加到settings.py

首先,修改您的settings.py文件,进行以下更改。

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

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"

将OIDC URL添加到urls.py

修改您的项目urls.py文件。

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

设置

大多数设置与项目Mozilla Django OIDC相同。

以下值在插件中定义。因此,无需在项目设置中设置它们。它们没有效果。

  • OIDC_RP_CLIENT_ID

  • OIDC_RP_CLIENT_SECRET

  • OIDC_OP_AUTHORIZATION_ENDPOINT

  • OIDC_OP_TOKEN_ENDPOINT

  • OIDC_OP_USER_ENDPOINT

OIDC_RP_SCOPES参数由于重载函数verify_claims,其行为与mozilla-django-oidc中的参数不同。该参数包含一组声明名称的字符串。如果其中至少有一个在提供者的响应中存在,则数据交接的验证会被执行。参数的默认值是'openid2_id openid email'。必须交接这些数据之一,否则将忽略提供者的响应。

在管理中的使用

这些插件在管理中可供编辑使用

  • OIDC 交接数据

  • OIDC 登录

  • OIDC 列标识符

  • OIDC 显示专属内容

  • OIDC 显示属性

  • OIDC 显示属性国家

如何使用提供者MojeID

主页 › Djangocms_Oidc › Oidc 注册消费者 › oidc 注册消费者:添加

名称:MojeID 测试

主页 › Djangocms_Oidc › Oidc 提供者 › oidc 提供者:添加

名称:MojeID 测试
代码:mojeid
注册消费者:MojeID 测试

页面结构:添加

OpenID Connect:OIDC 交接数据
提供者:MojeID 测试
声明:{…}(从下面的示例中复制)对于mojeid,请参阅.well-known中的“claims_supported”列表openid-configuration
按名称验证:…(从下面的示例中复制)

如何运行示例

在Docker中运行示例。按照以下步骤安装

$ 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

启动web服务器

$ docker-compose up -d

在您的浏览器中打开:http://localhost:8000/。要登录到管理界面,请在http://localhost:8000/admin使用admin:password

停止web服务器

$ docker-compose down

许可协议

本软件根据GNU GPL许可协议授权。有关更多信息,请查看LICENSE文件。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

djangocms_oidc-4.2.0.tar.gz (60.6 kB 查看散列

上传时间:

构建分发

djangocms_oidc-4.2.0-py3-none-any.whl (75.7 kB 查看散列

上传时间: Python 3

由以下支持