{ "info": { "author": "Anders Innovations", "author_email": "info@anders.fi", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django :: 1.5", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Framework :: Django :: 1.10", "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 Authentication AI\n==============================\n\nThis project aims to provide a dead simple way to integrate SAML2\nAuthentication into your Django powered app. Try it now, and get rid of the\ncomplicated configuration of SAML.\n\nAny SAML2 based SSO (Single-Sign-On) identity provider with dynamic metadata\nconfiguration is supported by this Django plugin, for example Okta.\n\nThis project is a fork of django-saml2-auth_ by `Fang Li`_.\n\n.. _django-saml2-auth: https://github.com/fangli/django-saml2-auth\n.. _`Fang Li`: https://github.com/fangli\n\n|PyPI|\n\n.. |PyPI| image::\n https://img.shields.io/pypi/v/django-saml2-auth-ai.svg\n :target: https://pypi.org/project/django-saml2-auth-ai/\n\n\nDependencies\n------------\n\nThis plugin is compatible with Django 1.8, 1.9, 1.10, 1.11, and 2.0.\nThe `pysaml2` Python module is required.\n\n\nInstall\n-------\n\nYou can install this plugin via `pip`:\n\n.. code-block:: bash\n\n # pip install django-saml2-auth-ai\n\nor from source:\n\n.. code-block:: bash\n\n # git clone https://github.com/andersinno/django-saml2-auth-ai\n # cd django-saml2-auth-ai\n # python setup.py install\n\nxmlsec is also required by pysaml2:\n\n.. code-block:: bash\n\n # yum install xmlsec1\n // or\n # apt install xmlsec1\n\n\nWhat does this plugin do?\n-------------------------\n\nThis plugin takes over Django's login page and redirect the user to a SAML2\nSSO authentication service. Once the user is logged in and redirected back,\nthe plugin will check if the user is already in the system. If not, the user\nwill be created using Django's default UserModel, otherwise the user will be\nredirected to their last visited page.\n\n\n\nHow to use?\n-----------\n\n#. Import the views module in your root urls.py\n\n .. code-block:: python\n\n import django_saml2_auth.views\n\n#. Override the default login page in the root urls.py file, by adding these\n lines **BEFORE** any `urlpatterns`:\n\n .. code-block:: python\n\n # These are the SAML2 related URLs. You can change \"^saml2_auth/\" regex to\n # any path you want, like \"^sso_auth/\", \"^sso_login/\", etc. (required)\n url(r'^saml2_auth/', include('django_saml2_auth.urls')),\n\n # The following line will replace the default user login with SAML2 (optional)\n # If you want to specific the after-login-redirect-URL, use parameter \"?next=/the/path/you/want\"\n # with this view.\n url(r'^accounts/login/$', django_saml2_auth.views.signin),\n\n # The following line will replace the admin login with SAML2 (optional)\n # If you want to specific the after-login-redirect-URL, use parameter \"?next=/the/path/you/want\"\n # with this view.\n url(r'^admin/login/$', django_saml2_auth.views.signin),\n\n#. Add 'django_saml2_auth' to INSTALLED_APPS\n\n .. code-block:: python\n\n INSTALLED_APPS = [\n '...',\n 'django_saml2_auth',\n ]\n\n#. In settings.py, add the SAML2 related configuration.\n\n Please note, the only required setting is **METADATA_AUTO_CONF_URL**.\n The following block shows all required and optional configuration settings\n and their default values.\n\n .. code-block:: python\n\n SAML2_AUTH = {\n # Required setting\n 'SAML_CLIENT_SETTINGS': { # Pysaml2 Saml client settings (https://pysaml2.readthedocs.io/en/latest/howto/config.html)\n 'entityid': 'https://mysite.com/saml2_auth/acs/', # The optional entity ID string to be passed in the 'Issuer' element of authn request, if required by the IDP.\n 'metadata': {\n 'remote': [\n {\n \"url\": 'https://mysite.com/metadata.xml', # The auto(dynamic) metadata configuration URL of SAML2\n },\n ],\n },\n },\n\n # Optional settings below\n 'DEFAULT_NEXT_URL': '/admin', # Custom target redirect URL after the user get logged in. Default to /admin if not set. This setting will be overwritten if you have parameter ?next= specificed in the login URL.\n 'NEW_USER_PROFILE': {\n 'USER_GROUPS': [], # The default group name when a new user logs in\n 'ACTIVE_STATUS': True, # The default active status for new users\n 'STAFF_STATUS': True, # The staff status for new users\n 'SUPERUSER_STATUS': False, # The superuser status for new users\n },\n 'ATTRIBUTES_MAP': { # Change Email/UserName/FirstName/LastName to corresponding SAML2 userprofile attributes.\n 'email': 'Email',\n 'username': 'UserName',\n 'first_name': 'FirstName',\n 'last_name': 'LastName',\n },\n 'TRIGGER': {\n 'FIND_USER': 'path.to.your.find.user.hook.method',\n 'NEW_USER': 'path.to.your.new.user.hook.method',\n 'CREATE_USER': 'path.to.your.create.user.hook.method',\n 'BEFORE_LOGIN': 'path.to.your.login.hook.method',\n },\n 'ASSERTION_URL': 'https://mysite.com', # Custom URL to validate incoming SAML requests against\n }\n\n#. In your SAML2 SSO identity provider, set the Single-sign-on URL and Audience\n URI(SP Entity ID) to http://your-domain/saml2_auth/acs/\n\n\nExplanation\n~~~~~~~~~~~\n\n**NEW_USER_PROFILE** Default settings for newly created users\n\n**ATTRIBUTES_MAP** Mapping of Django user attributes to SAML2 user attributes\n\n**TRIGGER** Hooks to trigger additional actions during user login and creation\nflows. These TRIGGER hooks are strings containing a `dotted module name `_\nwhich point to a method to be called. The referenced method should accept a\nsingle argument which is a dictionary of attributes and values sent by the\nidentity provider, representing the user's identity.\n\n**TRIGGER.FIND_USER** A function to be called when trying to find user.\nThe function is called with one positional argument: a dictionary of the\nuser data received from SAML.\n\n**TRIGGER.CREATE_USER** A function to be called upon new user creation.\nIt will be called before the new user is logged in and after the user's\nrecord is created. The function is called with two positional\narguments: User model instance and a dictionary of the user data\nreceived from SAML.\n\n**TRIGGER.NEW_USER** A function to be called upon new user creation.\nIt will be called before the user's record is saved. The function is\ncalled with two positional arguments: User model instance and a dictionary\nof the user data received from SAML.\n\n**TRIGGER.BEFORE_LOGIN** A function to be called when an existing user\nlogs in. It will be called before the user is logged in and after the\nuser attributes are returned by the SAML2 identity provider. The\nfunction is called with two positional arguments: User model instance\nand a dictionary of the user data received from SAML.\n\n**ASSERTION_URL** A URL to validate incoming SAML responses against. By default,\ndjango-saml2-auth will validate the SAML response's Service Provider address\nagainst the actual HTTP request's host and scheme. If this value is set, it\nwill validate against ASSERTION_URL instead - perfect for when django running\nbehind a reverse proxy.\n\nCustomize\n---------\n\nThe default permission `denied` page and user `welcome` page can be\noverridden.\n\nTo override these pages put a template named 'django_saml2_auth/welcome.html'\nor 'django_saml2_auth/denied.html' in your project's template folder.\n\nIf a 'django_saml2_auth/welcome.html' template exists, that page will be shown\nto the user upon login instead of the user being redirected to the previous\nvisited page. This welcome page can contain some first-visit notes and welcome\nwords. The `Django user object `_\nis available within the template as the `user` template variable.\n\nTo enable a logout page, add the following lines to urls.py, before any\n`urlpatterns`:\n\n.. code-block:: python\n\n # The following line will replace the default user logout with the signout page (optional)\n url(r'^accounts/logout/$', django_saml2_auth.views.signout),\n\n # The following line will replace the default admin user logout with the signout page (optional)\n url(r'^admin/logout/$', django_saml2_auth.views.signout),\n\nTo override the built in signout page put a template named\n'django_saml2_auth/signout.html' in your project's template folder.\n\nIf your SAML2 identity provider uses user attribute names other than the\ndefaults listed in the `settings.py` `ATTRIBUTES_MAP`, update them in\n`settings.py`.\n\n\nFor Okta Users\n--------------\n\nI created this plugin originally for Okta.\n\nThe METADATA_AUTO_CONF_URL needed in `settings.py` can be found in the Okta\nweb UI by navigating to the SAML2 app's `Sign On` tab, in the Settings box.\nYou should see :\n\n`Identity Provider metadata is available if this application supports dynamic configuration.`\n\nThe `Identity Provider metadata` link is the METADATA_AUTO_CONF_URL.\n\n\nHow to Contribute\n-----------------\n\n#. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.\n#. Fork `the repository`_ on GitHub to start making your changes to the **master** branch (or branch off of it).\n#. Write a test which shows that the bug was fixed or that the feature works as expected.\n#. Send a pull request and bug the maintainer until it gets merged and published. :) Make sure to add yourself to AUTHORS_.\n\n.. _`the repository`: http://github.com/andersinno/django-saml2-auth-ai\n.. _AUTHORS: https://github.com/andersinno/django-saml2-auth-ai/blob/master/AUTHORS.rst\n\nLicense\n-------\n\nCopyright 2016-2018 Fang Li\n\nCopyright 2018 Anders Innovations\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/andersinno/django-saml2-auth-ai", "keywords": "Django,SAML2,authentication,SSO", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "django-saml2-auth-ai", "package_url": "https://pypi.org/project/django-saml2-auth-ai/", "platform": "", "project_url": "https://pypi.org/project/django-saml2-auth-ai/", "project_urls": { "Homepage": "https://github.com/andersinno/django-saml2-auth-ai" }, "release_url": "https://pypi.org/project/django-saml2-auth-ai/2.1.6/", "requires_dist": [ "pysaml2 (>=4.5.0)" ], "requires_python": "", "summary": "Django SAML2 Authentication AI", "version": "2.1.6", "yanked": false, "yanked_reason": null }, "last_serial": 6240129, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0c73ed858493787780515d042c931d1a", "sha256": "849f4cc2cf345c9348792343ecd8cbdc59fffb1e497956d8393b0fe7a011d6ef" }, "downloads": -1, "filename": "django_saml2_auth_ai-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c73ed858493787780515d042c931d1a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13050, "upload_time": "2018-08-24T11:46:11", "upload_time_iso_8601": "2018-08-24T11:46:11.143440Z", "url": "https://files.pythonhosted.org/packages/12/10/222ccd6fba92f199953abb80645702d9921cfd397613e2fe0c1dcb17b7ec/django_saml2_auth_ai-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "be5cdc252efb8fe99fb607a1bf4477a8", "sha256": "ad3fac27ec23f31d60ca8f2d28babc943b08cd9f12a6d2d7545961c7edecdbf3" }, "downloads": -1, "filename": "django-saml2-auth-ai-1.0.0.tar.gz", "has_sig": false, "md5_digest": "be5cdc252efb8fe99fb607a1bf4477a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13511, "upload_time": "2018-08-24T11:46:12", "upload_time_iso_8601": "2018-08-24T11:46:12.400591Z", "url": "https://files.pythonhosted.org/packages/33/68/5f1b907b21feda1783b3a94d6c936033c0f6ad6001a27d81653d7ae108f2/django-saml2-auth-ai-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8bae9d85414ac6fde3bb91ec02a77a2f", "sha256": "e0b29daf50792b63a4bd2971441a7d372a1b3988e533d964c652798c3a711b15" }, "downloads": -1, "filename": "django_saml2_auth_ai-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8bae9d85414ac6fde3bb91ec02a77a2f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13045, "upload_time": "2018-08-24T11:51:30", "upload_time_iso_8601": "2018-08-24T11:51:30.512088Z", "url": "https://files.pythonhosted.org/packages/bf/a3/e736ec19d4ba32d2b3a02c8cec6bcf0312ba57eab1f124a25406e0654fca/django_saml2_auth_ai-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8f994b8012d948ba73b32880291934ab", "sha256": "5c558b5160f246f112593e6faf975994b9813ae04814759aedcdf5dfdc82b681" }, "downloads": -1, "filename": "django-saml2-auth-ai-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8f994b8012d948ba73b32880291934ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13516, "upload_time": "2018-08-24T11:51:31", "upload_time_iso_8601": "2018-08-24T11:51:31.917055Z", "url": "https://files.pythonhosted.org/packages/bd/42/1e7863948b37466bfdb69747933554d06df4306b5db10d8429a32bd157f9/django-saml2-auth-ai-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "231c62c3671c71e1b0a7cf98b7019e1c", "sha256": "1296c0269393321906f9cc91bef403bcd75926373e84620fb33843c187051f64" }, "downloads": -1, "filename": "django_saml2_auth_ai-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "231c62c3671c71e1b0a7cf98b7019e1c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13039, "upload_time": "2018-08-24T12:03:28", "upload_time_iso_8601": "2018-08-24T12:03:28.041111Z", "url": "https://files.pythonhosted.org/packages/f3/16/8b0debd31877eced9b37227d5f1676724d60b9b894aa85e091eda065df2d/django_saml2_auth_ai-1.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "be1e603b72f4000f2bb14732a4afebdd", "sha256": "23c5162868da32261600bfd3180738b30edd632bfb5fb6114719d461c1ffcfbd" }, "downloads": -1, "filename": "django-saml2-auth-ai-1.1.0.tar.gz", "has_sig": false, "md5_digest": "be1e603b72f4000f2bb14732a4afebdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13514, "upload_time": "2018-08-24T12:03:29", "upload_time_iso_8601": "2018-08-24T12:03:29.262018Z", "url": "https://files.pythonhosted.org/packages/cf/40/cbc9787019240047b0644192a406281f5a30894cf49985938da86a4ec279/django-saml2-auth-ai-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "2a3fc97c9132e8eddb4ced3d46986752", "sha256": "d05491eb0e8191034037d8f33fef960c31be534713094c298ccfdc325a7d4b8b" }, "downloads": -1, "filename": "django_saml2_auth_ai-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a3fc97c9132e8eddb4ced3d46986752", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13067, "upload_time": "2018-09-05T10:25:34", "upload_time_iso_8601": "2018-09-05T10:25:34.894856Z", "url": "https://files.pythonhosted.org/packages/77/61/1b0b9be18f949266241668352c533f04a428f508a8042196cc660a06f0d1/django_saml2_auth_ai-1.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eac6b001c18d668e0db1e44a96e77872", "sha256": "5ba86063f054bc90a5c2c927e7ec39af0a45ef782bfdac446ff4774607a979eb" }, "downloads": -1, "filename": "django-saml2-auth-ai-1.2.0.tar.gz", "has_sig": false, "md5_digest": "eac6b001c18d668e0db1e44a96e77872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13551, "upload_time": "2018-09-05T10:25:36", "upload_time_iso_8601": "2018-09-05T10:25:36.341879Z", "url": "https://files.pythonhosted.org/packages/89/2f/4ebfbaa99a8dc7bca59fad288f829d09df72dc48e5b2c223a219be21e4f7/django-saml2-auth-ai-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "760240a0997b293f5405aa4a8ccaf966", "sha256": "881f94aa3ddc0f6426b55c2ec05bb1665f6cf8b8f10c940751490b5c40f425d7" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "760240a0997b293f5405aa4a8ccaf966", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13113, "upload_time": "2018-09-12T08:10:30", "upload_time_iso_8601": "2018-09-12T08:10:30.684521Z", "url": "https://files.pythonhosted.org/packages/71/ce/82d7f20a5e0d12b40c016192e774126282b7635d80b9349413a8d5b94f55/django_saml2_auth_ai-2.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e2171163e770198c48e259a281e4f068", "sha256": "2415919242176ae5b46f7063098eced2caaa195dd8b894d69625bfd0fee67eae" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e2171163e770198c48e259a281e4f068", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13649, "upload_time": "2018-09-12T08:10:32", "upload_time_iso_8601": "2018-09-12T08:10:32.500385Z", "url": "https://files.pythonhosted.org/packages/bd/9d/d43f3083723ce8edb5e31d838ae5d25d34b89b0b597fc7c5035a81057821/django-saml2-auth-ai-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "9aa81b58708cee2d9d6e1ce0101a4cb4", "sha256": "735b893bf1a992c38acd13d7df759f46efcecd80888cb7b2bb39da5cfc897e74" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9aa81b58708cee2d9d6e1ce0101a4cb4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13277, "upload_time": "2019-01-17T07:16:55", "upload_time_iso_8601": "2019-01-17T07:16:55.526578Z", "url": "https://files.pythonhosted.org/packages/9e/ed/1b900889a977cb9e6a42d831753849530f92c8884aa1ed6d0289becd12a0/django_saml2_auth_ai-2.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b300388547486cf5153ba6db727ebdad", "sha256": "7d21eb1f69cf69b7809c16e542576c27549f6c4c7c8afe0e0a00089efd13dfe5" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.0.tar.gz", "has_sig": false, "md5_digest": "b300388547486cf5153ba6db727ebdad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14281, "upload_time": "2019-01-17T07:16:57", "upload_time_iso_8601": "2019-01-17T07:16:57.518772Z", "url": "https://files.pythonhosted.org/packages/35/d1/97d7d2274ea908ecca1b2b4ca9aac40ea22835f19319ff33548e8d03da51/django-saml2-auth-ai-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "d2c52a3a39c84581854b96fe9fda377b", "sha256": "c21973f03becae33e3c8a6c6bbb490c6f89841bd89da21b6e0cd3ffdba1e59fd" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2c52a3a39c84581854b96fe9fda377b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13302, "upload_time": "2019-03-29T06:21:44", "upload_time_iso_8601": "2019-03-29T06:21:44.958742Z", "url": "https://files.pythonhosted.org/packages/58/89/d9e2b7aee6fa605888423e10184ae851f869e144585a7f81e9d857d6ab75/django_saml2_auth_ai-2.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "229f2f5ca3cbba7f83ff6e2150a7f0dc", "sha256": "c0dd9bee2c90997e61417fc35e6f36975b155895df1bbf5910aab22a720d61fd" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.1.tar.gz", "has_sig": false, "md5_digest": "229f2f5ca3cbba7f83ff6e2150a7f0dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14314, "upload_time": "2019-03-29T06:21:46", "upload_time_iso_8601": "2019-03-29T06:21:46.803995Z", "url": "https://files.pythonhosted.org/packages/79/bf/9f98fa736c29dcdf0b8d15cfe94aee764802cbf712167f1e787e99d0fef7/django-saml2-auth-ai-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "2a51f5d892d13664a3f05e6c76613d95", "sha256": "9b9f04e86bba4b57f203bc3e78c98e1cd81d0ba98d72594e031a7edab208ac92" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a51f5d892d13664a3f05e6c76613d95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13902, "upload_time": "2019-04-25T09:18:40", "upload_time_iso_8601": "2019-04-25T09:18:40.217019Z", "url": "https://files.pythonhosted.org/packages/5d/e3/357dcd3abb72eb66a34b0780af659c58b35b7582753714d26a9fcefd9c3a/django_saml2_auth_ai-2.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "78d65c9735b4076cb2e218e4dd598284", "sha256": "84ecf9a73c8086e5df2b1295a05cc90bf381957929b190ae16c0d9eae399d122" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.2.tar.gz", "has_sig": false, "md5_digest": "78d65c9735b4076cb2e218e4dd598284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16950, "upload_time": "2019-04-25T09:18:44", "upload_time_iso_8601": "2019-04-25T09:18:44.201122Z", "url": "https://files.pythonhosted.org/packages/26/5f/d2ce82af5211cd7469d2ba5efff0c12aa6b0b4a0146a0a344d9feb7e9979/django-saml2-auth-ai-2.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "6494d63e4b30355277fe4a4d6c58274d", "sha256": "00ea72c3013d31801dbd3879e92003587bb0cff49c103639adb1df7e863cf7ca" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6494d63e4b30355277fe4a4d6c58274d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14026, "upload_time": "2019-06-27T08:35:13", "upload_time_iso_8601": "2019-06-27T08:35:13.346650Z", "url": "https://files.pythonhosted.org/packages/35/73/c0e54ecdc497756a7f5dec4044102916a3cda5fae306589f724978a5f6ef/django_saml2_auth_ai-2.1.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "59445b016e60c2c27c8323cb83aaf432", "sha256": "2e1900f4b3308c7cbd4bc8df46b8d6c9ffba682baea4514f62d6866457f62443" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.3.tar.gz", "has_sig": false, "md5_digest": "59445b016e60c2c27c8323cb83aaf432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14966, "upload_time": "2019-06-27T08:35:15", "upload_time_iso_8601": "2019-06-27T08:35:15.189147Z", "url": "https://files.pythonhosted.org/packages/6f/f5/bd96ba6c3034f89525cb8983511c765dee22bff4b1203afffc624c392c41/django-saml2-auth-ai-2.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "8775881f5a71c325340ec87fa302fed7", "sha256": "4a74a55d4641216cd76b63668fd0198bbcad41b12ccaf8a00e825201143d92ee" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8775881f5a71c325340ec87fa302fed7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14058, "upload_time": "2019-10-28T11:55:44", "upload_time_iso_8601": "2019-10-28T11:55:44.018742Z", "url": "https://files.pythonhosted.org/packages/49/51/1ca7292703fac2448922ebe09a7b7177f8deac4505bf4bc5045d28ad5576/django_saml2_auth_ai-2.1.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "46c8a64322840255218fc69f72165c01", "sha256": "e1f31e87db2a34fa3b13628aaa6f38837d6e9d99ceef4eaffe964a7afe3a2ac5" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.4.tar.gz", "has_sig": false, "md5_digest": "46c8a64322840255218fc69f72165c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17184, "upload_time": "2019-10-28T11:55:45", "upload_time_iso_8601": "2019-10-28T11:55:45.976658Z", "url": "https://files.pythonhosted.org/packages/c0/8c/43d82c92212ffed54e948b65a3232f96db2888639b77efcfdb0438c33b20/django-saml2-auth-ai-2.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "8724e5d0ff0dab718e5461143977dedb", "sha256": "170f424b8dd887bc5123bd495d33591c18e7d78e7458fe828df3d04996e5121d" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8724e5d0ff0dab718e5461143977dedb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14115, "upload_time": "2019-10-29T07:22:15", "upload_time_iso_8601": "2019-10-29T07:22:15.443164Z", "url": "https://files.pythonhosted.org/packages/3d/b2/29b32e5356bb09a8b0bb79284a06419b3dfc0b1c5cec5854f625486625d8/django_saml2_auth_ai-2.1.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "702a20396012df2b8ff445a85250071d", "sha256": "c8e2d348f2d69f97fa5c04649688fa0774d179125c71f5cc66b3b1949c5402fd" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.5.tar.gz", "has_sig": false, "md5_digest": "702a20396012df2b8ff445a85250071d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17315, "upload_time": "2019-10-29T07:22:17", "upload_time_iso_8601": "2019-10-29T07:22:17.539364Z", "url": "https://files.pythonhosted.org/packages/30/00/7081a5f2a15ccf2ebed03f484e4e4851e6bd7d98896b902cd7766fc2c1d8/django-saml2-auth-ai-2.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.6": [ { "comment_text": "", "digests": { "md5": "bba397c5ce78a5b34549c7deb8aba27c", "sha256": "6dca13d6d3633b7fb1b818fb3c54a62a71959697d6a2a94cdf3e009ae2704738" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bba397c5ce78a5b34549c7deb8aba27c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14144, "upload_time": "2019-12-04T07:00:17", "upload_time_iso_8601": "2019-12-04T07:00:17.780955Z", "url": "https://files.pythonhosted.org/packages/3f/b7/0ae0bb778bbbb44aec0f0e5b94fe38498ae49ae27b57431f3d6d668e7ea1/django_saml2_auth_ai-2.1.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a26935354a9ac31ec691f8c05abf90d2", "sha256": "5301846103429ba996f9c105474ea531928acebec24132a2516d06fcc6e6852a" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.6.tar.gz", "has_sig": false, "md5_digest": "a26935354a9ac31ec691f8c05abf90d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17382, "upload_time": "2019-12-04T07:00:20", "upload_time_iso_8601": "2019-12-04T07:00:20.143152Z", "url": "https://files.pythonhosted.org/packages/71/99/01dd78b3a7a4dd4af1a1e5204e6359153a7434d710991ae6de68b279d7c2/django-saml2-auth-ai-2.1.6.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bba397c5ce78a5b34549c7deb8aba27c", "sha256": "6dca13d6d3633b7fb1b818fb3c54a62a71959697d6a2a94cdf3e009ae2704738" }, "downloads": -1, "filename": "django_saml2_auth_ai-2.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bba397c5ce78a5b34549c7deb8aba27c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14144, "upload_time": "2019-12-04T07:00:17", "upload_time_iso_8601": "2019-12-04T07:00:17.780955Z", "url": "https://files.pythonhosted.org/packages/3f/b7/0ae0bb778bbbb44aec0f0e5b94fe38498ae49ae27b57431f3d6d668e7ea1/django_saml2_auth_ai-2.1.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a26935354a9ac31ec691f8c05abf90d2", "sha256": "5301846103429ba996f9c105474ea531928acebec24132a2516d06fcc6e6852a" }, "downloads": -1, "filename": "django-saml2-auth-ai-2.1.6.tar.gz", "has_sig": false, "md5_digest": "a26935354a9ac31ec691f8c05abf90d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17382, "upload_time": "2019-12-04T07:00:20", "upload_time_iso_8601": "2019-12-04T07:00:20.143152Z", "url": "https://files.pythonhosted.org/packages/71/99/01dd78b3a7a4dd4af1a1e5204e6359153a7434d710991ae6de68b279d7c2/django-saml2-auth-ai-2.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }