{ "info": { "author": "Entr'ouvert", "author_email": "info@entrouvert.org", "bugtrack_url": null, "classifiers": [], "description": "GSSAPI authentication for Django\n==================================\n\nProvide GSSAPI (SPNEGO) authentication to Django applications.\n\nIt's a rewrite of django-kerberos using python-gssapi.\n\nIt's only tested with MIT Kerberos 5 using package k5test.\n\nPython 2 and 3, Django >1.8 are supported.\n\nBasic usage\n===========\n\nAdd this to your project `urls.py`::\n\n url('^auth/gssapi/', include('django_gssapi.urls')),\n\nAnd use the default authentication backend, by adding that to your `settings.py` file::\n\n AUTHENTICATION_BACKENDS = (\n 'django_gssapi.backends.GSSAPIBackend',\n )\n\nView\n====\n\ndjango-gssapi provide a base LoginView that you can subclass to get the\nbehaviour your need, the main extension points are:\n\n- `challenge()` returns the 401 response with the challenge, you should override it\n to show a template explaining the failure,\n- `success(user)` it should log the given user and redirect to REDIRECT_FIELD_NAME,\n- `get_service_name()` it should return a gssapi.Name for your service, by\n default it returns None, so GSSAPI will match any name available (for example\n with Kerberos it will match any name in your keytab, like\n @HTTP/my.domain.com@).\n\nSettings\n========\n\nTo make your application use GSSAPI as its main login method::\n\n LOGIN_URL = 'gssapi-login'\n\nYour application need an environment where the GSSAPI mechanism like Kerberos\nwill work, for Kerberos it means having a default keytab of creating one and\nsetting its path in KRB5_KTNAME or you can use `GSSAPI_STORE` with MIT Kerberos\n5 and credential store extension to indicate a keytab::\n\n GSSAPI_STORE = {'keytab': 'FILE:/var/lib/mykeytab'}\n\nYou can also force a GSSAPI name for you service with::\n\n import gssapi\n\n GSSAPI_NAME = gssapi.Name('HTTP/my.service.com', gssapi.MechType.hostbased_service)\n\nGSSAPI authentication backend\n=============================\n\nA dummy backend is provided in `django_gssapi.backends.GSSAPIBackend` it looks\nup user with the same username as the GSSAPI name. You should implement it for\nyour use case.\n\nA custom authentication backend must have the following signature::\n\n class CustomGSSAPIBackend(object):\n def authenticate(self, request, gssapi_name):\n pass\n\nThe parameter `gssapi_name` is a `gssapi.Name` object, it can be casted to\nstring to get the raw name.\n\nKerberos username/password backend\n==================================\n\nIf your users does not have their browser configured for SPNEGO HTTP\nauthentication you can also provide a classic login/password form which check\npasswords using Kerberos. For this use\n`django_gssapi.backends.KerberosPasswordBackend`, the username is used as the\nraw principal name.\n\n\ndjango-rest-framework authentication backend\n============================================\n\nTo authenticate users with GSSAPI you can use\n`django_gssapi.drf.GSSAPIAuthentication`, it uses the configured GSSAPI\nauthentication backend to find an user and returns the GSSAPI name in\n`request.auth`.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://dev.entrouvert.org/projects/django-gssapi/", "keywords": "", "license": "AGPLv3 or later", "maintainer": "Benjamin Dauvergne", "maintainer_email": "bdauvergne@entrouvert.com", "name": "django-gssapi", "package_url": "https://pypi.org/project/django-gssapi/", "platform": "", "project_url": "https://pypi.org/project/django-gssapi/", "project_urls": { "Homepage": "http://dev.entrouvert.org/projects/django-gssapi/" }, "release_url": "https://pypi.org/project/django-gssapi/0.9b3/", "requires_dist": [ "six", "django (>1.8)", "gssapi" ], "requires_python": "", "summary": "GSSAPI authentication for Django", "version": "0.9b3" }, "last_serial": 5720996, "releases": { "0.9b2": [ { "comment_text": "", "digests": { "md5": "56cf656cf255400a10540695a25ff245", "sha256": "07dcb9525d6a64ff39ba53014d92fbddeb9a293359d0e68ced8a278d033110b9" }, "downloads": -1, "filename": "django_gssapi-0.9b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56cf656cf255400a10540695a25ff245", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9165, "upload_time": "2019-08-23T14:12:55", "url": "https://files.pythonhosted.org/packages/9b/a6/77cc00cfa5d92c0ea0848c693fceebf01b97111707392d30a0e35b759d78/django_gssapi-0.9b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc81063546c644572fda4002e7c49c12", "sha256": "5e4bac5566ab9fd3947f28860522e2976cd0246f6615c37e029d38ce9d88fdcc" }, "downloads": -1, "filename": "django-gssapi-0.9b2.tar.gz", "has_sig": false, "md5_digest": "dc81063546c644572fda4002e7c49c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8633, "upload_time": "2019-08-23T14:12:58", "url": "https://files.pythonhosted.org/packages/73/5d/e4867b3cf7e93c53b574feb04c051fa714dc3c3721c8675ba5950ac64fb1/django-gssapi-0.9b2.tar.gz" } ], "0.9b3": [ { "comment_text": "", "digests": { "md5": "c18d172e122d3d8807390d027e79e7c3", "sha256": "6ee594c94f542dd86193f22cc2a3f07070f9633d8fb9eb69b02ac5bed7427fa4" }, "downloads": -1, "filename": "django_gssapi-0.9b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c18d172e122d3d8807390d027e79e7c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9164, "upload_time": "2019-08-23T14:15:13", "url": "https://files.pythonhosted.org/packages/84/44/5cc26b48ffb2dd0d8e1a97deed15ed61df629ccddadbe19003b87dee9e16/django_gssapi-0.9b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cf3f33ffc9c27dea90a337370aec7fb", "sha256": "403faa82795cb8c5cbd52f14cfdc27731fe64c124c0a483f5eafc81825f64ad6" }, "downloads": -1, "filename": "django-gssapi-0.9b3.tar.gz", "has_sig": false, "md5_digest": "4cf3f33ffc9c27dea90a337370aec7fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8673, "upload_time": "2019-08-23T14:15:15", "url": "https://files.pythonhosted.org/packages/ea/7f/a0d1d6dc0b07b0f5fb71937e6cdf97665862a5d48421cdafcc426d23f7b3/django-gssapi-0.9b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c18d172e122d3d8807390d027e79e7c3", "sha256": "6ee594c94f542dd86193f22cc2a3f07070f9633d8fb9eb69b02ac5bed7427fa4" }, "downloads": -1, "filename": "django_gssapi-0.9b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c18d172e122d3d8807390d027e79e7c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9164, "upload_time": "2019-08-23T14:15:13", "url": "https://files.pythonhosted.org/packages/84/44/5cc26b48ffb2dd0d8e1a97deed15ed61df629ccddadbe19003b87dee9e16/django_gssapi-0.9b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cf3f33ffc9c27dea90a337370aec7fb", "sha256": "403faa82795cb8c5cbd52f14cfdc27731fe64c124c0a483f5eafc81825f64ad6" }, "downloads": -1, "filename": "django-gssapi-0.9b3.tar.gz", "has_sig": false, "md5_digest": "4cf3f33ffc9c27dea90a337370aec7fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8673, "upload_time": "2019-08-23T14:15:15", "url": "https://files.pythonhosted.org/packages/ea/7f/a0d1d6dc0b07b0f5fb71937e6cdf97665862a5d48421cdafcc426d23f7b3/django-gssapi-0.9b3.tar.gz" } ] }