{ "info": { "author": "Stefan Marsiske", "author_email": "s@ctrlc.hu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "License :: OSI Approved :: BSD License", "Topic :: Security :: Cryptography" ], "description": "* Django-TLSAuth\n\nDjango-TLSAuth integrates a minimal certificate authority (CA) and\nimplements TLS client certificate authentication. It depends on nginx\nfor handling the TLS authentication part.\n\n** Installation\n#+BEGIN_SRC sh\n pip install django_tlsauth\n#+END_SRC\n Django-TLSAuth depends on tlsauth which provides minimal tools to\n act as a CA. Please follow the \"CA and https service install\" steps\n from https://github.com/stef/tlsauth to set up your webserver and CA.\n\n After setting up the CA, you should also configure it in django,\n put something like this with adjusted paths into your settings.py:\n#+BEGIN_SRC python\nfrom tlsauth import CertAuthority\n\nTLS_CA=CertAuthority('')\nTLS_ADMINGROUPS=['CA admins']\nTLS_SCRUTINIZER=None # supply your own function authorizing automatic signatures\nTLS_BLINDSIGN=False # blindly sign incoming CSRs\n#+END_SRC\n\n If you want to enable the admin to the mini-CA add to your urls.py\n#+BEGIN_SRC python\nurl(r'^tlsauth/', include('django_tlsauth.urls')),\n#+END_SRC\n\n** tlsauth decorator\nDjango-TLSAuth provides a simple decorator to guard your entry points:\n#+BEGIN_SRC python\nfrom django.http import HttpResponse, HttpResponseRedirect\nfrom django_tlsauth.views import tlsauth\n\ndef unauth(request):\n return HttpResponseRedirect('/')\n\n@tlsauth(unauth=unauth, groups=['helloworldophobians'])\ndef hello(request):\n return HttpResponse(\"hello world\")\n#+END_SRC\n\n** Managing certs\nDjango-TLSAuth provides a few default routes to manage the certs and\nthe CA.\n\n*** /tlsauth/register/\nVisitors can register like on a normal site, but when done, they get a\nPKCS12 certificate ready to be saved and imported in all\nbrowsers. This is totally automatic and there's no check if the\nspecified organization is not a privileged one (like \"CA admins\" in\nthe above example). This really provides no security, for bots and\nscripts it's even easier to use these certs than for normal humans.\nOther mechanisms must be deployed to provide meaningful authentication.\n\n*** /tlsauth/certify/\nVisitors can submit their Certificate Signing Request (can be easily\ngenerated using gencert.sh from tlsauth), which depending on\nconfiguration either returns automatically a signed certificate (no\nmeaningful authentication this way, avoid this!), or it gets stored\nfor later approval by the \"CA admins\".\n\n*** /tlsauth/cert/\nReturns the CA root certificate in PEM format, for import into your browser.\n\n*** /tlsauth/csrs/\nDisplays a list of incoming CSRs to any certified member of the \"CA\nadmin\" group. The certs can be either rejected or signed, in the later\ncase the resulting certificate is sent to the email address of the\nsubject.\n\n*** /tlsauth/test/\nDisplays whether you are TLS authenticated and what your distinguished name is.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://packages.python.org/django_tlsauth", "keywords": "django crypto authentication TLS certificate x509 CA", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django_tlsauth", "package_url": "https://pypi.org/project/django_tlsauth/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django_tlsauth/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://packages.python.org/django_tlsauth" }, "release_url": "https://pypi.org/project/django_tlsauth/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Django app implementing TLS Authentication - simple client certificate CA inclusive", "version": "0.1.2" }, "last_serial": 1315660, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9086d624435f8f252614889cdb1fd066", "sha256": "d9b8143fb82a73965a31408edd2a9b9fbd3666d00428c6b728f9cfc7068a7984" }, "downloads": -1, "filename": "django_tlsauth-0.1.1-py2.7.egg", "has_sig": true, "md5_digest": "9086d624435f8f252614889cdb1fd066", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17737, "upload_time": "2013-03-25T01:55:06", "url": "https://files.pythonhosted.org/packages/b5/bd/9b8d94dac8034ec2b1094e0f6474a1194619cefd885ea17a343cef56daa1/django_tlsauth-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5a2651d16ff1265bf19539aaf32ea009", "sha256": "de4c69f0e23ce62b3bfc7daa6f3fd7407ca11693bd2eddf12a10d613c341807e" }, "downloads": -1, "filename": "django_tlsauth-0.1.1.tar.gz", "has_sig": true, "md5_digest": "5a2651d16ff1265bf19539aaf32ea009", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7249, "upload_time": "2013-03-25T01:54:52", "url": "https://files.pythonhosted.org/packages/d4/a6/195795fcd23c4a06074d782e6c6e677509b036258fc4679b6a822c7fdc24/django_tlsauth-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ae4999a6496819ac9e2d1e9ca53f56a7", "sha256": "a90321cea0970c26d638b72bc6391b5e468224b62119d2c8774847e5e6ed5f65" }, "downloads": -1, "filename": "django_tlsauth-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "ae4999a6496819ac9e2d1e9ca53f56a7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17670, "upload_time": "2014-11-21T10:11:06", "url": "https://files.pythonhosted.org/packages/97/b5/256ca382599bf620ea0f34d7398aa1a6cf2b8e39925b7aebd6476c7807df/django_tlsauth-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "52479ca0621588b05b632b72aeb5d72a", "sha256": "a9d530063a716e44a510adb3347a52e42cae26a6e7fac9a96d5b4c4a2d9387ce" }, "downloads": -1, "filename": "django_tlsauth-0.1.2.tar.gz", "has_sig": false, "md5_digest": "52479ca0621588b05b632b72aeb5d72a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7494, "upload_time": "2014-11-21T10:11:01", "url": "https://files.pythonhosted.org/packages/19/ca/805e31efc77785e74d3385b9fbe04bf905d2d03920ea6aecfb38de781dc5/django_tlsauth-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ae4999a6496819ac9e2d1e9ca53f56a7", "sha256": "a90321cea0970c26d638b72bc6391b5e468224b62119d2c8774847e5e6ed5f65" }, "downloads": -1, "filename": "django_tlsauth-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "ae4999a6496819ac9e2d1e9ca53f56a7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17670, "upload_time": "2014-11-21T10:11:06", "url": "https://files.pythonhosted.org/packages/97/b5/256ca382599bf620ea0f34d7398aa1a6cf2b8e39925b7aebd6476c7807df/django_tlsauth-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "52479ca0621588b05b632b72aeb5d72a", "sha256": "a9d530063a716e44a510adb3347a52e42cae26a6e7fac9a96d5b4c4a2d9387ce" }, "downloads": -1, "filename": "django_tlsauth-0.1.2.tar.gz", "has_sig": false, "md5_digest": "52479ca0621588b05b632b72aeb5d72a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7494, "upload_time": "2014-11-21T10:11:01", "url": "https://files.pythonhosted.org/packages/19/ca/805e31efc77785e74d3385b9fbe04bf905d2d03920ea6aecfb38de781dc5/django_tlsauth-0.1.2.tar.gz" } ] }