{ "info": { "author": "Danny Shemesh", "author_email": "dany74q@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# keyvaultlib\r\nA KeyVault client wrapper that helps transition between using ADAL (Active Directory Authentication Libraries) and MSI (Managed Service Identity) as a token provider.\r\nMoreover, this library provides support for User-Assigned identities (MSI) and non-public (e.g. Government) Azure clouds.\r\n\r\n# What is KeyVault ?\r\nKey Vault is an Azure managed cloud service that allows you to securely store secrets in a variety of forms:\r\n- Credentials\r\n- Connection Strings\r\n- Private Keys and Certificates in various formats\r\n- ...\r\n\r\nIt provides auditing and integrates easily with AAD (Azure-Active-Directory) for user or application based authorization.\r\nMore about KeyVault can be found in the following link:\r\nhttps://docs.microsoft.com/en-us/azure/key-vault/key-vault-overview\r\n\r\n# What is ADAL (Active Directory Authentication Libraries) ?\r\nADAL are a set of libraries provided by the AAD (Azure-Active-Directory) team in a variety of programming languages\r\nthat allows one to easily interact with their cloud active directory.\r\nFor example, the libraries could be used for authentication and authorization with Azure resources\r\n\r\nMore about ADAL can be found in the following link:\r\nhttps://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-libraries\r\n\r\n# What is MSI (Managed-Service-Identity) ?\r\nMSI was created to ease the authentication flow for Azure services, while providing a per-VM granularity of control.\r\nOnce MSI is enabled on your VM, your virtual machine will be assigned an application or user client ID, \r\nwith which you could easily receive access tokens for Azure resources, which you may then authorize your VM to use.\r\nIt also saves the need to store your service principal information on disk, or worse, in your code base.\r\n\r\nMore about MSI can be found in the following link:\r\nhttps://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview\r\n\r\n# How to use this wrapper effectively ?\r\nThis KeyVault client was created for reducing the small code duplication involving the use of either MSI or ADAL / Service Principal Credentials.\r\nA common use case being - having part of your code running on Azure VMs while another part running on your local machine or VM,\r\nwhere MSI is not accessible.\r\n\r\n# Example\r\nFirst, install the library via:\r\n\r\n$> pip install keyvaultlib\r\n\r\nNext, import KeyVaultOAuthClient and choose your authentication strategy;\r\n\r\nCurrently supported: Using Service Principal credentials for ADAL or MSI\r\n\r\n```python\r\nfrom keyvaultlib.key_vault import KeyVaultOAuthClient\r\n\r\n# MSI Example\r\nclient = KeyVaultOAuthClient(use_msi=True)\r\nsecret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')\r\n\r\n# MSI - User Assigned Identity example\r\nclient = KeyVaultOAuthClient(use_msi=True, client_id='my_user_assigned_client_id')\r\nsecret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')\r\n\r\n# ADAL / SPN Example\r\nclient = KeyVaultOAuthClient(\r\n client_id='my_user_or_app_client_id', \r\n client_secret='my_user_or_app_client_secret', \r\n tenant_id='my_AAD_tenant_id'\r\n)\r\nsecret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')\r\n\r\n# Setting retry counts for request-throttling (Default is 5)\r\nclient = KeyVaultOAuthClient(\r\n client_id='my_user_or_app_client_id', \r\n client_secret='my_user_or_app_client_secret', \r\n tenant_id='my_AAD_tenant_id'\r\n)\r\nsecret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret', throttling_retry_attempts=2)\r\n\r\n# Using government / non-public Azure Clouds Example:\r\nfrom msrestazure.azure_cloud import AZURE_US_GOV_CLOUD\r\n\r\nclient = KeyVaultOAuthClient(\r\n client_id='my_user_or_app_client_id', \r\n client_secret='my_user_or_app_client_secret', \r\n tenant_id='my_AAD_tenant_id',\r\n cloud=AZURE_US_GOV_CLOUD\r\n)\r\nsecret = client.get_secret_with_key_vault_name('my-key-vault', 'my-secret')\r\n```\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dany74q/keyvaultlib", "keywords": "keyvault azure adal msi managed-service-identity", "license": "", "maintainer": "", "maintainer_email": "", "name": "keyvaultlib", "package_url": "https://pypi.org/project/keyvaultlib/", "platform": "", "project_url": "https://pypi.org/project/keyvaultlib/", "project_urls": { "Homepage": "https://github.com/dany74q/keyvaultlib" }, "release_url": "https://pypi.org/project/keyvaultlib/1.1.3/", "requires_dist": [ "msrestazure (==0.5.0)", "azure-keyvault (==1.1.0)", "azure-common (==1.1.16)", "six (>=1.12.0)" ], "requires_python": "", "summary": "A KeyVault client wrapper that helps transition between using ADAL (Active Directory Authentication Libraries) and MSI (Managed Service Identity) as a token provider", "version": "1.1.3" }, "last_serial": 5885793, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1f37315969d5183ec7b3c708c09847d2", "sha256": "d7ff6a794b533e9f6128d31b5408e32f0db59270f84cd773f4679463788d6960" }, "downloads": -1, "filename": "keyvaultlib-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1f37315969d5183ec7b3c708c09847d2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4141, "upload_time": "2018-08-17T16:11:45", "url": "https://files.pythonhosted.org/packages/55/a5/c8775f469b02e6e179f0c38f784863a20a75892497e6d4697978fe27a46e/keyvaultlib-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb8f67cc2c0aff2cfd18abb8cbe75c44", "sha256": "3accad3f88afe995bb9178314e947af956a7d16e958aaeb18410ce15c039b4cd" }, "downloads": -1, "filename": "keyvaultlib-1.0.0.tar.gz", "has_sig": false, "md5_digest": "eb8f67cc2c0aff2cfd18abb8cbe75c44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3823, "upload_time": "2018-08-17T16:11:47", "url": "https://files.pythonhosted.org/packages/fe/c5/4a5b5647e5ae1010208927880b58ca165e84edebeff4c00fef6743f82863/keyvaultlib-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "64c21883a5a8d60252931855e11860e9", "sha256": "00a502db2826935e8c76b95733afe22424d94c630c7b93d6830b9dd576728d1b" }, "downloads": -1, "filename": "keyvaultlib-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "64c21883a5a8d60252931855e11860e9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4277, "upload_time": "2018-08-17T16:51:05", "url": "https://files.pythonhosted.org/packages/b9/38/75ebcadc7b3cd58339dcd72422642a39d14ade6647c96175cd7ada1ab8b3/keyvaultlib-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a4691f1c5a9702adb196aba69cb4675", "sha256": "145f64e0fec7b71ba91b412d421183dc6683a29f0d4cbfe458a9cf6304dd1b6a" }, "downloads": -1, "filename": "keyvaultlib-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8a4691f1c5a9702adb196aba69cb4675", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3963, "upload_time": "2018-08-17T16:51:06", "url": "https://files.pythonhosted.org/packages/9e/90/a67af9e035ba82c046a9411114e1248e34934dde67dbb23ed2487552c4f5/keyvaultlib-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "e76cb77c227a7a8b2b9e828bd43096e7", "sha256": "32e889c1a6aa92a26d3c96f9bd79dbc969e5893256c335aaba3e8d634c2fe895" }, "downloads": -1, "filename": "keyvaultlib-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "e76cb77c227a7a8b2b9e828bd43096e7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4948, "upload_time": "2018-11-29T15:57:58", "url": "https://files.pythonhosted.org/packages/97/c9/2add21735c44caebc184969079d17364a063e73e0d7619e4fed304f662d0/keyvaultlib-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdee5bae8530d05f6f106da5da38d2a2", "sha256": "4a232b55f7e943775e27575b4acdff387f54e369bf02d99fc60138206c5b43da" }, "downloads": -1, "filename": "keyvaultlib-1.0.2.tar.gz", "has_sig": false, "md5_digest": "cdee5bae8530d05f6f106da5da38d2a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3834, "upload_time": "2018-11-29T15:58:00", "url": "https://files.pythonhosted.org/packages/87/9e/b67aec476d7b08a3af545b0464b2c9d310795c1ba7b88d4ae79e27c2f71d/keyvaultlib-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "cce5d3abaaff83a15b71d503f15695aa", "sha256": "3c111172dd66249c3c17c6ddfefbe8353f91b0a55bd07aefe3eb2b9545eb0fe4" }, "downloads": -1, "filename": "keyvaultlib-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "cce5d3abaaff83a15b71d503f15695aa", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4992, "upload_time": "2018-12-06T14:09:44", "url": "https://files.pythonhosted.org/packages/4d/8d/674436c098615a7dfc77784b728b9d6e6dd8d0ff9cc2f29c4c87abc3dfde/keyvaultlib-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daee5d928b6dcca58dedaf9a8daa2d5b", "sha256": "ecac2f26f959f2d3dc1910adb6f35f15fb594aabc7fda2b85f66818f0e6383b5" }, "downloads": -1, "filename": "keyvaultlib-1.0.3.tar.gz", "has_sig": false, "md5_digest": "daee5d928b6dcca58dedaf9a8daa2d5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3869, "upload_time": "2018-12-06T14:09:46", "url": "https://files.pythonhosted.org/packages/08/9e/5803bb93e2c377b5a9ab57023aa1398e1ad57b9ed0c994132aa7a1da7fd3/keyvaultlib-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "b1f76fe56cc26df5ac2ffd18601ffc6b", "sha256": "42072c6af3a9d49b822cbe476276c77f61beddbbb45ccb30672e38b75533ca2f" }, "downloads": -1, "filename": "keyvaultlib-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "b1f76fe56cc26df5ac2ffd18601ffc6b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5005, "upload_time": "2018-12-18T14:28:20", "url": "https://files.pythonhosted.org/packages/e0/ba/fbeee24a9b025a05e8ac7caca9e5b8aca6199cfa55a6b47d963451cd130e/keyvaultlib-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de6f257d79d760df31f12f21592103f4", "sha256": "47fe5b93e9180dff7555a08cee3d1a1c4d615f6372bc7949f69fcdaf0bb0a44f" }, "downloads": -1, "filename": "keyvaultlib-1.0.4.tar.gz", "has_sig": false, "md5_digest": "de6f257d79d760df31f12f21592103f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3896, "upload_time": "2018-12-18T14:28:22", "url": "https://files.pythonhosted.org/packages/ba/51/182d22c32bdecdfbc40756c94fb51d954b1d9cd0597f5d458b0e705ee787/keyvaultlib-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "176ebb757757f5089d0cd993ca67cdcd", "sha256": "df5517f7719f121b9be8581a2f3eb1ecf804751b514f869adedb318a50b538f4" }, "downloads": -1, "filename": "keyvaultlib-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "176ebb757757f5089d0cd993ca67cdcd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4445, "upload_time": "2019-01-03T10:03:26", "url": "https://files.pythonhosted.org/packages/18/29/c7d6afa852b342e342fdb39a84de59b22ba05d69c089f7251259a7378a41/keyvaultlib-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bcdfbc736f2d11968a6d946ab2e6ba7", "sha256": "b14e8f4f7ff839cd0073d2061417a4c0800217fd2d9b2c31547db976867214f5" }, "downloads": -1, "filename": "keyvaultlib-1.0.5.tar.gz", "has_sig": false, "md5_digest": "3bcdfbc736f2d11968a6d946ab2e6ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4228, "upload_time": "2019-01-03T10:03:28", "url": "https://files.pythonhosted.org/packages/2a/3f/e7458dd46b1c34526c933523074f564352c0ef0e5bf0e5c0eea7ea91669e/keyvaultlib-1.0.5.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "40f1f6e1a3ee9b93886b5930a85897bd", "sha256": "9c8f304c1d9d07122069865462a947770f396e054fe0ebac9ecc0061ccb1a34f" }, "downloads": -1, "filename": "keyvaultlib-1.0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "40f1f6e1a3ee9b93886b5930a85897bd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4846, "upload_time": "2019-01-14T11:51:04", "url": "https://files.pythonhosted.org/packages/c2/be/d03decddd65b3f1e372e07ddd9d62afa9c55bd8100f4bba24413defba98b/keyvaultlib-1.0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4625cc0d331d1449ef489965e3ba95d", "sha256": "d85ddeece5ed8e314767a8b959ffcd52216e97c6dce57437ac2ce6784058baa4" }, "downloads": -1, "filename": "keyvaultlib-1.0.9.tar.gz", "has_sig": false, "md5_digest": "c4625cc0d331d1449ef489965e3ba95d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4626, "upload_time": "2019-01-14T11:51:05", "url": "https://files.pythonhosted.org/packages/53/60/965be005a95cd36c1a0fd2cea27949990af14960bca64fd3d6ea6ec57fe5/keyvaultlib-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "68aaa0e038209242cccccfc5dad6ded6", "sha256": "7ceef256acd41ec25db47b28fc4972be7a1b69d71a0075cbc1ec76da364d0d3b" }, "downloads": -1, "filename": "keyvaultlib-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "68aaa0e038209242cccccfc5dad6ded6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4840, "upload_time": "2019-01-23T10:46:54", "url": "https://files.pythonhosted.org/packages/82/f9/2727b10323f655b675bba9921f0078798303a2bb3e18ea4c5e005a581363/keyvaultlib-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df16365876958f2815c34eadcb541d5b", "sha256": "2e96b2c56a488cffbaea17480c982a8c86c3c1edcc0abcb63ec6b2e4133f3e75" }, "downloads": -1, "filename": "keyvaultlib-1.1.0.tar.gz", "has_sig": false, "md5_digest": "df16365876958f2815c34eadcb541d5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4625, "upload_time": "2019-01-23T10:46:56", "url": "https://files.pythonhosted.org/packages/26/00/508112b58b8f78917591f26e0105f2e50b8ffdfee79d94f819aa9d233b73/keyvaultlib-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "3aa32afbb4f7bb265b7e1601e8eb62e7", "sha256": "4035eed9be51395a69138254da8e65755d9acab4ff37e653ff38a7fa933cc588" }, "downloads": -1, "filename": "keyvaultlib-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "3aa32afbb4f7bb265b7e1601e8eb62e7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7413, "upload_time": "2019-02-11T12:07:39", "url": "https://files.pythonhosted.org/packages/05/6b/7bd8a11a643ac713820e37bdc8763ac5da9716675517daaf9765769a1785/keyvaultlib-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "742795661eb6fb5f69b958b68b179bbd", "sha256": "adb6e58eba202c08370442550dfe9bc903d2b7d604c6c192a4981c9501bea821" }, "downloads": -1, "filename": "keyvaultlib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "742795661eb6fb5f69b958b68b179bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4755, "upload_time": "2019-02-11T12:07:41", "url": "https://files.pythonhosted.org/packages/cc/f7/6520b2840b727f07ce2c726cb567ed1a9aa12d3155bbccf8d9befdb185ad/keyvaultlib-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "5efc7feb41e84d542e93504d36a6865c", "sha256": "bf8c30daca97487e4fded3c1eca5a22354c6c82112aff148988c21b149b7346d" }, "downloads": -1, "filename": "keyvaultlib-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5efc7feb41e84d542e93504d36a6865c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6256, "upload_time": "2019-04-08T09:10:43", "url": "https://files.pythonhosted.org/packages/b4/9a/29accad2c980ae3c7e7d6c82a9dea3022c5a1e90775397d81f6235958b0b/keyvaultlib-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7fcd231d4ca0ba400a930a71434b725", "sha256": "1917e71a079bab0a51524bb52be88eba2d5dd57b6e0875b65e9906760f1fa892" }, "downloads": -1, "filename": "keyvaultlib-1.1.2.tar.gz", "has_sig": false, "md5_digest": "f7fcd231d4ca0ba400a930a71434b725", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4953, "upload_time": "2019-04-08T09:10:41", "url": "https://files.pythonhosted.org/packages/4d/a1/eb0099f1766e3f24fa01732f9cc5bf537113e29b5f289b0eab8f637f38d2/keyvaultlib-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "182be75c310e0773b926754eeffc6650", "sha256": "da81369a2539b162b7cd80b2db1ac08513e46e1e5f91022cff01ff0de903cbc0" }, "downloads": -1, "filename": "keyvaultlib-1.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "182be75c310e0773b926754eeffc6650", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5859, "upload_time": "2019-09-25T15:00:06", "url": "https://files.pythonhosted.org/packages/b8/11/3a21fd70f32fbb656b09ccc28af4e79d98e070fce08618ca2448e9a3e83f/keyvaultlib-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "452a0b0224d94ba5dbc5791903cf5470", "sha256": "276ab09e7c1200f135a4c21bdc94698fba5cc2c8d76da94eb141f54ccd31cf2b" }, "downloads": -1, "filename": "keyvaultlib-1.1.3.tar.gz", "has_sig": false, "md5_digest": "452a0b0224d94ba5dbc5791903cf5470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4769, "upload_time": "2019-09-25T15:00:09", "url": "https://files.pythonhosted.org/packages/9e/7e/3c6631486bbf3e2e5e83c268dc93c69b400643f9148119451be0cc273f5b/keyvaultlib-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "182be75c310e0773b926754eeffc6650", "sha256": "da81369a2539b162b7cd80b2db1ac08513e46e1e5f91022cff01ff0de903cbc0" }, "downloads": -1, "filename": "keyvaultlib-1.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "182be75c310e0773b926754eeffc6650", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5859, "upload_time": "2019-09-25T15:00:06", "url": "https://files.pythonhosted.org/packages/b8/11/3a21fd70f32fbb656b09ccc28af4e79d98e070fce08618ca2448e9a3e83f/keyvaultlib-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "452a0b0224d94ba5dbc5791903cf5470", "sha256": "276ab09e7c1200f135a4c21bdc94698fba5cc2c8d76da94eb141f54ccd31cf2b" }, "downloads": -1, "filename": "keyvaultlib-1.1.3.tar.gz", "has_sig": false, "md5_digest": "452a0b0224d94ba5dbc5791903cf5470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4769, "upload_time": "2019-09-25T15:00:09", "url": "https://files.pythonhosted.org/packages/9e/7e/3c6631486bbf3e2e5e83c268dc93c69b400643f9148119451be0cc273f5b/keyvaultlib-1.1.3.tar.gz" } ] }