-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI and testing enhancements. #366
base: master
Are you sure you want to change the base?
Commits on Sep 14, 2022
-
Add support for updating an authenticator.
With this, you can update the user component just by calling add_authenticator with the same credential_id but a different user. This will be a little more valuable in a later commit.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for 4116067 - Browse repository at this point
Copy the full SHA 4116067View commit details -
Allow registering an alias for authenticators.
Because sometimes, you have multiple Webauthn tokens and the user wants to give each a name of some sort.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for f91c866 - Browse repository at this point
Copy the full SHA f91c866View commit details -
Aliases for webauthn authenticators.
Building on the addition to registered authenticators, this adds support for adding, and using, aliases on authenticators. There are two points where we register an alias, the first is on device registration, and the second is on successful use. On the successful use case, we check to see if we already have an alias on the authenticator in question, and if we do not, we prompt for one. This makes it possible to track webauthn authenticators which were not registered via gimme_aws_creds.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for 6cad7eb - Browse repository at this point
Copy the full SHA 6cad7ebView commit details -
Print a message after registering webauthn touch.
Because there can be a noticible delay between the touch, and our next visible step, print a message to confirm that the touch was regisetred. This should help prevent things like accidentally triggering the Yubikey OTP output string, for users who don't notice that their device stopped blinking. (Like me, I definitely did that.)
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for 0de7e23 - Browse repository at this point
Copy the full SHA 0de7e23View commit details -
Add an optional use_keyring config option.
If absent, or y, then we will use a system keyring if available. If it is n, then we will not use a system keyring even if it is available. This should prevent continual prompts for storing it in the system keyring for people who either do not wish to store it there, or for people whose corporate policies do not allow them to store it there.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for e8a2aa6 - Browse repository at this point
Copy the full SHA e8a2aa6View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Sep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for e6fae51 - Browse repository at this point
Copy the full SHA e6fae51View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Sep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for e77ad27 - Browse repository at this point
Copy the full SHA e77ad27View commit details -
Replace nosetests with pytest.
A lot of search/replace made this go so much easier.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for da12a0f - Browse repository at this point
Copy the full SHA da12a0fView commit details -
Fix tests to handle alias in registered auth.
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for 9b04e92 - Browse repository at this point
Copy the full SHA 9b04e92View commit details -
Add alias tests for registered authenticators
Zeph / Liz Loss-Cutler-Hull committedSep 14, 2022 Configuration menu - View commit details
-
Copy full SHA for a72a364 - Browse repository at this point
Copy the full SHA a72a364View commit details
Commits on Sep 21, 2022
-
This gets us off the old, no longer supported, beta release.
Zeph / Liz Loss-Cutler-Hull committedSep 21, 2022 Configuration menu - View commit details
-
Copy full SHA for 5d152a3 - Browse repository at this point
Copy the full SHA 5d152a3View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Sep 21, 2022 Configuration menu - View commit details
-
Copy full SHA for d6a40c0 - Browse repository at this point
Copy the full SHA d6a40c0View commit details -
This is far easier to read, and even gives better status updates.
Zeph / Liz Loss-Cutler-Hull committedSep 21, 2022 Configuration menu - View commit details
-
Copy full SHA for dafd794 - Browse repository at this point
Copy the full SHA dafd794View commit details -
Use pip install instead of setup.py.
setup.py is depreciated, and recently broke, so let's just use pip install instead.
Zeph / Liz Loss-Cutler-Hull committedSep 21, 2022 Configuration menu - View commit details
-
Copy full SHA for e9ba4e8 - Browse repository at this point
Copy the full SHA e9ba4e8View commit details -
Among other things, this ensures that the tests all pass in a standardized enviornment, lacking anything specific to the machine the developer is running on.
Zeph / Liz Loss-Cutler-Hull committedSep 21, 2022 Configuration menu - View commit details
-
Copy full SHA for fc6d081 - Browse repository at this point
Copy the full SHA fc6d081View commit details
Commits on Oct 5, 2022
-
Switch from getpass to pwinput.
This is entirely for a better user interface experience, getting asterisks back instead of nothing while typing a password may leak the length, but almost every single form that takes user input does this so a user gets feedback while they type. Since this includes the Okta web forms, this seems like a straight win.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 3975410 - Browse repository at this point
Copy the full SHA 3975410View commit details -
Don't import the unused ui, linter fix.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 1d78813 - Browse repository at this point
Copy the full SHA 1d78813View commit details -
Use assertion.credential['id'] for credentialID.
Getting it this way has two important benefits: 1: It is already decoded. 2: When we support a single prompt for multiple webauthn keys, it will be the only possible way to know which key was used. 2 sounds like the more compelling reason, however the feature itself is of somewhat questionable value in that case.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 181ebea - Browse repository at this point
Copy the full SHA 181ebeaView commit details -
Replace assert with explicit check.
This is because asserts get dropped if the code ever gets compiled to python bytecode. This is largely just a linter fix.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 77a423e - Browse repository at this point
Copy the full SHA 77a423eView commit details -
Support for passing a list of credential IDs.
If we get a list of IDs, then we pass the whole list as the accept list, and if any of them are supported by a given device we can use it. This is required for being able to just ask the user if they want to use webauthn, instead of asking them to pick which webauthn device from a potentially unlabeled list that they want to use.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 17171eb - Browse repository at this point
Copy the full SHA 17171ebView commit details -
Rework except logic a little bit.
This is almost entirely to quiet the linter, however it also simplifies the code a little bit, and adds a comment to explain the code. Specifically, we should either check each and every layer of the object tree to see if the components exist, or we should rely on the AttributeError exception, not a combination of both. And we should only catch AttributeError, so we don't mask code problems in self._print_correct_answer.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for e98a740 - Browse repository at this point
Copy the full SHA e98a740View commit details -
Nothing to see here, just making the linter happier.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for a9b63e9 - Browse repository at this point
Copy the full SHA a9b63e9View commit details -
If we get DUO Web, only add DUO Push if we don't get DUO Push, and likewise only add DUO Passcode if we don't get DUO Passcode. And while we are at it, do both of the above even if we do get other MFA options, like Webauthn.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 48780ad - Browse repository at this point
Copy the full SHA 48780adView commit details -
Rework preferred factors slightly.
Now, preferred factors just replaces the factors list outright if we have any matches. And additionally, we now only prompt for factor selection if we have more than 1 possible MFA factor. (After all, if we are only given a single option, there's no point in ever prompting.)
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for a9f6d23 - Browse repository at this point
Copy the full SHA a9f6d23View commit details -
Consider N Webauthn factors as a single option.
Currently, if a user has 5 Webauthn keys configured in Okta (or, more likely, 2), the user gets 5 separate options in the factor list. This is... Not horribly user friendly, even if every single one does have a name configured for them. It turns out that Okta lets us ask for a nonce valid for every single one of them. If we take that path, we can take that nonce, and the whole list of possible challenge IDs, and pass it down to the webauthn code. At that point, we can let it pick whichever device is actually plugged in to this computer at this time. This means both that we can just give a single option in the factor list for Webauthn, and that setting the preferred MFA type to webauthn can Just Work even when a user has multiple webauthn tokens configured. This makes for a much better UI flow for users. The only big outstanding question I have is if the code around having names / labels for webauthn tokens makes any sense after this.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 86c28d7 - Browse repository at this point
Copy the full SHA 86c28d7View commit details -
This makes the changes required to support the 1.0.0 and above releases of fido2. The biggest two changes are in having to implement fido2.client.UserInteraction instead of just passing in the PIN and an on_keepalive function callback, and in having to upgrade to a version of ctap-keyring-device which also supports fido2 1.0.0. For ctap-keyring-device, we have the complication that while 2.0.0 supports fido2 1.0.0, it seems that the 2.0.0 release hasn't actually been, well, released yet. As such, we're quite improperly importing directly from git right now. We should fix that.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for b07a61d - Browse repository at this point
Copy the full SHA b07a61dView commit details -
Use defusedxml to silence security warnings.
The linter quite rightfully complains that parsing untrusted XML is not something done lightly.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for f0e0dc0 - Browse repository at this point
Copy the full SHA f0e0dc0View commit details -
Use allowed_methods for Retry.
This makes the depreciation warnings much happier.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 6787e7a - Browse repository at this point
Copy the full SHA 6787e7aView commit details -
Remove some whitespace on empty lines.
This makes the linter happier.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for e6f8eb4 - Browse repository at this point
Copy the full SHA e6f8eb4View commit details -
Allow remember_device to work with webauthn.
I can't see any reason why this wasn't previously allowed, we do it for all the other auth types. Now, I can think of reasons not to do it, but, well, yeah.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 4722d9e - Browse repository at this point
Copy the full SHA 4722d9eView commit details -
Cleanup whitespace for linters.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 4a6a99a - Browse repository at this point
Copy the full SHA 4a6a99aView commit details -
Attempt to keep and use the same Okta session.
This is a small code change, and a huge functionality change. And it is only supported in 'internal' and 'appurl' gimmie_creds_server modes. But with a successful authorization via Okta, we will now store the username and Okta session cookie in the config file as session_username and session_token. When we go to authorize, we load both from the config, and if the username is either unset, or it matches what is in session_username, we will attempt to renew the session cookie. If the Okta session is still valid, that will extend it by an Okta configured duration, and we then skip the entire authorization flow and just use that Okta session. If the session is not valid, we will get a 404 back, and we continue forward with the standard flow. There is a significant catch with this, if you want to change Okta usernames, you must specify the username on the command line.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 1a0d785 - Browse repository at this point
Copy the full SHA 1a0d785View commit details -
Add an option to disable session persistence.
For those cases where you don't want to persist things between invocations for some reason.
Zeph / Liz Loss-Cutler-Hull committedOct 5, 2022 Configuration menu - View commit details
-
Copy full SHA for 7c839b9 - Browse repository at this point
Copy the full SHA 7c839b9View commit details
Commits on Oct 7, 2022
-
Fix some whitespace related linter warnings.
Zeph / Liz Loss-Cutler-Hull committedOct 7, 2022 Configuration menu - View commit details
-
Copy full SHA for bdfdf99 - Browse repository at this point
Copy the full SHA bdfdf99View commit details -
Specify ctap-keyring-device differently.
This works better with setuputils. Note: It is my understanding that pypi won't accept releases that point directly at URLs in this manner, so we really need a release of ctap-keyring-device 2.0.
Zeph / Liz Loss-Cutler-Hull committedOct 7, 2022 Configuration menu - View commit details
-
Copy full SHA for fcb13b6 - Browse repository at this point
Copy the full SHA fcb13b6View commit details
Commits on Oct 26, 2022
-
Catch KeyError instead of AttributeError.
This should work just a little better.
Zeph / Liz Loss-Cutler-Hull committedOct 26, 2022 Configuration menu - View commit details
-
Copy full SHA for 937d224 - Browse repository at this point
Copy the full SHA 937d224View commit details
Commits on Oct 28, 2022
-
Correct the check for disable_session.
Little things...
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 6fc7b67 - Browse repository at this point
Copy the full SHA 6fc7b67View commit details -
Fix handling of the name for multiple keys.
It worked for me up until the first device was one that was registered.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 435920e - Browse repository at this point
Copy the full SHA 435920eView commit details -
This will be used for the case where no eligible webauthn devices are found, even if webauthn devices are found.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for eb82374 - Browse repository at this point
Copy the full SHA eb82374View commit details -
Rework error handling around calls to webauthn.
We now catch 'expected' errors from our webauthn code, cancel the operation with Okta, print an error message, and exit with a failure status. This isn't perfect, but it's definitely better.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for d22fe3b - Browse repository at this point
Copy the full SHA d22fe3bView commit details -
Tweak the session username check.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for d012bf5 - Browse repository at this point
Copy the full SHA d012bf5View commit details -
Drop the now unused FakeAssertion.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 15c6d34 - Browse repository at this point
Copy the full SHA 15c6d34View commit details -
Give different 'please touch' text per operation.
After all, especially with session handling, it can be confusing on if we want you to touch your existing registered device, or a device to be registered.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for b07e1e6 - Browse repository at this point
Copy the full SHA b07e1e6View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Oct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 2a6b617 - Browse repository at this point
Copy the full SHA 2a6b617View commit details -
Rework keyring devices a little.
Two things, first, we now always attempt to get the list of keyring devices, and if we are successful, we concat the two lists of devices. Second, we catch a known error in CtapKeyringDevice, and if we encounter it we print a message pointing at the PR which should fix the error.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 6ad690d - Browse repository at this point
Copy the full SHA 6ad690dView commit details -
Rework _run_in_thread error handling.
self.locate_device() never raises an error, so we need to check for _clients being empty ourselves, and if it is still empty after the second try, we raise the error ourselves. There is now a self._exception, which is a list of exceptions. Functions run in threads are expected to append any errors to this list. At the end, we check the list of errors. We default to FIDODeviceTimeoutError('Operation timed out') We then loop through the exception list, if we have instances of only FIDODeviceTimeoutError, we keep the default exception, if we find an instance of NoEligibleFIDODeviceFoundError, we switch to an error of NoEligibleFIDODeviceFoundError('No eligible authentication devices found.'), and if we have any other exception on the list, we pick that one instead over all of the others, wrapping it in a FIDODeviceError. We then throw whatever error we ended up with. These errors are now caught by the calling okta code. This should vastly improve the user experience around errors.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 394728d - Browse repository at this point
Copy the full SHA 394728dView commit details -
With current versions of python-fido2, this needed a fair bit of attention, and while I was at it, I started actually paying attention to a lot more of what Okta is sending us in regards to parameters for the credentials. There is also a workaround for a python-fido2 bug here, with a comment that has a link to the bug report.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 0e9af18 - Browse repository at this point
Copy the full SHA 0e9af18View commit details -
Move _verify to the new exception handling.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for d6c4a57 - Browse repository at this point
Copy the full SHA d6c4a57View commit details -
Remove an unneeded error print.
Zeph / Liz Loss-Cutler-Hull committedOct 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 9e10e53 - Browse repository at this point
Copy the full SHA 9e10e53View commit details
Commits on Nov 28, 2022
-
Merge remote-tracking branch 'origin/master' into enhancements
Trivial conflict resolution around the README.md for the windows output format. The conflict resolution for requirements.txt was straight forward in that the version on this branch is needed for this branch. And for gimme_aws_creds/okta.py, the change to auto-select if there is only one factor just went away, as that was handled somewhat differently in the code on this branch. (preferred_factors gets collapsed into factors before we get here, and so we already check for only a single option)
Zeph / Liz Loss-Cutler-Hull committedNov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 0cd0fbc - Browse repository at this point
Copy the full SHA 0cd0fbcView commit details -
Remove spaces to maybe fix nix.
Zeph / Liz Loss-Cutler-Hull committedNov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for e5ff581 - Browse repository at this point
Copy the full SHA e5ff581View commit details -
Try installing git before running nix build.
Zeph / Liz Loss-Cutler-Hull committedNov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 062c506 - Browse repository at this point
Copy the full SHA 062c506View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Nov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for b670eae - Browse repository at this point
Copy the full SHA b670eaeView commit details -
Zeph / Liz Loss-Cutler-Hull committed
Nov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 1c98e83 - Browse repository at this point
Copy the full SHA 1c98e83View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Nov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for f89b7f6 - Browse repository at this point
Copy the full SHA f89b7f6View commit details -
Install git in the Dockerfile.
Zeph / Liz Loss-Cutler-Hull committedNov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 7860269 - Browse repository at this point
Copy the full SHA 7860269View commit details -
Zeph / Liz Loss-Cutler-Hull committed
Nov 28, 2022 Configuration menu - View commit details
-
Copy full SHA for 2abaac6 - Browse repository at this point
Copy the full SHA 2abaac6View commit details
Commits on Nov 29, 2022
-
Handle the case where we have no 'sid' cookie.
Zeph / Liz Loss-Cutler-Hull committedNov 29, 2022 Configuration menu - View commit details
-
Copy full SHA for 83f940d - Browse repository at this point
Copy the full SHA 83f940dView commit details
Commits on Dec 15, 2022
-
Add an explicit requirement on urllib3 1.26+.
Zeph / Liz Loss-Cutler-Hull committedDec 15, 2022 Configuration menu - View commit details
-
Copy full SHA for f417d56 - Browse repository at this point
Copy the full SHA f417d56View commit details