{ "info": { "author": "Mathijs de Bruin", "author_email": "mathijs@visualspace.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Utilities" ], "description": "==============\ndjango-url-sso\n==============\n\n.. image:: https://badge.fury.io/py/django-url-sso.png\n :target: http://badge.fury.io/py/django-url-sso\n\n.. image:: https://secure.travis-ci.org/visualspace/django-url-sso.png?branch=master\n :target: http://travis-ci.org/visualspace/django-url-sso\n\n.. image:: https://pypip.in/d/django-url-sso/badge.png\n :target: https://crate.io/packages/django-url-sso?version=latest\n\nGenerate login URL's for unstandardized SSO systems.\n----------------------------------------------------\n\nWhat is it?\n===========\nWe all know it is better for single sign-on systems to make use of properly standardized, tested and known secure protocols. That it is bad practise to put login tokens in HTTP query parameters.\n\nHowever, sometimes things just aren't as you wish they would be. Bad API's are out there and are numerous. And sometimes, we cannot avoid having to talk to them. That's what this module is for:\n\n**It allows configurable plugins to generate login URL's and use a RequestContextProcessor to make them available in templates.**\n\nStatus\n======\nWell tested and stable, though documentation is still a work in progress.\n\nCompatibility\n=============\nTested to work with Django 1.4, 1.5 and 1.6 and Python 2.6 as well as 2.7.\n\nRequirements\n============\nPlease refer to `requirements.txt `_\nfor an updated list of required packages.\n\nSettings\n========\nThere are two types of settigns in this package: common settings across plugins and plugin specifc settings. Currently the only common setting is `URL_SSO_PLUGINS` which lists the enabled plugins. Example::\n\n URL_SSO_PLUGINS = [\n 'url_sso.plugins.intershift.intershift_plugin',\n 'url_sso.plugins.iprova.iprova_plugin'\n ]\n\nAlso, be sure to enable the RequestContextProcessor if you want the URL's to be available in your template context (and you do)::\n\n TEMPLATE_CONTEXT_PROCESSORS = [\n ...\n 'url_sso.context_processors.login_urls'\n ...\n ]\n\nPlugins\n=======\nCurrently, SSO for two systems are implemented:\n\n* `Intershift `_\n* `Infoland iProva `_\n\nIntershift\n~~~~~~~~~~\nPlugin name: `url_sso.plugins.intershift.intershift_plugin`\n\nFor each configured site in `sites` (see below), this plugin makes a URL available by the following name::\n\n `INTERSHIFT__SSO_URL`\n\nSettings\n********\n\nExample settings::\n\n URL_SSO_INTERSHIFT = {\n # Secret key as specified by Intershift\n 'secret': '12345678',\n # Sites enabled for SSO\n 'sites': {\n 'site1': {\n # Users never have access to site1\n 'has_access': lambda request: False,\n 'url': 'https://customer1.intershift.nl/site1/cust/singlesignon.asp',\n 'has_access': lambda request: request.user.groups.filter(name='some_group').exists()\n },\n 'site2': {\n # Users always have acces to site2\n 'has_access': lambda request: True,\n 'url': 'https://customer1.intershift.nl/site2/cust/singlesignon.asp',\n },\n 'site3': {\n # No explicit access rules; same result as site2\n 'url': 'https://customer1.intershift.nl/site3/cust/singlesignon.asp',\n },\n },\n # Key expiration in seconds, use one day here\n 'key_expiration': 86400\n }\n\n\nInfoland iProva\n~~~~~~~~~~~~~~~\nPlugin name: `url_sso.plugins.iprova.iprova_plugin`\n\nThis plugin makes the following login URL's available, depending on which services are configured in the `services` setting below:\n\n* `IPROVA_MANAGEMENT_SSO_URL`\n* `IPROVA_IDOCUMENT_SSO_URL`\n* `IPROVA_IPORTAL_SSO_URL`\n* `IPROVA_ITASK_SSO_URL`\n\n\nSettings\n********\n\nExample settings::\n\n URL_SSO_IPROVA = iprova_settings = {\n # Service root URL\n 'root_url': 'http://intranet.organisation.com/',\n\n # Services available for SSO\n 'services': ('management', 'idocument', 'iportal', 'itask'),\n\n # Key expiration in seconds, use one hour here\n 'key_expiration': 3600,\n\n 'application_id': 'SharepointIntranet_Production',\n\n 'has_access': lambda request, service: request.user.groups.filter(name='some_group').exists()\n }\n\n\nTests\n==========\nTests for pull req's and the master branch are automatically run through\n`Travis CI `_.\n\nLicense\n=======\nThis application is released\nunder the GNU Affero General Public License version 3.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/visualspace/django-url-sso/", "keywords": null, "license": "AGPL", "maintainer": null, "maintainer_email": null, "name": "django-url-sso", "package_url": "https://pypi.org/project/django-url-sso/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-url-sso/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/visualspace/django-url-sso/" }, "release_url": "https://pypi.org/project/django-url-sso/0.9/", "requires_dist": null, "requires_python": null, "summary": "Generate login URL's for unstandardized SSO systems.", "version": "0.9" }, "last_serial": 996046, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "7197045705e7416b0e9be51621025030", "sha256": "1f2ee14a6e9711cc4caed8660d1665564e004ade54a8aa7e81584bb77f9da73d" }, "downloads": -1, "filename": "django_url_sso-0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7197045705e7416b0e9be51621025030", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43665, "upload_time": "2014-02-10T10:48:05", "url": "https://files.pythonhosted.org/packages/4a/9e/a236de96d9a7aee9ad810411658d9bb48aeba0fc7648521fa6748075d952/django_url_sso-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ab7184650cf1fcbdab6bbce584316a9", "sha256": "2632c38fc113c985170237895c017676d0f0bd9500459f880a8493f22d6aba42" }, "downloads": -1, "filename": "django-url-sso-0.9.tar.gz", "has_sig": false, "md5_digest": "7ab7184650cf1fcbdab6bbce584316a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37783, "upload_time": "2014-02-10T10:47:57", "url": "https://files.pythonhosted.org/packages/96/68/56d0741eb47078d4a3c1f231e927045504908bb69c2e451269ef23785f09/django-url-sso-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7197045705e7416b0e9be51621025030", "sha256": "1f2ee14a6e9711cc4caed8660d1665564e004ade54a8aa7e81584bb77f9da73d" }, "downloads": -1, "filename": "django_url_sso-0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7197045705e7416b0e9be51621025030", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43665, "upload_time": "2014-02-10T10:48:05", "url": "https://files.pythonhosted.org/packages/4a/9e/a236de96d9a7aee9ad810411658d9bb48aeba0fc7648521fa6748075d952/django_url_sso-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ab7184650cf1fcbdab6bbce584316a9", "sha256": "2632c38fc113c985170237895c017676d0f0bd9500459f880a8493f22d6aba42" }, "downloads": -1, "filename": "django-url-sso-0.9.tar.gz", "has_sig": false, "md5_digest": "7ab7184650cf1fcbdab6bbce584316a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37783, "upload_time": "2014-02-10T10:47:57", "url": "https://files.pythonhosted.org/packages/96/68/56d0741eb47078d4a3c1f231e927045504908bb69c2e451269ef23785f09/django-url-sso-0.9.tar.gz" } ] }