{ "info": { "author": "Jonas Obrist", "author_email": "jonas.obrist@divio.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development" ], "description": "django-simple-sso\n=================\n\nThe latest version of this package supports:\n\n* Django >= 1.11\n\n\n#######################################\nDjango Simple SSO Specification (DRAFT)\n#######################################\n\n***********\nTerminology\n***********\n\nServer\n------\n\nThe server is a Django website that holds all the user information and\nauthenticates users.\n\nClient\n------\n\nThe client is a Django website that provides login via SSO using the **Server**.\nIt does not hold any user information.\n\nKey\n---\n\nA unique key identifying a **Client**. This key can be made public.\n\nSecret\n------\n\nA secret key shared between the **Server** and a single **Client**. This secret\nshould never be shared with anyone other than the **Server** and **Client** and\nmust not be transferred unencrypted.\n\n********\nWorkflow\n********\n\n\n* User wants to log into a **Client** by clicking a \"Login\" button. The\n initially requested URL can be passed using the ``next`` GET parameter.\n* The **Client**'s Python code does a HTTP request to the **Server** to request a\n authentication token, this is called the **Request Token Request**.\n* The **Server** returns a **Request Token**.\n* The **Client** redirects the User to a view on the **Server** using the\n **Request Token**, this is the **Authorization Request**.\n* If the user is not logged in the the **Server**, they are prompted to log in.\n* The user is redirected to the **Client** including the **Request Token** and a\n **Auth Token**, this is the ``Authentication Request``.\n* The **Client**'s Python code does a HTTP request to the **Server** to verify the\n **Auth Token**, this is called the **Auth Token Verification Request**.\n* If the **Auth Token** is valid, the **Server** returns a serialized Django User\n object.\n* The **Client** logs the user in using the Django User recieved from the **Server**.\n\n\n********\nRequests\n********\n\nGeneral\n-------\n\nAll requests have a ``signature`` and ``key`` parameter, see **Security**.\n\nRequest Token Request\n---------------------\n\n* Client: Python\n* Target: **Server**\n* Method: GET\n* Extra Parameters: None\n* Responses:\n\n * ``200``: Everything went fine, the body of the response is a url encoded\n query string containing with the ``request_token`` key holding the\n **Request Token** as well as the ``signature``.\n * ``400``: Bad request (missing GET parameters)\n * ``403``: Forbidden (invalid signature)\n\n\nAuthorization Request\n---------------------\n\n* Client: Browser (User)\n* Target: **Server**\n* Method: GET\n* Extra Parameters:\n\n * ``request_token``\n\n* Responses:\n\n * ``200``: Everything okay, prompt user to log in or continue.\n * ``400``: Bad request (missing GET parameter).\n * ``403``: Forbidden (invalid **Request Token**).\n\n\nAuthentication Request\n----------------------\n\n* Client: Browser (User)\n* Target: **Client**\n* Method: GET\n* Extra Parameters:\n\n * ``request_token``: The **Request Token** returned by the\n **Request Token Request**.\n * ``auth_token``: The **Auth Token** generated by the **Authorization Request**.\n\n* Responses:\n\n * ``200``: Everything went fine, the user is now logged in.\n * ``400``: Bad request (missing GET parameters).\n * ``403``: Forbidden (invalid **Request Token**).\n\n\nAuth Token Verification Request\n-------------------------------\n\n* Client: Python\n* Target: **Server**\n* Method: GET\n* Extra Parameters:\n\n * ``auth_token``: The **Auth Token** obtained by the **Authentication Request**.\n\n* Responses:\n\n * ``200``: Everything went fine, the body of the response is a url encoded\n query string containing the ``user`` key which is the JSON serialized\n representation of the Django user to create as well as the ``signature``.\n\n\n********\nSecurity\n********\n\nEvery request is signed using HMAC-SHA256. The signature is in the ``signature``\nparameter. The signature message is the urlencoded, alphabetically ordered\nquery string. The signature key is the **Secret** of the **Client**. To verify\nthe signature the ``key`` paramater holding the **key** of the **Client** is\nalso sent with every request from the **Client** to the **Server**.\n\nExample\n-------\n\nGET Request with the GET parameters ``key=bundle123`` and the private key\n``secret key``: ``fbf6396d0fc40d563e2be3c861f7eb5a1b821b76c2ac943d40a7a63b288619a9``\n\n\n***************\nThe User object\n***************\n\nThe User object returned by a successful **Auth Token Verification Request**\ndoes not contain all the information about the Django User, in particular, it\ndoes not contain the password.\n\nThe user object contains must contain at least the following data:\n\n* ``username``: The unique username of this user.\n* ``email``: The email of this user.\n* ``first_name``: The first name of this user, this field is required, but may\n be empty.\n* ``last_name``: The last name of this user, this field is required, but may\n be empty.\n* ``is_staff``: Can this user access the Django admin on the **Client**?\n* ``is_superuser``: Does this user have superuser access to the **Client**?\n* ``is_active``: Is the user active?\n\n\n**************\nImplementation\n**************\n\nOn the server\n-------------\n\n* Add ``simple_sso.sso_server`` to ``INSTALLED_APPS``.\n* Create an instance (potentially of a subclass) of\n ``simple_sso.sso_server.server.Server`` and include the return value of the \n ``get_urls`` method on that instance into your url patterns.\n\n\nOn the client\n-------------\n\n* Create a new instance of ``simple_sso.sso_server.models.Consumer`` on the\n **Server**.\n* Add the ``SIMPLE_SSO_SECRET`` and ``SIMPLE_SSO_KEY`` settings as provided by\n the **Server**'s ``simple_sso.sso_server.models.Client`` model.\n* Add the ``SIMPLE_SSO_SERVER`` setting which is the absolute URL pointing to\n the root where the ``simple_sso.sso_server.urls`` where include on the\n **Server**.\n* Add the ``simple_sso.sso_client.urls`` patterns somewhere on the client.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/aldryn/django-simple-sso", "keywords": "django sso", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-simple-sso", "package_url": "https://pypi.org/project/django-simple-sso/", "platform": "", "project_url": "https://pypi.org/project/django-simple-sso/", "project_urls": { "Homepage": "http://github.com/aldryn/django-simple-sso" }, "release_url": "https://pypi.org/project/django-simple-sso/0.14.1/", "requires_dist": null, "requires_python": "", "summary": "Simple SSO for Django", "version": "0.14.1" }, "last_serial": 5731297, "releases": { "0.10": [ { "comment_text": "", "digests": { "md5": "2c556a49baf40e4b3563d07dc34c217f", "sha256": "682d65c1b5d1df306e608d901a9cf10418a97f8ea973599c9a34136fa8fb3c0c" }, "downloads": -1, "filename": "django-simple-sso-0.10.tar.gz", "has_sig": false, "md5_digest": "2c556a49baf40e4b3563d07dc34c217f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10428, "upload_time": "2016-06-15T18:08:32", "url": "https://files.pythonhosted.org/packages/3e/cc/46aaf72b133c0e7fe267475c5bdc13779c19c69dc910f78434f232113da5/django-simple-sso-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "750d7563812d1bbec74de47620ee4a0e", "sha256": "35a7a83c29fc9229008a93ba3160f5b9a3a3d544c6532520c3ec73f929cee00a" }, "downloads": -1, "filename": "django-simple-sso-0.11.tar.gz", "has_sig": false, "md5_digest": "750d7563812d1bbec74de47620ee4a0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12448, "upload_time": "2017-03-01T10:45:23", "url": "https://files.pythonhosted.org/packages/f3/a3/6125148b13f5a38964d34ecf3d615449eb6c9e678cd15e6e0c3f28434a57/django-simple-sso-0.11.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "4ab7d71654ea61b2643f6623d3ea96f5", "sha256": "5041e82efe98c9f1c8c7a25dcb417a531ac51c0b6ec08b8d339a9d8770487025" }, "downloads": -1, "filename": "django_simple_sso-0.12.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4ab7d71654ea61b2643f6623d3ea96f5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16218, "upload_time": "2018-02-20T18:43:19", "url": "https://files.pythonhosted.org/packages/b7/bc/eb4a401806ebf401f70008cee732b46a77fdb4a8f6737a867a9d2caab1c3/django_simple_sso-0.12.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "946bb4b17d5fcd694fbe362a1309dfa1", "sha256": "a5110c9e6b8f5a83a051e4b3a73fcf27fe6470d9821e74b9b4966a072c598738" }, "downloads": -1, "filename": "django-simple-sso-0.12.0.tar.gz", "has_sig": false, "md5_digest": "946bb4b17d5fcd694fbe362a1309dfa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10667, "upload_time": "2018-02-20T18:43:16", "url": "https://files.pythonhosted.org/packages/20/66/c27c20785da0b46849f2a19a00af16bb3406ba251ed3e57564c4c0dadf00/django-simple-sso-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "0f16f06f2ef4c4c809d388a5a00d8e59", "sha256": "61ecc9e6f80851634710cc1d8f5c1f99d58c9db2e601c0cff23620d1c86a1f7b" }, "downloads": -1, "filename": "django_simple_sso-0.13.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0f16f06f2ef4c4c809d388a5a00d8e59", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16844, "upload_time": "2018-04-04T12:24:30", "url": "https://files.pythonhosted.org/packages/2e/c5/e29b279b4112a6adddd10dd8cf334f82496e1dec2b8cb3f14498a0759576/django_simple_sso-0.13.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20cf195b0671deef5c2f6895a6db2c3c", "sha256": "040bc5e0e85043a77c613d6a935f1f43125c9283fc7b46d3d9c227cdad0297d5" }, "downloads": -1, "filename": "django-simple-sso-0.13.0.tar.gz", "has_sig": false, "md5_digest": "20cf195b0671deef5c2f6895a6db2c3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10675, "upload_time": "2018-04-04T12:24:29", "url": "https://files.pythonhosted.org/packages/08/6a/187ee665da61b91594b316f68e8c8eaa648beb4ce794293e0c038719572b/django-simple-sso-0.13.0.tar.gz" } ], "0.13.1": [ { "comment_text": "", "digests": { "md5": "c1c51cf2cd91a9f11aa79111c10d4b68", "sha256": "2fcef34e246d0498cc6817be68d89588d16099e61352aa7379079dca6e2e7bae" }, "downloads": -1, "filename": "django_simple_sso-0.13.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c1c51cf2cd91a9f11aa79111c10d4b68", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16849, "upload_time": "2018-04-04T13:21:06", "url": "https://files.pythonhosted.org/packages/4b/95/ada791e2abfa6fcd3536286c250050b5828fe9e85d4483d7722de5ce8ac1/django_simple_sso-0.13.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa0ab020835b4e79f28e7b6e0e4f439a", "sha256": "12d645c1ac54b000699ce932a0585960741a1f21fd33e3fc661222760073e98a" }, "downloads": -1, "filename": "django-simple-sso-0.13.1.tar.gz", "has_sig": false, "md5_digest": "fa0ab020835b4e79f28e7b6e0e4f439a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10678, "upload_time": "2018-04-04T13:21:04", "url": "https://files.pythonhosted.org/packages/39/9a/c673a754bd5910abccf2037e9d4dcf1594557e547f6cffc08f3f7c829d76/django-simple-sso-0.13.1.tar.gz" } ], "0.13.2": [ { "comment_text": "", "digests": { "md5": "00bab56d3d114605d3483e62b0f0c752", "sha256": "9328aad58b2fd41b870b088058eda6433ed171b0ab26c9c754d9f7f6a10adc7f" }, "downloads": -1, "filename": "django_simple_sso-0.13.2-py2-none-any.whl", "has_sig": false, "md5_digest": "00bab56d3d114605d3483e62b0f0c752", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16896, "upload_time": "2018-04-04T13:40:22", "url": "https://files.pythonhosted.org/packages/a0/5b/818b3a5d3a1f37387e1bcaf408c21053de6d4ebca490f23f41e8f25ae5bf/django_simple_sso-0.13.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11d1b917205bb1a732d6fc77b2dad4b2", "sha256": "435e25375599421eabf20cc4e1b19c4a0f65109cc60881dc8e88c895ced94cc0" }, "downloads": -1, "filename": "django-simple-sso-0.13.2.tar.gz", "has_sig": false, "md5_digest": "11d1b917205bb1a732d6fc77b2dad4b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10733, "upload_time": "2018-04-04T13:40:21", "url": "https://files.pythonhosted.org/packages/55/83/35f41148c8f0aa458ca348ebd8767cf22086f3cbd37ad13683a2e8ea2ace/django-simple-sso-0.13.2.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "1b7244be846d793e46ce270161eaf100", "sha256": "9fba621f6478655ee99ee30bf8757218581c2383dc97d808152fe9619bbd026d" }, "downloads": -1, "filename": "django-simple-sso-0.14.0.tar.gz", "has_sig": false, "md5_digest": "1b7244be846d793e46ce270161eaf100", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12920, "upload_time": "2018-11-27T12:42:48", "url": "https://files.pythonhosted.org/packages/ba/93/424e32993cf2ca1a87ecd495c80f2f88f4a6ac9a35a6484aee96a43f982e/django-simple-sso-0.14.0.tar.gz" } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "8e020a13888a7c52e028a6e0009f3bcb", "sha256": "b3dd05c00ee4152d39b6fe5b267cf589e1759e12ae9b0f6b9d3ca853a8f132c3" }, "downloads": -1, "filename": "django-simple-sso-0.14.1.tar.gz", "has_sig": false, "md5_digest": "8e020a13888a7c52e028a6e0009f3bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10811, "upload_time": "2019-08-26T14:43:18", "url": "https://files.pythonhosted.org/packages/c9/4f/1bbae643d3e0c25fe7381e8d3ae8e64794106318348e99c99e767dda4c02/django-simple-sso-0.14.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "62c8dd135195e62b56bce64539c767fc", "sha256": "734b933dd03cd985b914a522ebb994f8649aa97dc306ff695d5c397873404aa9" }, "downloads": -1, "filename": "django-simple-sso-0.3.tar.gz", "has_sig": false, "md5_digest": "62c8dd135195e62b56bce64539c767fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14590, "upload_time": "2011-08-18T17:02:39", "url": "https://files.pythonhosted.org/packages/81/8e/adbebe23d8e4ef312b5639f8835b157091a5f0e0d19ac7d6740eb26da5be/django-simple-sso-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a2f8164d760455d02b969a1a1c6b2f5d", "sha256": "34335466df29246c228f4e837c08aa66c57003bef9c79d388a9c72df213d8113" }, "downloads": -1, "filename": "django-simple-sso-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a2f8164d760455d02b969a1a1c6b2f5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11035, "upload_time": "2011-08-18T17:26:13", "url": "https://files.pythonhosted.org/packages/55/75/12ccbbf1903a5c85f0a44df7a5fb0b804d3694adb9409c8f3ad00a0d137e/django-simple-sso-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e71e75367508ffd1831a79e794f50505", "sha256": "479e4d723067a84c237c7cff52eee488a0fa946a8b857a83b083ac44880503ab" }, "downloads": -1, "filename": "django-simple-sso-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e71e75367508ffd1831a79e794f50505", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11373, "upload_time": "2011-10-25T18:24:47", "url": "https://files.pythonhosted.org/packages/91/71/5293feaefc3bd17a57e2c17a6205cf8f931b3ae86b56a857fbfb64b8bfd6/django-simple-sso-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "4276cac4b6be67b6ab6a2885654ffc13", "sha256": "feb4cb3afd3e8285fc8650946735eeb5f32ba29ea4e44140cc5679a0c21e9015" }, "downloads": -1, "filename": "django-simple-sso-0.5.0.tar.gz", "has_sig": false, "md5_digest": "4276cac4b6be67b6ab6a2885654ffc13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12391, "upload_time": "2011-11-03T15:29:09", "url": "https://files.pythonhosted.org/packages/27/c3/abfba5a72f31a81e8ba24712150a7d3990ceb5ea04d279ddd5d0b37d25cb/django-simple-sso-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "aaa9ca05ca7048807b7ff1802c715306", "sha256": "9d3c20ae3e97f337a0f913a29c98ed44061c9311e44eafc8473dfb02491321d2" }, "downloads": -1, "filename": "django-simple-sso-0.5.1.tar.gz", "has_sig": false, "md5_digest": "aaa9ca05ca7048807b7ff1802c715306", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12760, "upload_time": "2011-11-03T15:42:11", "url": "https://files.pythonhosted.org/packages/01/1b/d39b8c1dea7ca1423b00b65d6d018881a844fa6b4ee48bcd7e676be53dc2/django-simple-sso-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "c1520410046a89f405934be13192db32", "sha256": "daf3730d89bd8dd62d71a168a501252f42041d17c5237b63803a28b5e0c69fcd" }, "downloads": -1, "filename": "django-simple-sso-0.6.0.tar.gz", "has_sig": false, "md5_digest": "c1520410046a89f405934be13192db32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12802, "upload_time": "2011-11-17T14:55:38", "url": "https://files.pythonhosted.org/packages/70/c3/7abd88b57adb82484a06c7a12b40f6eb195cc5786308940d0c95cb6663f5/django-simple-sso-0.6.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "0c33d81192541e08a19c33dd93f9f98e", "sha256": "50bf14c7139ae6fc49e02b69c0f05f234d2b0c959c63f8f715428b4954c86c80" }, "downloads": -1, "filename": "django-simple-sso-0.9.0.tar.gz", "has_sig": false, "md5_digest": "0c33d81192541e08a19c33dd93f9f98e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11456, "upload_time": "2012-11-27T23:12:06", "url": "https://files.pythonhosted.org/packages/c3/44/21100a7f197769983c1ec83d0d7b6ef30503b3bf9fe03a3ec1da51114a97/django-simple-sso-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "2116a6c6fc0401215d59a9011e3e5248", "sha256": "721e2176852a7c14aa39c189206b48b41a26fb036acf503550448018b1e18c05" }, "downloads": -1, "filename": "django-simple-sso-0.9.1.tar.gz", "has_sig": false, "md5_digest": "2116a6c6fc0401215d59a9011e3e5248", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11473, "upload_time": "2012-11-28T10:58:35", "url": "https://files.pythonhosted.org/packages/fa/c6/687251826e915bc819fb69d7fbb7876e3cb32acd04d0c4a6990b724ea1d7/django-simple-sso-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "69b22b6f542c90a59667cbead678a41d", "sha256": "824ee668cccf7fe6b1876ee59d15659ba1ef4fd9a35af5b6d8f4da06990bcc13" }, "downloads": -1, "filename": "django-simple-sso-0.9.2.tar.gz", "has_sig": false, "md5_digest": "69b22b6f542c90a59667cbead678a41d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11483, "upload_time": "2012-11-29T10:35:49", "url": "https://files.pythonhosted.org/packages/2b/af/9abe1ab6a841c542a33d959f5e64d22bd15a549749edafec7052682b7cb8/django-simple-sso-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "938a718bff124be4e898f84cb0db8347", "sha256": "d9e58f63b395fee5fc325095760d8b037602f48c3fe4272d13e47e4de8f4edbf" }, "downloads": -1, "filename": "django_simple_sso-0.9.3-py2.7.egg", "has_sig": false, "md5_digest": "938a718bff124be4e898f84cb0db8347", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 29092, "upload_time": "2013-11-13T15:54:23", "url": "https://files.pythonhosted.org/packages/3d/18/5c2dea318937f7766ec0e48bdd2467ec4e3fd48a6fe4693370c516cea9fa/django_simple_sso-0.9.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cb2293e0a941c26cd66651d6ea62b9d0", "sha256": "32b36caffc46660bfa1e409adbaa731b4c617f062263ee141257f0374eadd17d" }, "downloads": -1, "filename": "django-simple-sso-0.9.3.tar.gz", "has_sig": false, "md5_digest": "cb2293e0a941c26cd66651d6ea62b9d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13318, "upload_time": "2013-11-13T15:54:26", "url": "https://files.pythonhosted.org/packages/26/26/e534659a0b1082359fd55a28871809322eb6beae46b6c8e9774c822c9845/django-simple-sso-0.9.3.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "aa2dea021686072da045f287996ca46b", "sha256": "2781eb256d2f5393469aabcea63ce02a68bc6f1972705be25976f6c3f47cabb8" }, "downloads": -1, "filename": "django-simple-sso-0.9.9.tar.gz", "has_sig": false, "md5_digest": "aa2dea021686072da045f287996ca46b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11815, "upload_time": "2016-05-10T15:59:02", "url": "https://files.pythonhosted.org/packages/d8/de/3abf65b94225449e6c064f53183b906531dd45b3f1e03c9ee88385c0717e/django-simple-sso-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8e020a13888a7c52e028a6e0009f3bcb", "sha256": "b3dd05c00ee4152d39b6fe5b267cf589e1759e12ae9b0f6b9d3ca853a8f132c3" }, "downloads": -1, "filename": "django-simple-sso-0.14.1.tar.gz", "has_sig": false, "md5_digest": "8e020a13888a7c52e028a6e0009f3bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10811, "upload_time": "2019-08-26T14:43:18", "url": "https://files.pythonhosted.org/packages/c9/4f/1bbae643d3e0c25fe7381e8d3ae8e64794106318348e99c99e767dda4c02/django-simple-sso-0.14.1.tar.gz" } ] }