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

django-url-sso的Python项目详细描述


https://badge.fury.io/py/django-url-sso.pnghttps://secure.travis-ci.org/visualspace/django-url-sso.png?branch=masterhttps://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 以获取所需软件包的更新列表。

设置

这个包中有两种类型的settign:跨插件的公共设置和插件指定的设置。目前唯一常用的设置是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:

中间换档

插件名称: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

此插件提供以下登录URL,具体取决于在下面的services设置中配置了哪些服务:

  • 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()
}

测试

pull req和master分支的测试将自动运行 Travis CI

许可证

此应用程序已发布 根据GNU Affero通用公共许可第3版。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数