{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "devpi-lockdown: tools to enable authentication for read access\n==============================================================\n\nThis plugin adds some views to allow locking down read access to devpi.\n\nOnly tested with nginx so far.\n\n\nInstallation\n------------\n\n``devpi-lockdown`` needs to be installed alongside ``devpi-server``.\n\nYou can install it with::\n\n pip install devpi-lockdown\n\n\nUsage\n-----\n\nTo lock down read access to devpi, you need a proxy in front of devpi which can use the provided views to limit access.\n\n\nThe views are:\n\n/+authcheck\n\n This returns ``200`` when the user is authenticated or ``401`` if not.\n It uses the regular devpi credential checks and an additional credential check using a cookie provided by ``devpi-lockdown`` to allow login with a browser.\n\n/+login\n\n A plain login form to allow access via browsers for use with ``devpi-web``.\n\n/+logout\n\n Drops the authentication cookie.\n\n\n For nginx the `auth_request`_ module is required and the configuration would something look like this:\n\n.. code-block:: nginx\n\n server {\n ...\n\n # this redirects to the login view when not logged in\n error_page 401 = @error401;\n location @error401 {\n return 302 /+login;\n }\n\n # the location to check whether the provided infos authenticate the user\n location = /+authcheck {\n internal;\n\n proxy_pass_request_body off;\n proxy_set_header Content-Length \"\";\n proxy_set_header X-Original-URI $request_uri;\n proxy_set_header X-outside-url https://$host;\n proxy_pass http://localhost:3141;\n }\n\n # lock down everything by default\n auth_request /+authcheck;\n\n # pass on /+login without authentication check to allow login\n location = /+login {\n auth_request off;\n proxy_set_header X-outside-url https://$host;\n proxy_pass http://localhost:3141;\n }\n\n # pass on /+api without authentication check for URL endpoint discovery\n location ~ /\\+api$ {\n auth_request off;\n proxy_set_header X-outside-url https://$host;\n proxy_pass http://localhost:3141;\n }\n\n # pass on /+static without authentication check for browser access to css etc\n location /+static/ {\n auth_request off;\n proxy_set_header X-outside-url https://$host;\n proxy_pass http://localhost:3141;\n }\n\n # use auth_request to lock down all the rest\n location / {\n proxy_set_header X-outside-url https://$host;\n proxy_pass http://localhost:3141;\n }\n }\n\n.. _auth_request: http://nginx.org/en/docs/http/ngx_http_auth_request_module.html\n\n\nChangelog\n=========\n\n1.0.1 - 2018-11-16\n------------------\n\n- Fix import for Pyramid >= 1.10.0.\n\n- Add /+static to configuration\n\n- Lock down everything by default in the configuration and only allow the\n necessary locations\n\n\n1.0.0 - 2017-03-10\n------------------\n\n- initial release\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/devpi/devpi-lockdown", "keywords": "", "license": "MIT", "maintainer": "Florian Schulze", "maintainer_email": "florian.schulze@gmx.net", "name": "devpi-lockdown", "package_url": "https://pypi.org/project/devpi-lockdown/", "platform": "", "project_url": "https://pypi.org/project/devpi-lockdown/", "project_urls": { "Homepage": "https://github.com/devpi/devpi-lockdown" }, "release_url": "https://pypi.org/project/devpi-lockdown/1.0.1/", "requires_dist": [ "devpi-web" ], "requires_python": "", "summary": "devpi-lockdown: tools to enable authentication for read access", "version": "1.0.1" }, "last_serial": 4493982, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8248ee726a97f2cfdb8a569d82fba7b4", "sha256": "24f8ee15e0326e52e6c196938dab074d8baef1d7079885157f671a85deb3b877" }, "downloads": -1, "filename": "devpi_lockdown-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8248ee726a97f2cfdb8a569d82fba7b4", "packagetype": "bdist_wheel", "python_version": "3", "requires_python": null, "size": 6166, "upload_time": "2017-03-10T18:28:02", "url": "https://files.pythonhosted.org/packages/0b/d7/07c8de20f4f87202f432089fe9c1a03026902ddf77b79147f451e86c475a/devpi_lockdown-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed0bc690ed68bfb39638194edbb52b97", "sha256": "df00666e1fa8fb6e1734ac923121a61c404239f018def775e2c0c8fd988bf652" }, "downloads": -1, "filename": "devpi-lockdown-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ed0bc690ed68bfb39638194edbb52b97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3994, "upload_time": "2017-03-10T18:28:01", "url": "https://files.pythonhosted.org/packages/5c/55/3899d5c3408833f432a5c23f49dbdd9e6d8e20a56d7441dc4d0ca56ef14e/devpi-lockdown-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "0f3f6d38da2aed2b68b4a270a7479a22", "sha256": "daab2af8511a530aad9ca25682b293b9db2144f20a0b51f886b8730c472115da" }, "downloads": -1, "filename": "devpi_lockdown-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f3f6d38da2aed2b68b4a270a7479a22", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4387, "upload_time": "2018-11-16T14:57:39", "url": "https://files.pythonhosted.org/packages/2a/7a/2e1ec306dc64cfb957575da8c1753e6c8c55bce732b1e970d348daed7982/devpi_lockdown-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5d0c528f3ea8f59b5483bc47855f2e3", "sha256": "5bd44e60c97be48d59193212d65e4cb30d777cea9de23891b4285ed1ecc592fe" }, "downloads": -1, "filename": "devpi-lockdown-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a5d0c528f3ea8f59b5483bc47855f2e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4800, "upload_time": "2018-11-16T14:57:37", "url": "https://files.pythonhosted.org/packages/b7/96/e03c9f36bc0d7638dbda3f4b81180c1b36f0ff7e44e4ffad5547bf3b8b0f/devpi-lockdown-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f3f6d38da2aed2b68b4a270a7479a22", "sha256": "daab2af8511a530aad9ca25682b293b9db2144f20a0b51f886b8730c472115da" }, "downloads": -1, "filename": "devpi_lockdown-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f3f6d38da2aed2b68b4a270a7479a22", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4387, "upload_time": "2018-11-16T14:57:39", "url": "https://files.pythonhosted.org/packages/2a/7a/2e1ec306dc64cfb957575da8c1753e6c8c55bce732b1e970d348daed7982/devpi_lockdown-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5d0c528f3ea8f59b5483bc47855f2e3", "sha256": "5bd44e60c97be48d59193212d65e4cb30d777cea9de23891b4285ed1ecc592fe" }, "downloads": -1, "filename": "devpi-lockdown-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a5d0c528f3ea8f59b5483bc47855f2e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4800, "upload_time": "2018-11-16T14:57:37", "url": "https://files.pythonhosted.org/packages/b7/96/e03c9f36bc0d7638dbda3f4b81180c1b36f0ff7e44e4ffad5547bf3b8b0f/devpi-lockdown-1.0.1.tar.gz" } ] }