跳转到主要内容

为非标准化的SSO系统生成登录URL。

项目描述

https://badge.fury.io/py/django-url-sso.png https://secure.travis-ci.org/visualspace/django-url-sso.png?branch=master https://pypip.in/d/django-url-sso/badge.png

为非标准化的SSO系统生成登录URL。

这是什么?

我们都知道,单点登录系统最好使用经过适当标准化、测试且已知的加密协议。将登录令牌放入HTTP查询参数中是不好的做法。

然而,有时候事情并不像我们希望的那样。存在许多糟糕的API。有时,我们无法避免与他们交谈。这正是此模块的作用

它允许配置插件生成登录URL,并使用RequestContextProcessor在模板中使用它们。

状态

经过充分测试且稳定,尽管文档仍在进行中。

兼容性

已测试与Django 1.4、1.5和1.6以及Python 2.6和2.7兼容。

要求

请参阅requirements.txt以获取所需的软件包的最新列表。

设置

此软件包中有两种类型的设置:插件之间的通用设置和特定于插件的设置。目前唯一的通用设置是URL_SSO_PLUGINS,它列出已启用的插件。示例

URL_SSO_PLUGINS = [
    'url_sso.plugins.intershift.intershift_plugin',
    'url_sso.plugins.iprova.iprova_plugin'
]

此外,如果您希望在模板上下文中使用URL(您确实这样做),请确保启用RequestContextProcessor

TEMPLATE_CONTEXT_PROCESSORS = [
    ...
    'url_sso.context_processors.login_urls'
    ...
]

插件

目前,已实现两个系统的SSO

Intershift

插件名称: url_sso.plugins.intershift.intershift_plugin

对于在 sites 中配置的每个网站(见下文),此插件通过以下名称提供URL

`INTERSHIFT_<SITENAME>_SSO_URL`
设置

示例设置

URL_SSO_INTERSHIFT = {
    # Secret key as specified by Intershift
    'secret': '12345678',
    # Sites enabled for SSO
    'sites': {
        'site1': {
            # Users never have access to site1
            'has_access': lambda request: False,
            'url': 'https://customer1.intershift.nl/site1/cust/singlesignon.asp',
            'has_access': lambda request: request.user.groups.filter(name='some_group').exists()
        },
        'site2': {
            # Users always have acces to site2
            'has_access': lambda request: True,
            'url': 'https://customer1.intershift.nl/site2/cust/singlesignon.asp',
        },
        'site3': {
            # No explicit access rules; same result as site2
            'url': 'https://customer1.intershift.nl/site3/cust/singlesignon.asp',
        },
    },
    # Key expiration in seconds, use one day here
    'key_expiration': 86400
}

Infoland iProva

插件名称: url_sso.plugins.iprova.iprova_plugin

根据以下 services 设置中配置的服务,此插件提供以下登录URL

  • IPROVA_MANAGEMENT_SSO_URL

  • IPROVA_IDOCUMENT_SSO_URL

  • IPROVA_IPORTAL_SSO_URL

  • IPROVA_ITASK_SSO_URL

设置

示例设置

URL_SSO_IPROVA = iprova_settings = {
    # Service root URL
    'root_url': 'http://intranet.organisation.com/',

    # Services available for SSO
    'services': ('management', 'idocument', 'iportal', 'itask'),

    # Key expiration in seconds, use one hour here
    'key_expiration': 3600,

    'application_id': 'SharepointIntranet_Production',

    'has_access': lambda request, service: request.user.groups.filter(name='some_group').exists()
}

测试

通过 Travis CI 自动运行对拉取请求和主分支的测试。

许可证

本应用程序遵循 GNU Affero 通用公共许可证第 3 版发布。

项目详情


下载文件

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

源分发

django-url-sso-0.9.tar.gz (37.8 kB 查看散列)

上传时间

构建分发

django_url_sso-0.9-py2.py3-none-any.whl (43.7 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面