{ "info": { "author": "Clayton Daley", "author_email": "technology+saml2_signout_slo@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django :: 1.10", "Framework :: Django :: 1.5", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# django-saml2-auth-signout-slo\n\nA plugin to support Single LogOff (SLO) in django-saml2-auth\n\n# Introduction\n\nBy default, django-saml2-auth only signs out users in the local Django application. For security reasons,\nthe logout needs to be passed to the IdP (identity provider). Otherwise, a user who clicks the login\nbutton will be logged in again without providing a password (or otherwise).\n\n# Example\n\nIn settings.py:\n\n INSTALLED_APPS += (\n ...\n 'django_saml2_auth',\n # ensure the plugin is loaded\n 'django_saml2_auth_signout_slo',\n ...\n )\n \n # this is the \"usual\" config object from django-saml2-auth\n SAML2_AUTH = {\n 'DEFAULT_NEXT_URL': '/',\n 'PLUGINS': {\n # use this package in lieu of DEFAULT signout plugin \n 'SINGOUT': ['SLO'],\n }\n # django_saml2_auth doesn't support these natively so the package injects them\n 'SIGNOUT_SLO': {\n 'CERT': \n 'KEY': \n }\n }\n\n# Microsoft AD FS\n\nWARNING: ADFS SLO will not work with unsigned requests. This means that you must provide a key and a cert and upload \nthe cert to the ADFS Relaying Party Trust. If you cannot -- or do not want to -- provide a certificate, see the \n`-django-saml2-auth-signout-redirect` plugin. Instead of a true Single SingOut, this plugin will redirect the user to\nthe `idpinitiatedsignon` page, permitting the user to complete the signout manually. \n\nThere are several issues using this package with ADFS:\n\n - ADFS does not provide a NameID by default. NameID is required (at least by PySAML2) for SLO.\n - ADFS does not expose an SLO endpoint by default.\n \nThe following are one way to address these issues (but use at your own risk). The Name ID strategy was taken from \n[this article](https://blogs.msdn.microsoft.com/card/2010/02/17/name-identifiers-in-saml-assertions/). The SLO \nendpoint was taken from [this article](https://help.mulesoft.com/s/article/Configuring-ADFS-SLO-endpoint). \n\n - In your SAMLConfig, add the line:\n \n 'NAME_ID_FORMAT': 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',\n \n - In your ADFS Claim Rules, add a custom rule (\"Send Claims Using a Custom Rule\"):\n\n c:[Type == \"http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname\"]\n => add(\n store = \"_OpaqueIdStore\",\n types = (\"http://mycompany/internal/persistentId\"),\n query = \"{0};{1};{2}\",\n param = \"ppid\",\n param = c.Value,\n param = c.OriginalIssuer\n );\n\n - In your ADFS Claim Rules, add a Transform Rule:\n - Incoming claim type: `http://mycompany/internal/persistentId` (literally this, don't change mycompany)\n - Outgoing claim type: `NameID`\n - Outgoing name ID format: `Persistent Identifier`\n\n - Under the Relaying Party Trust's `Properties` -> `Endpoints` tab, add a SAML Logout Endpoint:\n \n - Binding: `POST`\n - Trusted URL: Your ADFS endpoint, something like `https:///adfs/ls`\n - Response URL: empty\n \n - Under the Relaying Party Trust's `Properties` -> `Endpoints` tab", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ambsw/django-saml2-auth-signout-slo", "keywords": "Django SAML2 Plugin for Single LogOut (SLO)", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "django-saml2-auth-signout-slo", "package_url": "https://pypi.org/project/django-saml2-auth-signout-slo/", "platform": "", "project_url": "https://pypi.org/project/django-saml2-auth-signout-slo/", "project_urls": { "Homepage": "https://github.com/ambsw/django-saml2-auth-signout-slo" }, "release_url": "https://pypi.org/project/django-saml2-auth-signout-slo/0.0.10/", "requires_dist": null, "requires_python": "", "summary": "Single LogOut (SLO) plugin for django_saml2_auth", "version": "0.0.10" }, "last_serial": 5897051, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "82b9c6428189ea3fec65c5dc656c7833", "sha256": "629aa8b5d24daecf6579fea46f921cde650e8377ed24711bb32b6f3d051b891e" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.1.tar.gz", "has_sig": false, "md5_digest": "82b9c6428189ea3fec65c5dc656c7833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2980, "upload_time": "2019-09-22T03:19:46", "url": "https://files.pythonhosted.org/packages/d0/2f/f191375d070afbda0b5c9cb8e41e124aacde28ed988080bc4ea6a96f720b/django_saml2_auth_signout_slo-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "bb87f62ac25f0bc48829d72a0a69c86b", "sha256": "00989a9f441c35b9f946d732aba99232e8242887d4abd07e80c01e6c9c2911ef" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.10.tar.gz", "has_sig": false, "md5_digest": "bb87f62ac25f0bc48829d72a0a69c86b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5080, "upload_time": "2019-09-27T16:48:59", "url": "https://files.pythonhosted.org/packages/76/31/3e055f6cd8b9aa7d2e37039334b25f2afd64954684f9e55658b1e1480769/django_saml2_auth_signout_slo-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "cdb984a5b491a3ba9431a272f510c3eb", "sha256": "635220ff99558f7b3b3a6e622759eed56bcff717c453798e714b7ca2e8b7d52c" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.2.tar.gz", "has_sig": false, "md5_digest": "cdb984a5b491a3ba9431a272f510c3eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3061, "upload_time": "2019-09-24T03:34:32", "url": "https://files.pythonhosted.org/packages/40/ea/140ae54998dbb26f4cec72ccd01137757a3168a3b2480b34dc6ee9630296/django_saml2_auth_signout_slo-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "871fe9dc994f0d9d63eedde4eb01089c", "sha256": "30bfb5bcb6359addd159cc5683af9278492aa94be12df1498c538f5e2700cabc" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.3.tar.gz", "has_sig": false, "md5_digest": "871fe9dc994f0d9d63eedde4eb01089c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3088, "upload_time": "2019-09-25T03:05:25", "url": "https://files.pythonhosted.org/packages/69/71/059cc9692d059df463271949eb6a141cd6d50bf79b1a451bf90e9807ab90/django_saml2_auth_signout_slo-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "04fae91e823d10a55cc280bb0ebb40fc", "sha256": "0509c8f4a9cb410a033498de32624f2b360675fc003233199158e6da86aaa035" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.4.tar.gz", "has_sig": false, "md5_digest": "04fae91e823d10a55cc280bb0ebb40fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3105, "upload_time": "2019-09-25T04:54:04", "url": "https://files.pythonhosted.org/packages/29/3f/b77cc719a0ffb968f266079c491c0d9fbd3ed0e3d4fa529ce01f4cf5cbbc/django_saml2_auth_signout_slo-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "1f43d20d683aa6590347d07dbbc5c32b", "sha256": "1b9d96334904eb0f8cdd55dcd112b4d95d54e848b8dd25213d9cbad48ca82bb0" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.5.tar.gz", "has_sig": false, "md5_digest": "1f43d20d683aa6590347d07dbbc5c32b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3401, "upload_time": "2019-09-26T13:38:21", "url": "https://files.pythonhosted.org/packages/b4/d4/941cce2584e70e117b05e1e0c5d88b2c1b113da5ed25e7b4c44291a45111/django_saml2_auth_signout_slo-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "32aa8a7e7af2fc3e4ca9de9971bb1a15", "sha256": "6a9fee96d2a5d4ae626c3ec2a6ae7c526ee5e924db407cd98cff188a7633a676" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.6.tar.gz", "has_sig": false, "md5_digest": "32aa8a7e7af2fc3e4ca9de9971bb1a15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4521, "upload_time": "2019-09-26T19:02:16", "url": "https://files.pythonhosted.org/packages/0c/d9/8bea18a74d3f3805a52c3799c19dffed839dbb8627a4ef1817bed523f490/django_saml2_auth_signout_slo-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "9dbe2439fcdf4f5b00c42930d36ea1ae", "sha256": "e216ee0fa07f748514a3b91f0665ea9e4081e0d736528d895d1accae7df59432" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.7.tar.gz", "has_sig": false, "md5_digest": "9dbe2439fcdf4f5b00c42930d36ea1ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5047, "upload_time": "2019-09-27T14:55:02", "url": "https://files.pythonhosted.org/packages/5b/34/98b450450be42e5642d4157006422f47c51e388f7c70213f1935d269eb4d/django_saml2_auth_signout_slo-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8535e4c3a5b6e5a77ba57993c3b2d3b2", "sha256": "4075c1d48e291d6d8eb0b48dfe686a260d5a3f6ed1a3e2151504897249537cba" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.8.tar.gz", "has_sig": false, "md5_digest": "8535e4c3a5b6e5a77ba57993c3b2d3b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5051, "upload_time": "2019-09-27T15:21:40", "url": "https://files.pythonhosted.org/packages/19/b0/8baa2ec16519e0457dfe68539caf0531c650e8bd9248266267d93c7924f1/django_saml2_auth_signout_slo-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "9509b46b786b43738e868a586bdd0c5b", "sha256": "b8e0b89e59b9e07adfa902945f9c328238a4590b19a00b6d69a917cc94054060" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.9.tar.gz", "has_sig": false, "md5_digest": "9509b46b786b43738e868a586bdd0c5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5074, "upload_time": "2019-09-27T16:43:54", "url": "https://files.pythonhosted.org/packages/b5/3b/a577885410ced564f3545a5e566de470a175ea82cfb601c67df9e6f4cbfc/django_saml2_auth_signout_slo-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb87f62ac25f0bc48829d72a0a69c86b", "sha256": "00989a9f441c35b9f946d732aba99232e8242887d4abd07e80c01e6c9c2911ef" }, "downloads": -1, "filename": "django_saml2_auth_signout_slo-0.0.10.tar.gz", "has_sig": false, "md5_digest": "bb87f62ac25f0bc48829d72a0a69c86b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5080, "upload_time": "2019-09-27T16:48:59", "url": "https://files.pythonhosted.org/packages/76/31/3e055f6cd8b9aa7d2e37039334b25f2afd64954684f9e55658b1e1480769/django_saml2_auth_signout_slo-0.0.10.tar.gz" } ] }