跳转到主要内容

为Django项目提供联邦登录(SSO)

项目描述

该项目目前未维护。不建议用于生产环境。

Django Federated Login

Build Status Test Coverage PyPI

Django Federated Login提供Django项目与OpenID身份提供者之间的身份验证桥梁。该桥梁预先连接到单个Google Apps域,但可以扩展到与其他OpenID提供者链接。与其他OpenID消费者不同,此消费者只允许连接到预定义的身份提供者。

提供的后端根据身份提供者返回的电子邮件地址匹配用户。如果找不到匹配的用户,可以可选地创建用户帐户。

我非常希望听到您对这个包的反馈。如果您遇到问题,请通过GitHub提交问题,或者通过分叉存储库并发送一些拉取请求来为项目做出贡献。

兼容Django 1.4、1.5和1.6,支持Python 2.6、2.7、3.2和3.3。通过python3-openid分叉支持Python 3。

安装

使用pip安装

$ pip install django-federated-login

'federated_login.auth_backend.EmailBackend'添加为身份验证后端

settings.py:
AUTHENTICATION_BACKENDS = (
    'federated_login.auth_backends.EmailBackend',
    'django.contrib.auth.backends.ModelBackend',
)

'federated_login'添加为已安装的应用

settings.py:
INSTALLED_APPS = (
    ...
    'federated_login',
)

提供用于识别的Google Apps域

settings.py:
FL_APPS_DOMAIN = 'webatoom.nl'

Django 1.6需要配置会话序列化程序

settings.py:
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

注册视图

urls.py:
url(r'^federated/', include('federated_login.urls')),

同步或迁移数据库

python manage.py syncdb
# or if you use South:
python manage.py migrate federated_login

用法

将您的浏览器指向/federated/login/。您可能希望在常规登录页面上包含此URL的按钮。您还可以使用联邦登录页面作为默认登录页面,替换用户名和密码登录页面。为此,配置LOGIN_设置

settings.py:
LOGIN_REDIRECT_URL = '/'
LOGIN_URL = '/federated/login/'

设置

以下是可以自定义的设置

FL_APPS_DOMAIN

用于识别的Google Apps域。可以由FL_SSO_ENDPOINT覆盖。

FL_USER_FACTORY(默认值:'federated_login.user_factories.normal'

在创建用户帐户时调用的函数。将其设置为 None 以禁用新用户的创建。还有用于创建员工用户的 'federated_login.user_factories.staff' 和用于创建超级用户的 'federated_login.user_factories.superuser'

FL_SSO_ENDPOINT(默认:Google Apps)

覆盖此设置以与其他 OpenID 身份提供者关联。当提供自定义 FL_SSO_ENDPOINT 时,FL_APPS_DOMAIN 设置将无效果。

FL_USER_CLASS(默认:'django.contrib.auth.models.User'

用于创建和查询用户的 Django 模型类。

FL_PATCH_ADMIN(默认:True

Django 的管理站点会自动打补丁以使用联合登录。将此设置设置为 False 以禁用此功能。您可以调用 federated_login.admin.patch_admin()federated_login.admin.unpatch_admin() 分别打补丁和取消打补丁管理站点。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

django-federated-login-1.0.0.tar.gz (14.5 kB 查看哈希值

上传时间

由支持