为非标准化的SSO系统生成登录URL。
项目描述
为非标准化的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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2632c38fc113c985170237895c017676d0f0bd9500459f880a8493f22d6aba42 |
|
MD5 | 7ab7184650cf1fcbdab6bbce584316a9 |
|
BLAKE2b-256 | 966856d0741eb47078d4a3c1f231e927045504908bb69c2e451269ef23785f09 |
django_url_sso-0.9-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1f2ee14a6e9711cc4caed8660d1665564e004ade54a8aa7e81584bb77f9da73d |
|
MD5 | 7197045705e7416b0e9be51621025030 |
|
BLAKE2b-256 | 4a9ea236de96d9a7aee9ad810411658d9bb48aeba0fc7648521fa6748075d952 |