{ "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": "* Flask-TLSAuth\n\nFlask-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 flask_tlsauth\n#+END_SRC\n Flask-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** tlsauth decorator\nFlask-TLSAuth provides a simple decorator to guard your entry points:\n#+BEGIN_SRC python\nfrom flask import Flask, Response, redirect\nimport os\napp = Flask(__name__)\napp.secret_key = 'some secret randomness'\n\n# we need a CA\nfrom tlsauth import CertAuthority\nimport flask_tlsauth as tlsauth\n\n# previously we setup up the CA according to the tlsauth doc\nca=CertAuthority('')\n\nadminOs=['CA admins']\n# grants admin access to anyone with a\n# valid cert asserting membership in \"CA admins\"\ntlsauth.tlsauth_init(app, ca, groups=adminOs)\n\ndef unauth():\n return redirect(\"/\")\n\n@app.route('/hello')\n\n# lets protect this valuable function,\n# redirecting unauthorized visitors to /\n@tlsauth.tlsauth(unauth=unauth, groups=adminOs)\ndef hello():\n return Response(\"hello world\")\n#+END_SRC\n\n** Managing certs\nFlask-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/flask_tlsauth", "keywords": "flask crypto authentication TLS certificate x509 CA", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "flask_tlsauth", "package_url": "https://pypi.org/project/flask_tlsauth/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/flask_tlsauth/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://packages.python.org/flask_tlsauth" }, "release_url": "https://pypi.org/project/flask_tlsauth/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Flask extension implementing TLS Authentication - simple client certificate CA inclusive", "version": "0.1.3" }, "last_serial": 1315653, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "077f9c0e742fa5c53fce70e98322adad", "sha256": "ff67fbc187032547ff1d1e8377442b60aaeb08fb201d3c8b5b7901f8f48a928d" }, "downloads": -1, "filename": "flask_tlsauth-0.1-py2.7.egg", "has_sig": true, "md5_digest": "077f9c0e742fa5c53fce70e98322adad", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 8812, "upload_time": "2013-03-24T22:21:37", "url": "https://files.pythonhosted.org/packages/3c/86/0d34277922bbdbc3f67672d29a63d79a7a816670816fdee667eb9903199b/flask_tlsauth-0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "813e046da32e8d9fc3133d15cc0846bd", "sha256": "ad98afb6f8179f03156c02f46c4ef3287265a5b3eb642330dc06917adc63245c" }, "downloads": -1, "filename": "flask_tlsauth-0.1.tar.gz", "has_sig": true, "md5_digest": "813e046da32e8d9fc3133d15cc0846bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4142, "upload_time": "2013-03-24T22:21:17", "url": "https://files.pythonhosted.org/packages/1c/a3/ac474d6b09513f59c00785fc49db6db5d0e3fcedfc31683946f37b39c2f1/flask_tlsauth-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "68a3d186970d61546490505ea66a78d2", "sha256": "cd881e83d28c89c9b7dd31cd412ca02e9b884618f399e86dfbf106c0fe02f253" }, "downloads": -1, "filename": "flask_tlsauth-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "68a3d186970d61546490505ea66a78d2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9138, "upload_time": "2014-11-21T09:56:28", "url": "https://files.pythonhosted.org/packages/71/87/3d16efb55772fbdc84a38c84c74d2dda3beb6a269a7b844bf8527a495efd/flask_tlsauth-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b955f1ec5785aabd81bb054e8753438f", "sha256": "0b22240cc5fc21cfd4fb99b8049a77bcb1518d5b67f260206f442965953ebbea" }, "downloads": -1, "filename": "flask_tlsauth-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b955f1ec5785aabd81bb054e8753438f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4099, "upload_time": "2014-11-21T09:57:10", "url": "https://files.pythonhosted.org/packages/96/b3/c39218a4b6e0f68dfff1f498675460acf835be3c1b2d0043bbb35a95b7da/flask_tlsauth-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d11d761b053dd1579975ffa72b184148", "sha256": "f135ef6f46c490f759ca62a7f241688155256ff2bb9202c235e0b68119275d5d" }, "downloads": -1, "filename": "flask_tlsauth-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "d11d761b053dd1579975ffa72b184148", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9141, "upload_time": "2014-11-21T09:59:15", "url": "https://files.pythonhosted.org/packages/49/fb/5a57bd12192f44e22bbd0c61f7a805f802e4952ca2f6cddb6510cd33f29f/flask_tlsauth-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c192f0e54fe5ae9241875b93e8532a72", "sha256": "7c79109a3f0266a1f32ec3f25b9e393bf7a3443d523d9654e62368641e8e8d74" }, "downloads": -1, "filename": "flask_tlsauth-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c192f0e54fe5ae9241875b93e8532a72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093, "upload_time": "2014-11-21T09:59:03", "url": "https://files.pythonhosted.org/packages/48/56/2a1ad3fa73086fda0090d1acd3af0431818c38918b9ce525d44ee0067848/flask_tlsauth-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f0b9815922c7333821824db7fe4a2ee6", "sha256": "5940a7bbe3da511a7111b9f6f5010d06c0f08237d856fd2795238352a52cc4e8" }, "downloads": -1, "filename": "flask_tlsauth-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "f0b9815922c7333821824db7fe4a2ee6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9150, "upload_time": "2014-11-21T10:08:11", "url": "https://files.pythonhosted.org/packages/cb/f2/33a3aef0059a4f2d2303d4d8b45ee8832cff251f9b1c0e6c21b8df567c6b/flask_tlsauth-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3eb5ceda23cc80173c950dbabefc6885", "sha256": "e9df7391591f9bfe553c8c62b4471e0b756200ee1b4e2d3f732387e527ec4236" }, "downloads": -1, "filename": "flask_tlsauth-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3eb5ceda23cc80173c950dbabefc6885", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4307, "upload_time": "2014-11-21T10:07:55", "url": "https://files.pythonhosted.org/packages/d7/ec/9dbe881acebd59d24ab50ae07ac9a246d2b96db75552321119dc26070be1/flask_tlsauth-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f0b9815922c7333821824db7fe4a2ee6", "sha256": "5940a7bbe3da511a7111b9f6f5010d06c0f08237d856fd2795238352a52cc4e8" }, "downloads": -1, "filename": "flask_tlsauth-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "f0b9815922c7333821824db7fe4a2ee6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9150, "upload_time": "2014-11-21T10:08:11", "url": "https://files.pythonhosted.org/packages/cb/f2/33a3aef0059a4f2d2303d4d8b45ee8832cff251f9b1c0e6c21b8df567c6b/flask_tlsauth-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3eb5ceda23cc80173c950dbabefc6885", "sha256": "e9df7391591f9bfe553c8c62b4471e0b756200ee1b4e2d3f732387e527ec4236" }, "downloads": -1, "filename": "flask_tlsauth-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3eb5ceda23cc80173c950dbabefc6885", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4307, "upload_time": "2014-11-21T10:07:55", "url": "https://files.pythonhosted.org/packages/d7/ec/9dbe881acebd59d24ab50ae07ac9a246d2b96db75552321119dc26070be1/flask_tlsauth-0.1.3.tar.gz" } ] }