{ "info": { "author": "Nathan V", "author_email": "nathan.v@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet", "Topic :: Software Development" ], "description": "[![Apache](https://img.shields.io/badge/license-Apache-blue.svg)](https://github.com/nathan-v/aws_okta_keyman/blob/master/LICENSE.txt) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fnathan-v%2Faws_okta_keyman.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fnathan-v%2Faws_okta_keyman?ref=badge_shield) [![Python versions](https://img.shields.io/pypi/pyversions/aws-okta-keyman.svg)](https://pypi.python.org/pypi/aws-okta-keyman/) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/aws-okta-keyman) [![Downloads](http://pepy.tech/badge/aws-okta-keyman)](https://pepy.tech/project/aws_okta_keyman)\n\n[![Requirements Status](https://pyup.io/repos/github/nathan-v/aws_okta_keyman/shield.svg?t=1580777582434)](https://pyup.io/repos/github/nathan-v/aws_okta_keyman/) [![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/nathan-v/aws_okta_keyman)](https://codeclimate.com/github/nathan-v/aws_okta_keyman) [![Code Climate issues](https://img.shields.io/codeclimate/issues/nathan-v/aws_okta_keyman)](https://codeclimate.com/github/nathan-v/aws_okta_keyman/issues) [![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/nathan-v/aws_okta_keyman)](https://codeclimate.com/github/nathan-v/aws_okta_keyman) [![Codecov](https://img.shields.io/codecov/c/gh/nathan-v/aws_okta_keyman)](https://app.codecov.io/gh/nathan-v/aws_okta_keyman) [![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/nathan-v/aws_okta_keyman)](https://app.snyk.io/org/nathan-v/project/b00ed789-357f-49ad-93b1-2cac15b57e43)\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/nathan-v/aws_okta_keyman)](https://github.com/nathan-v/aws_okta_keyman/releases) [![GitHub Release Date](https://img.shields.io/github/release-date/nathan-v/aws_okta_keyman)](https://github.com/nathan-v/aws_okta_keyman/releases) [![PyPI version](https://badge.fury.io/py/aws-okta-keyman.svg)](https://badge.fury.io/py/aws-okta-keyman) [![PyPI - Status](https://img.shields.io/pypi/status/aws_okta_keyman)](https://badge.fury.io/py/aws-okta-keyman) [![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg?logo=sourcegraph)](https://sourcegraph.com/github.com/nathan-v/aws_okta_keyman)\n\n[![CircleCI](https://img.shields.io/circleci/build/gh/nathan-v/aws_okta_keyman/master?label=master&logo=circleci)](https://circleci.com/gh/nathan-v/aws_okta_keyman/tree/master) [![GitHub last commit](https://img.shields.io/github/last-commit/nathan-v/aws_okta_keyman)](https://github.com/nathan-v/aws_okta_keyman/commits/master)\n\n# AWS Okta Keyman\nThis is a simple command-line tool for logging into Okta and generating\ntemporary Amazon AWS Credentials. This tool makes it easy and secure to\ngenerate short-lived, [logged and user-attributed][tracking] credentials that can be\nused for any of the Amazon SDK libraries or CLI tools.\n\n## Features\nKey features listed here. Keep scrolling for more details.\n\n* MFA support\n* Multiple AWS role support\n* Automatic reup/refresh mode\n* Dynamic AWS/Okta integration list\n* Automatic username selection\n* Okta password caching\n* Command wrapping\n* Screen/shell only output\n* GovCloud support\n* Adjustable key lifetime\n* Console login URLs\n* Config files\n* Interactive config generation\n* Installation via pip and Homebrew\n* Linux, Windows, and OSX support\n\nBenefits vs other similar tools:\n\n* Runs without external dependencies; no servers or lambdas required\n* No API keys required; just your Okta username and password\n* No analytics or metrics collection; this tool does _not_ call home in any way\n* Open source distributed as source; you can see what you're running\n* Wide Python version support; works on Python 3.6+\n\n### Optional MFA Authentication\nIf your organization or integration requires MFA we will automatically detect that\nrequirement during authentication and prompt the user to complete the\nMulti Factor Authentication.\n\nIn particular, there is support for standard passcode based auth, as well as\nsupport for [Okta Verify with Push][okta_verify] and [Duo Auth][duo_auth]. If both\nare available, Okta Verify with Push will be prioritized and a push notification is\n_automatically sent to the user_. If the user declines the validation, then\noptionally the Passcode can be entered in manually.\n\nFor Duo Auth Duo wants you to use a web page to load their iframe to pick your factor\nand then move forward from there. That is one option and the one most likely to keep\nworking. This tool now also has an alternative browserless option that attempts to\nuse Duo for MFA without a browser. This may eventually be stopped/prevented by Duo\nbut makes this tool work on remote servers or in any other case where you may not\nbe able to use a browser.\n\n#### Supported MFA Solutions\n* Okta Verify\n* Duo Auth (push, call, or OTP via CLI)\n* Duo Auth (push, call, or OTP via web browser)\n* Okta OTP\n* Google Auth OTP\n* SMS OTP\n* Call OTP\n* Question/Answer\n\nWindows Hello, U2F, email, and physical token (RSA, Symantec) are not supported\nat this time.\n\n### Multiple AWS Roles\nAWS Okta Keyman supports multiple AWS roles when configured. The user is prompted to\nselect the role they wish to use before the temporary keys are generated.\n\n### Re-Up Mode .. Automatic Credential Re-Generation\nAmazon IAM defaults to Federated Login sessions that last up to *1 hour*. For\ndevelopers, it can be painful to re-authenticate every hour during your work\nday. This is made much worse if your organization requires MFA on each login.\n\nYou may run the AWS Okta Keyman in \"reup\" mode to get around this. The tool\nwill continue to run in a sleep loop periodically reaching out to Okta,\ngenerating a new SAML Assertion, and then generating updated Amazon AWS\ncredentials. This can run for as long as your Okta administrator has allowed\nyour Login Session to be - often a full work day.\n\nIn the case of application-level MFA you will be prompted every 50 minutes or\nso to complete the MFA again.\n\nSee the `--reup` commandline option for help here!\n\n### AWS Accounts from Okta\nAWS Okta Keyman can pull the AWS Accounts that have been assigned from Okta\nitself which means the app ID value no longer needs to be provided in the\ncommand line or in the config file. A config file can still optionally be used\nto ensure account names or order if preferred. This means with no configuration\nsaved you only need to provide your organization.\n\n### Automatic Username\nAWS Okta Keyman will use the current user as the username for Okta\nauthentication if no username has been provided.\n\n### Keyring Password Cache\nAWS Okta Keyman can use your local keyring to store your Okta password to allow you to\nrun the tool repeatedly without needing to type your password in each time. For details on how this\nis accomplished check out [keyring][keyring].\n\n```text\naws_okta_keyman -P # Enable the password cache\naws_okta_keyman -R # Reset the cached password in case of mistaken entry or password change\n```\n\n### Command Wrapping\nCommand wrapping provides a simple way to execute any command you would like directly from\nKeyman where the AWS access key environment variables will be provided when starting the\ncommand. An example of this is provided here:\n\n```text\n$ aws_okta_keyman --command \"echo \\$AWS_ACCESS_KEY_ID\"\n\n----snip----\n\n14:07:17 (INFO) Wrote profile \"default\" to /home/nathan/.aws/credentials \ud83d\udcbe\n14:07:17 (INFO) Current time is 2020-01-10 22:07:17.027964\n14:07:17 (INFO) Session expires at 2020-01-10 23:07:16+00:00 \u23f3\n14:07:17 (INFO) Running requested command...\n\n\nAXXXXXXXXXXXXXXXXXXX\n\n```\n\n### Screen-only Key Output\nScreen-only output for cases were the key needs to be copied\nelsewhere for use. This makes using the temporary keys in other apps simpler and easier.\nThey will not be written out to the AWS credentials file when this option is specified.\n\n```text\n$ aws_okta_keyman --screen\n\n----snip----\n\n14:14:04 (INFO) Assuming role: arn:aws:iam::1234567890:role/Admin\n14:14:04 (INFO) AWS Credentials:\n\nAWS_ACCESS_KEY_ID = AXXXXXXXXXXXXXXXXXXX\nAWS_SECRET_ACCESS_KEY = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nAWS_SESSION_TOKEN = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n14:14:04 (INFO) All done! \ud83d\udc4d\n```\n\n### GovCloud Support\nAWS Okta Keyman now works with AWS GovCloud. Use the `--region` command-line option\nto specify the AWS region to get the keys from.\n\n### Preferred Key Duration\nYou can set a key lifetime other than the default 1 hour by setting `--duration` when calling Keyman.\nIf AWS rejects the request for a longer duration the default 1 hour will be used instead. You can request\nkey durations from a minimum of 15 minutes (900 seconds) or up to 12 hours (43200 seconds). These\nlimits are enforced by AWS and are not a limitation of Keyman.\n\n### AWS Console Logins\nAWS Console login links can optionally be generated when yo request keys with Keyman.\nThe console login link will be output on the screen for you to use. Just provide the `--console`\nparameter when running Keyman.\n\n### Config file .. predefined settings for you or your org\nThe config file, which defaults to `~/.config/aws_okta_keyman.yml`, allows you to\npre-set things like your username, Okta organization name (subdomain), and AWS accounts\nand App IDs to make this script simpler to use. This also supports username assumption\nbased on the current user when the username or email is configured as\n`automatic-username` if usernames only are an option or\n`automatic-username@example.com` if you need full emails. Arguments will always\nbe preferred to the config file so you can override what's in the config file\nas needed on each run of the tool.\n\nExample config file:\n\n```yaml\nusername: automatic-username@example.com\norg: example\naccounts:\n - name: Dev\n appid: exampleAppIDFromOkta/234\n - name: Prod\n appid: exampleAppIDFromOkta/345\n```\n\nWhen used you'll get a similar interface to AWS Role selection but for your AWS\naccounts.\n\n### Interactive Configuration\nFor interactive configuration and creation of the config file you can start the tool with just config as a parameter and you will be propted to provide the basic information needed to get started. An example of this is shown here:\n\n```text\n$ aws_okta_keyman config\n14:21:41 (INFO) AWS Okta Keyman \ud83d\udd10 v0.7.0\n14:21:41 (INFO) Interactive setup requested\n\nWhat is your Okta Organization subdomain?\nExample; for https://co.okta.com enter 'co'\n\nOkta org: example\n\nWhat is your Okta user name?\nIf it is nathan you can leave this blank.\n\nUsername: nathan.v\n\nNext we can optionally configure your AWS integrations. This is not\nrequired as the AWS integrations can be picked up automatically from\nOkta. If you would prefer to list only specific integrations or prefer\nto specify the friendly names yourself you can provide the following\ninformation. You will be prompted to continue providing integration\ndetails until you provide a blank response to the app ID. If you are\nunsure how to answer these questions just leave the app ID blank.\n\nWhat is your AWS integration app ID?\nExample; 0oaciCSo1d8/123\nApp ID: 0oaciCSo1d8/123\n\nPlease provide a friendly name for this app.\nApp ID: AWS Prod\n\nWhat is your AWS integration app ID?\nExample; 0oaciCSo1d8/123\nApp ID:\n\n14:21:58 (INFO) Config file written. Please rerun Keyman\n```\n\n## Python Versions\nPython 2.7.4+ and Python 3.5.0+ are supported.\n\nSupport for older Python versions will be maintained as long as is reasonable.\nBefore support is removed a reminder/warning will be provided.\n\n## Usage\n### Client Setup\n#### Mac OS Installation\n`brew tap nathan-v/aws-okta-keyman` and then `brew install aws_okta_keyman`.\n\nOr install via URL (which will not receive updates):\n\n```\nbrew install https://raw.githubusercontent.com/nathan-v/homebrew-aws-okta-keyman/master/Formula/aws_okta_keyman.rb\n```\n\n#### Linux or Windows Installation\nBefore you can install this tool you need to have a working Python installation with pip.\nIf you're not sure if you have this a good place to start would be the [Python Beginner's Guide](pythonbeginner) .\n\nOnce your Python environment is configured simply run `pip install aws-okta-keyman` to install the tool.\n\n### Running AWS Okta Keyman\nFor detailed usage instructions, see the `--help` commandline argument.\n\nTypical usage:\n\n```text\n$ aws_okta_keyman\n16:48:22 (INFO) AWS Okta Keyman \ud83d\udd10 v0.7.0\nPassword:\n\n16:48:31 (INFO) Using factor: \ud83d\udcf2 Duo Push\n16:48:33 (WARNING) Duo required; check your phone... \ud83d\udcf1\n16:48:40 (INFO) Waiting for MFA success...\n16:48:41 (INFO) Successfully authed Nathan V\n16:48:41 (WARNING) No app ID provided; select from available AWS accounts\n\n Account\n[0] AWS - Sandbox\n[1] AWS - Development\n[2] AWS - Staging\n[3] AWS - Integration\n[4] AWS - Production\nSelection: 4\n\n16:48:47 (INFO) Using account: AWS - Production / exampleAppIDFromOkta/123\n16:48:47 (INFO) Getting SAML Assertion from example\n16:48:48 (WARNING) Multiple AWS roles found; please select one\n\n Account Role\n[0] example-prod Admin\n[1] example-prod Dev\nSelection: 0\n\n16:48:51 (INFO) Getting SAML Assertion from example\n16:48:51 (INFO) Assuming role: arn:aws:iam::1234567890:role/Admin\n16:48:52 (INFO) Wrote profile \"default\" to /home/nathan/.aws/credentials \ud83d\udcbe\n16:48:52 (INFO) Current time is 2019-11-08 00:48:52.265393\n16:48:52 (INFO) Session expires at 2019-11-08 01:48:52+00:00 \u23f3\n16:48:52 (INFO) All done! \ud83d\udc4d\n```\n\n### Troubleshooting\nTroubleshooting information is available on the project Github [wiki].\n\n## Okta Setup\nBefore you can use this tool, your Okta administrator needs to set up\n[Amazon/Okta integration][okta_aws_guide] using SAML roles.\n\n## Background\nThis is a hard fork of [nd_okta_auth][nd_okta_auth] by [Nextdoor.com, Inc.][nextdoorinc].\nI decided to move ahead this way as I wanted to be able to move quickly and add\nfeatures independently of the existing implementation. A big thank you to @diranged\nfor the original work that this comes from.\n\nThe original code is heavily based on the previous work done by\n[ThoughtWorksInc][thoughtworksinc] on their [OktaAuth][oktaauth] and [AWS Role\nCredentials][aws_role_credentials] tools.\n\n## Developer Info\nSee CONTRIBUTING.md for more information on contributing to this project.\n\n## License\nCopyright 2020 Nathan V\n\nCopyright 2018 Nextdoor.com, Inc\n\nLicensed under the Apache License, Version 2.0. See LICENSE.txt file for details.\n\nSome code in `aws_okta_keyman/okta.py`, `aws_okta_keyman/aws.py`,\n`aws_okta_keyman/aws_saml.py`, and `aws_okta_keyman/test/aws_saml_test.py` is\ndistributed under MIT license. See the source files for details. A copy of the\nlicense is in the LICENSE_MIT.txt file.\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fnathan-v%2Faws_okta_keyman.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fnathan-v%2Faws_okta_keyman?ref=badge_large)\n\n[nd_okta_auth]: https://github.com/Nextdoor/nd_okta_auth\n[nextdoorinc]: https://github.com/Nextdoor\n[oktaauth]: https://github.com/ThoughtWorksInc/oktaauth\n[aws_role_credentials]: https://github.com/ThoughtWorksInc/aws_role_credentials\n[thoughtworksinc]: https://github.com/ThoughtWorksInc\n[tracking]: https://aws.amazon.com/blogs/security/how-to-easily-identify-your-federated-users-by-using-aws-cloudtrail/\n[pythonbeginner]: https://wiki.python.org/moin/BeginnersGuide/Download\n[okta_aws_guide]: https://support.okta.com/help/servlet/fileField?retURL=%2Fhelp%2Farticles%2FKnowledge_Article%2FAmazon-Web-Services-and-Okta-Integration-Guide&entityId=ka0F0000000MeyyIAC&field=File_Attachment__Body__s\n[okta_mfa]: https://www.okta.com/products/adaptive-multi-factor-authentication/\n[okta_verify]: https://www.okta.com/blog/tag/okta-verify-with-push/\n[aws_saml]: http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html\n[duo_auth]: https://duo.com/\n[keyring]: https://github.com/jaraco/keyring\n[wiki]: https://github.com/nathan-v/aws_okta_keyman/wiki#faq--troubleshooting\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "http://pypi.python.org/pypi/aws_okta_keyman#downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nathan-v/aws_okta_keyman", "keywords": "AWS,Okta,Keys,Auth,Authentication,MFA,Duo,CLI,API", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "aws-okta-keyman", "package_url": "https://pypi.org/project/aws-okta-keyman/", "platform": "posix", "project_url": "https://pypi.org/project/aws-okta-keyman/", "project_urls": { "Download": "http://pypi.python.org/pypi/aws_okta_keyman#downloads", "Homepage": "https://github.com/nathan-v/aws_okta_keyman" }, "release_url": "https://pypi.org/project/aws-okta-keyman/0.9.0/", "requires_dist": [ "beautifulsoup4 (>=4.10.0)", "boto3 (>=1.4.0)", "colorlog (>=4.0.0)", "configparser (>=3.5.0)", "keyring (>=20.0.0)", "PyYAML (>=6.0)", "requests (>=2.10.0)" ], "requires_python": ">=3.6, <4", "summary": "AWS Okta Keyman", "version": "0.9.0", "yanked": false, "yanked_reason": null }, "last_serial": 13129876, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "cd1c49e9983685b34201549c4b2c27c9", "sha256": "51dce0660d9af322afead33e68f987fc5cfb1d0e02ec4ab03777d62cde59a86a" }, "downloads": -1, "filename": "aws_okta_keyman-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cd1c49e9983685b34201549c4b2c27c9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 18019, "upload_time": "2018-03-08T19:14:22", "upload_time_iso_8601": "2018-03-08T19:14:22.601761Z", "url": "https://files.pythonhosted.org/packages/7c/fd/7f5fcb8581530e175a8f29b65dc06deb86ea5fb2c493a9751d331db7843b/aws_okta_keyman-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c2545ccd35a3ff1aafd5a1091e8f317f", "sha256": "2367996173073daca856b3d092b26a52af3e6e6e1c21452d27bf091fe29bdc93" }, "downloads": -1, "filename": "aws_okta_keyman-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c2545ccd35a3ff1aafd5a1091e8f317f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 18238, "upload_time": "2018-03-15T17:09:11", "upload_time_iso_8601": "2018-03-15T17:09:11.215951Z", "url": "https://files.pythonhosted.org/packages/16/7c/2d48dc9dd12a09069b968c46c9d12e7e456a037c6738a9c7da42c857058b/aws_okta_keyman-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ff03a002b2439569e85d493f85777323", "sha256": "bd655e2b2525ab4339ec59168ac5ffb1a9221bd0a8825775bc22c6f0d597c59b" }, "downloads": -1, "filename": "aws_okta_keyman-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ff03a002b2439569e85d493f85777323", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 20627, "upload_time": "2018-03-29T17:32:21", "upload_time_iso_8601": "2018-03-29T17:32:21.448793Z", "url": "https://files.pythonhosted.org/packages/b5/5a/a58e5f7e70771213d10692256bc8585f0af61a7c23fd97f29becc86dcaf1/aws_okta_keyman-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "ddbd2da3f4e377eaca0d0ae82487d715", "sha256": "ee9500d6b5ebf99587b22ade098b8fb9e8ef595c5e59ba13a4bb981f348b83cb" }, "downloads": -1, "filename": "aws_okta_keyman-0.3.1.tar.gz", "has_sig": false, "md5_digest": "ddbd2da3f4e377eaca0d0ae82487d715", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 21089, "upload_time": "2018-04-19T18:11:54", "upload_time_iso_8601": "2018-04-19T18:11:54.052592Z", "url": "https://files.pythonhosted.org/packages/fa/7f/681d8fbd98fa030df1de0087bfd7b0be024289c3f6e9e8a6a4520b338f1c/aws_okta_keyman-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0a7afa69f9e7024314247508573dc930", "sha256": "41eaaeb07b502c5405631a580b2ba21e6a53159c5fe50778727f3d82ce5f7266" }, "downloads": -1, "filename": "aws_okta_keyman-0.3.2.tar.gz", "has_sig": false, "md5_digest": "0a7afa69f9e7024314247508573dc930", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 21167, "upload_time": "2018-04-19T18:28:18", "upload_time_iso_8601": "2018-04-19T18:28:18.647511Z", "url": "https://files.pythonhosted.org/packages/6f/f2/e681ece0531ad39960296a485c244d41640f6b5520b3e122a62a226ced72/aws_okta_keyman-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "87df33b8536c84f2c8ffff0817c683c4", "sha256": "4ae0d2b78b44687ae5e334a13e953a275e5088a6cbdefbde5f3f4d6252426b63" }, "downloads": -1, "filename": "aws_okta_keyman-0.3.3.tar.gz", "has_sig": false, "md5_digest": "87df33b8536c84f2c8ffff0817c683c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 22380, "upload_time": "2018-04-27T21:08:55", "upload_time_iso_8601": "2018-04-27T21:08:55.282090Z", "url": "https://files.pythonhosted.org/packages/19/62/c38a69325ca06621767378422a3814216d9df30c396293f91653d89cfe11/aws_okta_keyman-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a732da123b308f0e3fc6b28f4609d056", "sha256": "cad7613368e7101f041fab2913afcf66ba8ab9b4891c2d52fbaefa15961b8014" }, "downloads": -1, "filename": "aws_okta_keyman-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a732da123b308f0e3fc6b28f4609d056", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 23957, "upload_time": "2018-05-02T22:02:21", "upload_time_iso_8601": "2018-05-02T22:02:21.597829Z", "url": "https://files.pythonhosted.org/packages/60/15/7085421bfef00c3051153f8d961a84e99ea4f2cb4ec760463b7fbcd6f90c/aws_okta_keyman-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "f4d585b4a7280ed7c26e2fb306c215f4", "sha256": "d692ea9008195785c548df703d7f9e129bca5050e272bd880edf61956373fe43" }, "downloads": -1, "filename": "aws_okta_keyman-0.5.0.tar.gz", "has_sig": false, "md5_digest": "f4d585b4a7280ed7c26e2fb306c215f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 26186, "upload_time": "2019-10-22T17:31:54", "upload_time_iso_8601": "2019-10-22T17:31:54.598316Z", "url": "https://files.pythonhosted.org/packages/10/39/483767b92e0da9637588b66ad3f17767063ca97f08c26917b76ce943e8e0/aws_okta_keyman-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "ed4360af6285a2492cfc338b19fe6876", "sha256": "09cca2154eadeb63ae6902be683bd106b942bc943acbcfae271b28dfba37049c" }, "downloads": -1, "filename": "aws_okta_keyman-0.5.1.tar.gz", "has_sig": false, "md5_digest": "ed4360af6285a2492cfc338b19fe6876", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 30609, "upload_time": "2019-10-23T23:52:47", "upload_time_iso_8601": "2019-10-23T23:52:47.409160Z", "url": "https://files.pythonhosted.org/packages/6f/7f/85ba9a22965ddd07f44da3b2b5e611f4e87e78fdb22a8e4ff74c749cfd80/aws_okta_keyman-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "799240569dd30da97da194ea5d7a8eea", "sha256": "ddad0db983415d25be98a20647c507b687849eb3e565dc0a7c0c2c436e97f022" }, "downloads": -1, "filename": "aws_okta_keyman-0.6.0.tar.gz", "has_sig": false, "md5_digest": "799240569dd30da97da194ea5d7a8eea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, >=3.5.*, <4", "size": 33802, "upload_time": "2019-11-07T01:13:24", "upload_time_iso_8601": "2019-11-07T01:13:24.723488Z", "url": "https://files.pythonhosted.org/packages/c4/36/681931eb99359c736e641a6549b7fe7e3c4e0506efca07156a890143693c/aws_okta_keyman-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "6d350fafefb7ae6d4675f5e0ae770a20", "sha256": "65642b2040afd10ca04c08e949e3a31dc1dd669030a803890efcdda74a0e5962" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6d350fafefb7ae6d4675f5e0ae770a20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, >=3.5.*, <4", "size": 36895, "upload_time": "2019-11-14T23:41:02", "upload_time_iso_8601": "2019-11-14T23:41:02.061273Z", "url": "https://files.pythonhosted.org/packages/57/50/d8a520c68b9218febf1ea33a806006e638b7ab7e8978692f871300c44b9c/aws_okta_keyman-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "6e039bcc7e2011cddd109a21c174f823", "sha256": "2aece63dfe0c6f3bb7242a47b8e00187237b43a12e191ce2c4d6b49dd8902d4b" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.1.tar.gz", "has_sig": false, "md5_digest": "6e039bcc7e2011cddd109a21c174f823", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, >=3.5.*, <4", "size": 37873, "upload_time": "2019-11-19T00:49:07", "upload_time_iso_8601": "2019-11-19T00:49:07.965716Z", "url": "https://files.pythonhosted.org/packages/0d/af/5a9fd97f7471d243582b0edda259d362fce555f3f8f6e6187b427ba6c414/aws_okta_keyman-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "d93060a934cc5ddafc48eebbd4047392", "sha256": "84566fb6ed1319ef3fb616287dda61bb1a92a0012006a49253ef50996df8cfb4" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.2.tar.gz", "has_sig": false, "md5_digest": "d93060a934cc5ddafc48eebbd4047392", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 52788, "upload_time": "2019-11-19T22:08:55", "upload_time_iso_8601": "2019-11-19T22:08:55.459632Z", "url": "https://files.pythonhosted.org/packages/78/5c/21c78daa84f1115d33db7161f48f0177f058cb7fe7f46713434bf8114370/aws_okta_keyman-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "5d5f54238dfe2d9bf216e10baab65689", "sha256": "6b18b93e4ec4796ffcb49896592f4bcb018a6a581e0e8a0fd1c02ce88f1b1c87" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.3.tar.gz", "has_sig": false, "md5_digest": "5d5f54238dfe2d9bf216e10baab65689", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 54277, "upload_time": "2019-11-20T19:56:18", "upload_time_iso_8601": "2019-11-20T19:56:18.386209Z", "url": "https://files.pythonhosted.org/packages/15/d4/5e8b665c7bf336127ffeaadabb7ddd66c8e0cff43fd5e6cf258c8edb0159/aws_okta_keyman-0.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "6b1fd0564d9295621951b4bef510c166", "sha256": "62d537f7cff61c3cae940f2af06b0583c127b0b0d2fbc34e6cae09f5069da5c0" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.4.tar.gz", "has_sig": false, "md5_digest": "6b1fd0564d9295621951b4bef510c166", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 54300, "upload_time": "2019-11-22T21:34:16", "upload_time_iso_8601": "2019-11-22T21:34:16.283719Z", "url": "https://files.pythonhosted.org/packages/75/0e/2534605569123a948e99ece991c82a4f2d0a1f0c19e27a1bca45fc8842b6/aws_okta_keyman-0.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "db333fa2fade6e6e4c6c24c236f72bcc", "sha256": "b0afecec3fa083267013b01ebec38cabcb7bf372e52f0b3aea45fbb069d6939f" }, "downloads": -1, "filename": "aws_okta_keyman-0.7.5.tar.gz", "has_sig": false, "md5_digest": "db333fa2fade6e6e4c6c24c236f72bcc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 55415, "upload_time": "2020-01-10T21:52:43", "upload_time_iso_8601": "2020-01-10T21:52:43.142782Z", "url": "https://files.pythonhosted.org/packages/c1/59/5dc855887cb7de6754f1206a391614547d1b1c9a9f0a62f634505e1d5e0e/aws_okta_keyman-0.7.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "dbfcbeb2553966f352a70df1ebd49c67", "sha256": "d19b484f4bd84b4bb71ef2456708cf092d6274fe4dd9fe4838e2a770b5ea015c" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.0.tar.gz", "has_sig": false, "md5_digest": "dbfcbeb2553966f352a70df1ebd49c67", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 58659, "upload_time": "2020-01-15T23:42:06", "upload_time_iso_8601": "2020-01-15T23:42:06.934048Z", "url": "https://files.pythonhosted.org/packages/28/01/5add55d12f1f00942b4ac0504665513ef13b9da925ef8a25af619c3093fb/aws_okta_keyman-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "86b9bb1fdbe410ba76d269b2c2a8e3b0", "sha256": "00f2ff2776799388a2a4fb37910664eb2101ecb8b334d599da735a77726af112" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.1.tar.gz", "has_sig": false, "md5_digest": "86b9bb1fdbe410ba76d269b2c2a8e3b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 60908, "upload_time": "2020-02-28T18:41:08", "upload_time_iso_8601": "2020-02-28T18:41:08.627114Z", "url": "https://files.pythonhosted.org/packages/aa/11/3cfe109ce1eb1763c5d70f5aa87bf9c8c969c5fef8e311a70fc2b2005bb8/aws_okta_keyman-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "27da9a620661fbea67a625631f904594", "sha256": "544d27fc72182f7d06b1629bb0119d82e6c08732b60766b0aadd8d187de2229a" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.2.tar.gz", "has_sig": false, "md5_digest": "27da9a620661fbea67a625631f904594", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 61558, "upload_time": "2020-07-14T22:34:19", "upload_time_iso_8601": "2020-07-14T22:34:19.727575Z", "url": "https://files.pythonhosted.org/packages/55/d7/56fd5c683ff5f8e56b9bc15c64f55658d74f70a2b8e319ac717c554cdf10/aws_okta_keyman-0.8.2.tar.gz", "yanked": true, "yanked_reason": "Script start broken in release version. 0.8.3 to fix incoming ASAP" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "cec8f1e93348a33c897ac680cfb2ecf3", "sha256": "865ba7ef2c5718b5db63007798b96b87b2390a609dca9fe8bd6b99df5c003a75" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.3.tar.gz", "has_sig": false, "md5_digest": "cec8f1e93348a33c897ac680cfb2ecf3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 61553, "upload_time": "2020-07-14T23:22:06", "upload_time_iso_8601": "2020-07-14T23:22:06.870210Z", "url": "https://files.pythonhosted.org/packages/44/36/e0e9c711db9b76eabec3c448abab820f8046037e135b136f03210c0b9e57/aws_okta_keyman-0.8.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "9592ad6f1d61a7f0d2eda13b74c0aec8", "sha256": "194b120394a354879168db7c5c780bdc4d169653a028b169ca6c004f13a0e1dc" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.4.tar.gz", "has_sig": false, "md5_digest": "9592ad6f1d61a7f0d2eda13b74c0aec8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 61698, "upload_time": "2020-07-21T20:11:06", "upload_time_iso_8601": "2020-07-21T20:11:06.666639Z", "url": "https://files.pythonhosted.org/packages/1a/ba/7cc42ef5cdb013fbafcaa58a5bef14b3cebde0d04540ee4cb29c3a63a3cd/aws_okta_keyman-0.8.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "1bda49375f711932130aba8ec2d1664d", "sha256": "7dc9457011242b1d47af066d3b6acc1553ca655d9147f9b0c1212ceff97b2acc" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.5.tar.gz", "has_sig": false, "md5_digest": "1bda49375f711932130aba8ec2d1664d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 61689, "upload_time": "2020-08-26T21:22:33", "upload_time_iso_8601": "2020-08-26T21:22:33.356423Z", "url": "https://files.pythonhosted.org/packages/e8/29/3511980da5f7d2ca16a99f98793f5486be16376da044ab80dd4e93b6add1/aws_okta_keyman-0.8.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "f8ee69165d58823ce779d21d40e43e41", "sha256": "4167d95df13b834392cd047a293242572e5e4c7a708d6aa2fa4c121bde3e36ec" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.6-py2-none-any.whl", "has_sig": false, "md5_digest": "f8ee69165d58823ce779d21d40e43e41", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 64372, "upload_time": "2022-02-11T23:08:08", "upload_time_iso_8601": "2022-02-11T23:08:08.166067Z", "url": "https://files.pythonhosted.org/packages/1b/7f/dd6ad3d00d16b80a9ea867f5077d929171f545664ff9043c73f81ce20628/aws_okta_keyman-0.8.6-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "88e0335aae3d421f6883d9cee7de08ce", "sha256": "185860cf6043c060a251d3f0abbafe5b66dd1de99e4f866496e4da04b8a49f54" }, "downloads": -1, "filename": "aws_okta_keyman-0.8.6.tar.gz", "has_sig": false, "md5_digest": "88e0335aae3d421f6883d9cee7de08ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.4, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4", "size": 55302, "upload_time": "2022-02-11T23:08:09", "upload_time_iso_8601": "2022-02-11T23:08:09.751221Z", "url": "https://files.pythonhosted.org/packages/8a/38/b4db67f713f8ab103bfc63269cef41ef3e5023ee715cf292275f71a5bc3c/aws_okta_keyman-0.8.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "481d857a502757865fca71bc34dd5ba8", "sha256": "96ec6f95d7f6c60216d3d8b9b530a3c96e623bc961f7ef839482c71fc18ef4db" }, "downloads": -1, "filename": "aws_okta_keyman-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "481d857a502757865fca71bc34dd5ba8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6, <4", "size": 61032, "upload_time": "2022-03-09T20:42:14", "upload_time_iso_8601": "2022-03-09T20:42:14.246640Z", "url": "https://files.pythonhosted.org/packages/ea/b9/e7d2f8412af075076b686f4f465fabf9793cae06db67495cb0ccef1e1bc7/aws_okta_keyman-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dc849e4ae11b6f653988ea4b217ec784", "sha256": "58ba9cb40402ab8bcae2fd8bbcf9966cf9416436cfc84636cadca0e27d5f90a1" }, "downloads": -1, "filename": "aws_okta_keyman-0.9.0.tar.gz", "has_sig": false, "md5_digest": "dc849e4ae11b6f653988ea4b217ec784", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <4", "size": 57818, "upload_time": "2022-03-09T20:42:16", "upload_time_iso_8601": "2022-03-09T20:42:16.069276Z", "url": "https://files.pythonhosted.org/packages/f1/f2/84ad9c65c163715265266424ca3c2134629d64f6800f2eb24e78f3a9f296/aws_okta_keyman-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "481d857a502757865fca71bc34dd5ba8", "sha256": "96ec6f95d7f6c60216d3d8b9b530a3c96e623bc961f7ef839482c71fc18ef4db" }, "downloads": -1, "filename": "aws_okta_keyman-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "481d857a502757865fca71bc34dd5ba8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6, <4", "size": 61032, "upload_time": "2022-03-09T20:42:14", "upload_time_iso_8601": "2022-03-09T20:42:14.246640Z", "url": "https://files.pythonhosted.org/packages/ea/b9/e7d2f8412af075076b686f4f465fabf9793cae06db67495cb0ccef1e1bc7/aws_okta_keyman-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dc849e4ae11b6f653988ea4b217ec784", "sha256": "58ba9cb40402ab8bcae2fd8bbcf9966cf9416436cfc84636cadca0e27d5f90a1" }, "downloads": -1, "filename": "aws_okta_keyman-0.9.0.tar.gz", "has_sig": false, "md5_digest": "dc849e4ae11b6f653988ea4b217ec784", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <4", "size": 57818, "upload_time": "2022-03-09T20:42:16", "upload_time_iso_8601": "2022-03-09T20:42:16.069276Z", "url": "https://files.pythonhosted.org/packages/f1/f2/84ad9c65c163715265266424ca3c2134629d64f6800f2eb24e78f3a9f296/aws_okta_keyman-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }