{ "info": { "author": "Matthew de Verteuil", "author_email": "mdeverteuil@gadventures.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "Barrier\n=======\n\nServe static files safely behind OpenIDConnect-compatible authentication (i.e. Okta)\n\nOpenID Connect Provider Set-up\n------------------------------\n\nOkta\n~~~~\n\nThe following steps will get you the values necessary to integrate Okta with your Barrier-protected content.\n\n#. Go to the **Applications** section of your Okta admin app. (hint: the url of the admin app is ``https://>-admin.okta.com/dev/console``)\n#. Click **Add Application**\n#. On the **Create New Application** page, choose **Web** and click **Next**\n#. You will need to enter some details about the application:\n\n * Name: ````\n\n * Base URIs: ``https:///``\n * or ``http://localhost:8000`` during development)\n\n * Login redirect URIs: ``https:///oidc/callback``\n * or ``http://localhost:8000/oidc/callback``, & ``http://localhost:5000/oidc/callback`` during development\n\n * Group Assigments: **Everyone** is fine, unless you have specific requirements.\n\n * Grant Type Allowed:\n * Client acting on behalf of itself\n * ``[ ]`` Client Credentials\n * Client acting on behalf of a user\n * ``[x]`` Authorization Code\n * ``[ ]`` Refresh Token\n * ``[ ]`` Implicit (Hybrid)\n\n#. Click **Next** again\n#. You're now at the General Settings for your new Okta integration, scroll to the bottom and copy the **Client ID** and **Client secret** values.\n#. Visit the **Dashboard** page and copy the **Org URL**.\n#. Use the following guide to set your environment variables [1]_ :\n\n * ``BARRIER_CLIENT_ID`` = **Client ID**\n * ``BARRIER_CLIENT_SECRET`` = **Client secret**\n * ``BARRIER_AUTH_URI`` = ``/oauth2/default/v1/authorize``\n * ``BARRIER_TOKEN_URI`` = ``/oauth2/default/v1/token``\n * ``BARRIER_ISSUER`` = ``/oauth2/default``\n * ``BARRIER_USERINFO_URI`` = ``/oauth2/default/userinfo``\n\n#. Congratulations! You're ready to install or deploy!\n\nInstallation\n------------\n\n.. code::\n\n $ pip install (--user) https://github.com/gadventures/barrier\n\nCommands\n--------\n\nThe following is a brief overview, but you can call any of these commands with ``--help`` for more information.\n\n``barrier-config``\n Generate \"client-secrets.json\", required for running the other commands. See the help text for required options. Options passed on the command line will override any values set in the environment.\n``barrier-dev``\n Flask development server. Useful if extending this project to add more features.\n``barrier-wsgi``\n Gunicorn WSGI wrapper. Can be placed behind nginx, Apache, or whatever you like.\n\nEnvironment\n-----------\n\nRequired\n~~~~~~~~\n\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| Name | Description | Where to get it |\n+=============================+=================================================================+===========================================================================================+\n| ``BARRIER_USERINFO_URI`` | UserInfo URI. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_ISSUER`` | Issuer ID. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_TOKEN_URI`` | Token URI. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_AUTH_URI`` | Auth URI. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_CLIENT_SECRET`` | Client Secret Key. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_CLIENT_ID`` | Client ID. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_REDIRECT_URI`` | Redirect URI. Part of OpenIDConnect secrets configuration. | OpenID Connect Provider, The value to set is: ``https://{your-hostname}/oidc/callback`` |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n| ``BARRIER_SECRET_KEY`` | Used for HMAC Authentication. Generate a long random string. | Any source of random information |\n+-----------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------+\n\nOptional\n~~~~~~~~\n\n+--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+\n| Name | Description | Where to get it |\n+================================+================================================================================================================================================================================================================+================================================================================================================+\n| ``BARRIER_RESOURCE_ROOT`` | Root path of static files to serve. (Default: ``./build/html``) | Wherever you choose to add the static files in your custom layer, or add your files to the default location. |\n+--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+\n| ``BARRIER_DEFAULT_RESOURCE`` | The file/path that users will be redirected to after login. (Default: ``index.html``) | Probably not necessary to change this. |\n+--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+\n| ``BARRIER_CLIENT_SECRETS`` | OpenIDConnect secrets configuration file location. If your provider allows automatic configuration download and has a different filename, override with that filename here. (Default: ``client-secrets.json``) | OpenID Connect Provider |\n+--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+\n\n\n.. [1] https://developer.okta.com/blog/2018/07/12/flask-tutorial-simple-user-registration-and-login#step-1-create-an-openid-connect-config-file\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gadventures/barrier", "keywords": "", "license": "MIT", "maintainer": "Matthew de Verteuil", "maintainer_email": "mdeverteuil@gadventures.com", "name": "barrier", "package_url": "https://pypi.org/project/barrier/", "platform": "", "project_url": "https://pypi.org/project/barrier/", "project_urls": { "Homepage": "https://github.com/gadventures/barrier", "Repository": "https://github.com/gadventures/barrier" }, "release_url": "https://pypi.org/project/barrier/0.2.2/", "requires_dist": [ "Flask (>=1.1,<2.0)", "flask-oidc (>=1.4,<2.0)", "gunicorn (>=19.9,<20.0)", "poetry-version (>=0.1.3,<0.2.0)" ], "requires_python": ">=3.7,<4.0", "summary": "Serve static files safely behind OpenIDConnect-compatible authentication (i.e. Okta)", "version": "0.2.2" }, "last_serial": 5642048, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "2e11ec894ae5be010dc69715efa798d7", "sha256": "2c84caef5943444f2de824de85dd47a5c521bdf9f435401ea8aea9cd2aaaa3dd" }, "downloads": -1, "filename": "barrier-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2e11ec894ae5be010dc69715efa798d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 5648, "upload_time": "2019-08-05T19:06:40", "url": "https://files.pythonhosted.org/packages/c7/17/f19fedb60995c6e5f7f46c199b34b8ba9ab064fa680669809005945efa01/barrier-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca143a0035a286117c1e4601a03fbe95", "sha256": "11cc2daea44da756c9f985bda2543a4fa77ec485751395edc86d05ed5a112e16" }, "downloads": -1, "filename": "barrier-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ca143a0035a286117c1e4601a03fbe95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 4584, "upload_time": "2019-08-05T19:06:43", "url": "https://files.pythonhosted.org/packages/a8/d5/d3cac1be71b4e41e04b68ecf9ae0593dee71c7d27eac0a4624678c00de2a/barrier-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0999740ab49deb51516f393f26c9814a", "sha256": "903686d88f42eaf9447d5737bba7b3a1e517bbac1e2bed0ebdae469bb3ba1ce8" }, "downloads": -1, "filename": "barrier-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0999740ab49deb51516f393f26c9814a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7610, "upload_time": "2019-08-05T19:10:42", "url": "https://files.pythonhosted.org/packages/11/6d/044f735ce4eae2f10ffd8ff0dde7eeee29ce5373121ceb8ea41442b14be2/barrier-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f83aecea8aa650e60f91b5c3ada9333d", "sha256": "d0114a82b8bb74272fb90dec50ab2205670aaafcc48a571f49e99fd48dfe8f13" }, "downloads": -1, "filename": "barrier-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f83aecea8aa650e60f91b5c3ada9333d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7258, "upload_time": "2019-08-05T19:10:43", "url": "https://files.pythonhosted.org/packages/44/f2/53b951c4a015bc27e95f5c7adef4110ab99dd0cde43bcb079c5e09a4d330/barrier-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f8b50ac5040be240746461e890f42efb", "sha256": "d6d36b2c3b7a84185e593c682129cec1a90f8b32a1f6b4940750e27cbd452558" }, "downloads": -1, "filename": "barrier-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f8b50ac5040be240746461e890f42efb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7623, "upload_time": "2019-08-05T19:52:59", "url": "https://files.pythonhosted.org/packages/23/74/92ced7ff055f707bb208c3c7ec4261d118bf09c75c80ead9b4059cb01983/barrier-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6c9bc95fd203fedc52c8a406b1be569", "sha256": "4abda57d8471b62f52fdc2601670b597ec95a412938207b9e1129575c7374022" }, "downloads": -1, "filename": "barrier-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a6c9bc95fd203fedc52c8a406b1be569", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7264, "upload_time": "2019-08-05T19:53:01", "url": "https://files.pythonhosted.org/packages/82/7b/b01cde57678a61a6d3aa4bca7b6c7e0daa153508a4f8b6d51200dd29a8ff/barrier-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "66d24db3a746b98fb17c58c89c83d5d6", "sha256": "6190726424b6fd698fa0bdfbb3f96abb16beb4eb0fe8d55e3111463a20d30611" }, "downloads": -1, "filename": "barrier-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "66d24db3a746b98fb17c58c89c83d5d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7648, "upload_time": "2019-08-05T19:58:22", "url": "https://files.pythonhosted.org/packages/18/2e/869eec7691e0004345533db1ec858caf1d1409b43572052ffbf4647da7c3/barrier-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d85ff926d613b784245d0171188f915e", "sha256": "950b96cb52b788e65f309bf420ef2d7690ee8e881ba30fb2a896a0999815e1d9" }, "downloads": -1, "filename": "barrier-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d85ff926d613b784245d0171188f915e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7289, "upload_time": "2019-08-05T19:58:23", "url": "https://files.pythonhosted.org/packages/ac/f6/c0ba38dd4a0a2f736f93e054d3250138168e0c13499bbdc443e17a055f86/barrier-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "12e0c3ed17d60118f1a6cf254c63c66e", "sha256": "58f407827a81216bdcbb2ec9b8072240ce86f24f541fc2f773b1fae524bf7578" }, "downloads": -1, "filename": "barrier-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "12e0c3ed17d60118f1a6cf254c63c66e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7909, "upload_time": "2019-08-06T22:32:09", "url": "https://files.pythonhosted.org/packages/9e/0d/ffdc5d2dc5d3d68415ae3868f8271aa4a71519acd4e6c8bcb0a1c1d22cd0/barrier-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ab23d3ccc96dbec551924c85a29675a", "sha256": "1f9c586a6b8c79006a4500bc2d2270a699a9ebec603ece145dec418fe55e1902" }, "downloads": -1, "filename": "barrier-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6ab23d3ccc96dbec551924c85a29675a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7537, "upload_time": "2019-08-06T22:32:11", "url": "https://files.pythonhosted.org/packages/ee/ef/54c1714f8d32ba2dd8cddd3b3eaa26cec389ea0bf4ac75ccc71b69ba1a60/barrier-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "12e0c3ed17d60118f1a6cf254c63c66e", "sha256": "58f407827a81216bdcbb2ec9b8072240ce86f24f541fc2f773b1fae524bf7578" }, "downloads": -1, "filename": "barrier-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "12e0c3ed17d60118f1a6cf254c63c66e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7909, "upload_time": "2019-08-06T22:32:09", "url": "https://files.pythonhosted.org/packages/9e/0d/ffdc5d2dc5d3d68415ae3868f8271aa4a71519acd4e6c8bcb0a1c1d22cd0/barrier-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ab23d3ccc96dbec551924c85a29675a", "sha256": "1f9c586a6b8c79006a4500bc2d2270a699a9ebec603ece145dec418fe55e1902" }, "downloads": -1, "filename": "barrier-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6ab23d3ccc96dbec551924c85a29675a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7537, "upload_time": "2019-08-06T22:32:11", "url": "https://files.pythonhosted.org/packages/ee/ef/54c1714f8d32ba2dd8cddd3b3eaa26cec389ea0bf4ac75ccc71b69ba1a60/barrier-0.2.2.tar.gz" } ] }