{ "info": { "author": "LasLabs, Odoo Community Association (OCA)", "author_email": "support@odoo-community.org", "bugtrack_url": null, "classifiers": [ "Framework :: Odoo", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Programming Language :: Python" ], "description": ".. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg\n :target: http://www.gnu.org/licenses/lgpl.html\n :alt: License: LGPL-3\n\n====================\nMFA Support via TOTP\n====================\n\nThis module adds support for MFA using TOTP (time-based, one-time passwords). \nIt allows users to enable/disable MFA and manage authentication apps/devices \nvia the \"Change My Preferences\" view and an associated wizard. \n\nAfter logging in normally, users with MFA enabled are taken to a second screen \nwhere they have to enter a password generated by one of their authentication \napps and are presented with the option to remember the current device. This \ncreates a secure, HTTP-only cookie that allows subsequent logins to bypass the \nMFA step.\n\nInstallation\n============\n\n1. Install the PyOTP library using pip: ``pip install pyotp``\n2. Follow the standard module install process\n\nConfiguration\n=============\n\nBy default, the trusted device cookies introduced by this module have a \n``Secure`` flag and can only be sent via HTTPS. You can disable this by going \nto ``Settings > Parameters > System Parameters`` and changing the \n``auth_totp.secure_cookie`` key to ``0``, but this is not recommended in \nproduction as it increases the likelihood of cookie theft via eavesdropping.\n\nUsage\n=====\n\nInstall and enjoy.\n\n.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas\n :alt: Try me on Runbot\n :target: https://runbot.odoo-community.org/runbot/149/9.0\n\nKnown Issues / Roadmap\n======================\n\nKnown Issues\n------------\n\n* The module does not uninstall cleanly due to an Odoo bug, leaving the \n ``res.users.authenticator`` and ``res.users.device`` models partially in \n place. This may be addressed at a later time via an Odoo fix or by adding \n custom uninstall logic via an uninstall hook.\n\nRoadmap\n-------\n\n* Make the various durations associated with the module configurable. They are \n currently hard-coded as follows:\n\n * 15 minutes to enter an MFA confirmation code after a password log in\n * 30 days before the MFA session expires and the user has to log in again\n * 30 days before the trusted device cookie expires\n\n* Add logic to extend an MFA user's session each time it's validated, \n effectively keeping it alive indefinitely as long as the user remains active\n* Add device fingerprinting to the trusted device cookie and provide a way to \n revoke trusted devices\n* Add company-level settings for forcing all users to enable MFA and disabling \n the trusted device option\n\nBug Tracker\n===========\n\nBugs are tracked on `GitHub Issues \n`_. In case of trouble, please \ncheck there if your issue has already been reported. If you spotted it first, \nhelp us smash it by providing detailed and welcomed feedback.\n\nCredits\n=======\n\nImages\n------\n\n* Odoo Community Association: `Icon `_.\n\nContributors\n------------\n\n* Oleg Bulkin \n\nMaintainer\n----------\n\n.. image:: https://odoo-community.org/logo.png\n :alt: Odoo Community Association\n :target: https://odoo-community.org\n\nThis module is maintained by the OCA.\n\nOCA, or the Odoo Community Association, is a nonprofit organization whose\nmission is to support the collaborative development of Odoo features and\npromote its widespread use.\n\nTo contribute to this module, please visit https://odoo-community.org.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://laslabs.com/", "keywords": "", "license": "LGPL-3", "maintainer": "", "maintainer_email": "", "name": "odoo9-addon-auth-totp", "package_url": "https://pypi.org/project/odoo9-addon-auth-totp/", "platform": "", "project_url": "https://pypi.org/project/odoo9-addon-auth-totp/", "project_urls": { "Homepage": "https://laslabs.com/" }, "release_url": "https://pypi.org/project/odoo9-addon-auth-totp/9.0.1.0.1/", "requires_dist": [ "odoo (<9.1a,>=9.0a)", "pyotp" ], "requires_python": "~=2.7", "summary": "Allows users to enable MFA and add optional trusted devices", "version": "9.0.1.0.1" }, "last_serial": 4762445, "releases": { "9.0.1.0.0": [ { "comment_text": "", "digests": { "md5": "53d3dbd97c3d7b5e0f879b09e4f3bfbe", "sha256": "43ce0ce32a385b6ce0083cbaca0a2b58bfa05b0b503ca98df58231391933596d" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "53d3dbd97c3d7b5e0f879b09e4f3bfbe", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 38182, "upload_time": "2017-04-11T18:04:08", "url": "https://files.pythonhosted.org/packages/fd/d3/8921d536c8048096df42fca55a91e42b75f11a649053df312b20f68d58eb/odoo9_addon_auth_totp-9.0.1.0.0-py2-none-any.whl" } ], "9.0.1.0.0.99.dev1": [ { "comment_text": "", "digests": { "md5": "123700d6f96b418008e77a2d3f6c1853", "sha256": "930da7eaae9572be2435ab511483f6e4f7efad6ffda7e969ca613c5f077c381f" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev1-py2-none-any.whl", "has_sig": false, "md5_digest": "123700d6f96b418008e77a2d3f6c1853", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 183943, "upload_time": "2017-04-11T18:04:12", "url": "https://files.pythonhosted.org/packages/ed/73/6c516d96efc4fcf6712e7106d095989a2ee1d69dabbb252c65aab7e560b0/odoo9_addon_auth_totp-9.0.1.0.0.99.dev1-py2-none-any.whl" } ], "9.0.1.0.0.99.dev10": [ { "comment_text": "", "digests": { "md5": "c2db739365fdd9f69325174263de8b61", "sha256": "49347b29e0e75395411d0a2acbd05d9973fe20ccf7d6f15e3ccdc470c280b454" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev10-py2-none-any.whl", "has_sig": false, "md5_digest": "c2db739365fdd9f69325174263de8b61", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 185276, "upload_time": "2017-10-29T05:40:33", "url": "https://files.pythonhosted.org/packages/bb/63/3e3b096b6933c178370db2d2024bc2f7aac7edd257a015a6858df1292526/odoo9_addon_auth_totp-9.0.1.0.0.99.dev10-py2-none-any.whl" } ], "9.0.1.0.0.99.dev2": [ { "comment_text": "", "digests": { "md5": "405e5fb90d1a13d13aab3d653b733d74", "sha256": "e89a718f11bbd2fce9f683955c6c5914c35b52e6d38f0fce9f87362b785e6e9f" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev2-py2-none-any.whl", "has_sig": false, "md5_digest": "405e5fb90d1a13d13aab3d653b733d74", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 184145, "upload_time": "2017-05-02T05:15:34", "url": "https://files.pythonhosted.org/packages/2f/c1/36c5d6300d3264be4d5140748ef5e63ddcaa82d02626618e52a43d83216d/odoo9_addon_auth_totp-9.0.1.0.0.99.dev2-py2-none-any.whl" } ], "9.0.1.0.0.99.dev3": [ { "comment_text": "", "digests": { "md5": "16c13c70a644fe639e369864d5e48a77", "sha256": "fee89652bc709fafd0de7c02e396d9747d598b377a3df942a4a01e1d7d96e406" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev3-py2-none-any.whl", "has_sig": false, "md5_digest": "16c13c70a644fe639e369864d5e48a77", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 184194, "upload_time": "2017-05-14T04:43:40", "url": "https://files.pythonhosted.org/packages/b5/a4/7ab2c671ad509964c29881a2933a0ef136c868b38ac0e8d655cda0a7f927/odoo9_addon_auth_totp-9.0.1.0.0.99.dev3-py2-none-any.whl" } ], "9.0.1.0.0.99.dev4": [ { "comment_text": "", "digests": { "md5": "c0c21bbf36a238ba815a8853c373d9da", "sha256": "614b68c950a410b2c8a5ff687e564eaf63fb13c08c8132499fb95de89d3bf3c5" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev4-py2-none-any.whl", "has_sig": false, "md5_digest": "c0c21bbf36a238ba815a8853c373d9da", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 184249, "upload_time": "2017-07-02T09:23:28", "url": "https://files.pythonhosted.org/packages/d9/36/468a6d27452cc0f627e18bfcdff5907045b80e32aba58b9292a054b51d12/odoo9_addon_auth_totp-9.0.1.0.0.99.dev4-py2-none-any.whl" } ], "9.0.1.0.0.99.dev5": [ { "comment_text": "", "digests": { "md5": "4ef0cebcf2a8cc17073d1ab547fbe0d2", "sha256": "26615165f39b06a20f7a645ffe74bd7d460c9062c8c5487697a4e92c691a7534" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev5-py2-none-any.whl", "has_sig": false, "md5_digest": "4ef0cebcf2a8cc17073d1ab547fbe0d2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 184930, "upload_time": "2017-07-21T04:30:17", "url": "https://files.pythonhosted.org/packages/81/45/d4c6a58d74e896643de04460938d5b8ebf304ea5a6d46b624231e400c218/odoo9_addon_auth_totp-9.0.1.0.0.99.dev5-py2-none-any.whl" } ], "9.0.1.0.0.99.dev6": [ { "comment_text": "", "digests": { "md5": "d8290432cac0e7d856008f232cb5050a", "sha256": "5a5de7d2b70e90acbe822913a2bdf9909ea986bf6a0e91b5c78e51bbccbf6e7d" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev6-py2-none-any.whl", "has_sig": false, "md5_digest": "d8290432cac0e7d856008f232cb5050a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 184904, "upload_time": "2017-07-23T04:32:04", "url": "https://files.pythonhosted.org/packages/b8/bf/bf3e16044cc060fbb6e0e77cf61ee4298662c8e1c2057c5285ebf217c6fb/odoo9_addon_auth_totp-9.0.1.0.0.99.dev6-py2-none-any.whl" } ], "9.0.1.0.0.99.dev7": [ { "comment_text": "", "digests": { "md5": "39ce62d24c92993f02789eeb48b250ec", "sha256": "1b0647a5d85e1ebe2ef094b08c388961e3f0ea7b11ab1c6ca5532102cbf75a6c" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev7-py2-none-any.whl", "has_sig": false, "md5_digest": "39ce62d24c92993f02789eeb48b250ec", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 185051, "upload_time": "2017-08-18T04:30:33", "url": "https://files.pythonhosted.org/packages/f6/3c/bd5538681ad5c1b14a0153010fe4d55af03c4366931e5569494fa0ea7066/odoo9_addon_auth_totp-9.0.1.0.0.99.dev7-py2-none-any.whl" } ], "9.0.1.0.0.99.dev8": [ { "comment_text": "", "digests": { "md5": "dddae7fd9af4c0aec5d210494dfb1b65", "sha256": "af2085dc748babd4eb0d43941d0f8b94609f321a24180acce6bd10fc53543cf8" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.0.99.dev8-py2-none-any.whl", "has_sig": false, "md5_digest": "dddae7fd9af4c0aec5d210494dfb1b65", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 185151, "upload_time": "2017-09-03T04:38:40", "url": "https://files.pythonhosted.org/packages/10/eb/35be2880718bfedf60a9a04d5e3d837602dd316673f2ab4c6f0d28219914/odoo9_addon_auth_totp-9.0.1.0.0.99.dev8-py2-none-any.whl" } ], "9.0.1.0.1": [ { "comment_text": "", "digests": { "md5": "d5710d16a38960feb11777ca951e6492", "sha256": "bc26afa3150230a3aa29ca946de840856123227e6cc617e08896abc26506f5c3" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d5710d16a38960feb11777ca951e6492", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 186034, "upload_time": "2018-01-12T05:31:11", "url": "https://files.pythonhosted.org/packages/dd/59/c5b8355f5fd4324c1da3bc2be9accd64fbf73bc793b0b36c394234288ee8/odoo9_addon_auth_totp-9.0.1.0.1-py2-none-any.whl" } ], "9.0.1.0.1.99.dev1": [ { "comment_text": "", "digests": { "md5": "bf10e296ceb78aef4d5fbe4a188eb476", "sha256": "fd0a9accce02ea246a23a3de734e442e4fb905ae9b6c8aed6a44c5f009ecc646" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.1.99.dev1-py2-none-any.whl", "has_sig": false, "md5_digest": "bf10e296ceb78aef4d5fbe4a188eb476", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 186311, "upload_time": "2018-03-04T05:52:18", "url": "https://files.pythonhosted.org/packages/03/3a/5df604dc245fd47b821c63312e781cf3ffeeef2fd1cfa39d99244223912e/odoo9_addon_auth_totp-9.0.1.0.1.99.dev1-py2-none-any.whl" } ], "9.0.1.0.1.99.dev2": [ { "comment_text": "", "digests": { "md5": "d40b6f678c6f1d78a2d6bfebd5e2a19d", "sha256": "06a5db4d063e9d7b185ec5246a87232f3c63d506a774026459c25b850530adf7" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.1.99.dev2-py2-none-any.whl", "has_sig": false, "md5_digest": "d40b6f678c6f1d78a2d6bfebd5e2a19d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 191693, "upload_time": "2018-06-25T04:36:11", "url": "https://files.pythonhosted.org/packages/18/ab/6b3bcdda0969c2cfff289eb7557aedb14aedadb041501eab733d0fc874d0/odoo9_addon_auth_totp-9.0.1.0.1.99.dev2-py2-none-any.whl" } ], "9.0.1.1.0.99.dev2": [ { "comment_text": "", "digests": { "md5": "d8870207854f5f54e51fc339d938f619", "sha256": "046b2e3bd97ca604a1f3e56365605ce9d7a96e0b0745538819479fe22128c91a" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.1.0.99.dev2-py2-none-any.whl", "has_sig": false, "md5_digest": "d8870207854f5f54e51fc339d938f619", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 190002, "upload_time": "2019-01-31T05:36:22", "url": "https://files.pythonhosted.org/packages/7d/52/0e81e6c4f02b6bdb966b96486d6fe2f6b89cfd538ea35aaba1ec9e0ab629/odoo9_addon_auth_totp-9.0.1.1.0.99.dev2-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5710d16a38960feb11777ca951e6492", "sha256": "bc26afa3150230a3aa29ca946de840856123227e6cc617e08896abc26506f5c3" }, "downloads": -1, "filename": "odoo9_addon_auth_totp-9.0.1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d5710d16a38960feb11777ca951e6492", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 186034, "upload_time": "2018-01-12T05:31:11", "url": "https://files.pythonhosted.org/packages/dd/59/c5b8355f5fd4324c1da3bc2be9accd64fbf73bc793b0b36c394234288ee8/odoo9_addon_auth_totp-9.0.1.0.1-py2-none-any.whl" } ] }