为非标准化的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 |