fleet icon indicating copy to clipboard operation
fleet copied to clipboard

Block the end user from logging into third-party tools (via IdP)

Open noahtalerman opened this issue 1 year ago • 16 comments

Goal

User story
As a endpoint operator,
I want to block the end user from logging into third-party tools (via IdP) if they're failing policies that require end user action to resolve
so that I have an enforcement mechanism for these policies.

Steps:

  • [ ] Rapidly wireframe the entire workflow at a new daily design review
  • [ ] After wireframes, prototype and report progress at new daily design reviews. We don't check in code yet, no PRs to the Fleet repo. …do we prioritize and build here? it depends. Otherwise we do it after.…
  • [ ] Dogfood …likely this is where we build it…

Changes

Product

  • [ ] UI changes: https://www.figma.com/file/EESNNt3dNZ8dmREv8JM9XD/%2316236-Best-practice-for-device-health?type=design&node-id=2-130&mode=design
  • [ ] CLI usage changes: TODO
  • [ ] REST API changes: TODO
  • [ ] Permissions changes: TODO
  • [ ] Outdated documentation changes: TODO
  • [ ] Changes to paid features or tiers: TODO

Engineering

  • [ ] Database schema migrations: TODO
  • [ ] Load testing: TODO

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

Context

  • Requestor(s): _________________________

QA

Risk assessment

  • Requires load testing: TODO
  • Risk level: Low / High TODO
  • Risk description: TODO

Manual testing steps

  1. Step 1
  2. Step 2
  3. Step 3

Testing notes

Confirmation

  1. [ ] Engineer (@____): Added comment to user story confirming successful completion of QA.
  2. [ ] QA (@____): Added comment to user story confirming successful completion of QA.

noahtalerman avatar Jan 19 '24 21:01 noahtalerman

Rachael: There's some designs in air guitar we did for a social media customer.

noahtalerman avatar Jan 29 '24 16:01 noahtalerman

Hey @mike-j-thomas!

If you have 30-60 mins, can you please help me with the designs for the new website pages I mocked up in Figma here?

In this Loom video, I walk through what these pages are for and what I could use your help on.

noahtalerman avatar Feb 19 '24 20:02 noahtalerman

@zwass here's the image we want to show end user's when they're failing > 0 policies.

unhealthy-device

@mike-j-thomas heads up, Zach and I decided to simplify the flow into one screen^ (Figma here)

If you have 30 mins, it would be awesome if you could touch up that screen so that we feel good about it when we show customers/prospects. Thanks!

noahtalerman avatar Feb 20 '24 20:02 noahtalerman

Hey @noahtalerman and @zwass, I added my touched-up version of your page to the Figma file. I think it could benefit from a line of text in the last step to try logging in again when the policy has been resolved (unless it does it automatically?)

image

mike-j-thomas avatar Feb 22 '24 06:02 mike-j-thomas

Thanks @mike-j-thomas!

Heads up, I removed the tooltips and tooltip indicators for now so that we can move quickly. The plan is for @zwass to pop open a page with just the .png (no extra functionality for now)

benefit from a line of text in the last step to try logging in again when the policy has been resolved (unless it does it automatically?)

Agreed. This won't happen automatically for now. Maybe something like "After all policies are passing, try logging in again"?

I think we can add that in a second pass later.

@zwass I exported the .png from Figma and attached it here:

unhealthy-device-1200x1550@2x

noahtalerman avatar Feb 22 '24 20:02 noahtalerman

@mike-j-thomas FYI I unassigned you and removed this from the digital experience board.

noahtalerman avatar Feb 27 '24 16:02 noahtalerman

Mike M:

Try this w/ Slack native app. What happens?

Success criteria:

  • Shouldn’t block you from getting access on your phone

noahtalerman avatar Feb 27 '24 19:02 noahtalerman

Zach:

Break glass is important to folks. Example, an engineer is paged because of an incident but they can’t resolve the issue until they update macOS.

Best demo:

  1. Someone is on a laptop with MDM off
  2. End user sees screen
  3. A bunch of other policies are satisfied because there are profiles that get pushed

noahtalerman avatar Feb 27 '24 19:02 noahtalerman

@noahtalerman, @zwass, I added the extra step to Figma, as discussed in Slack.

mike-j-thomas avatar Feb 28 '24 22:02 mike-j-thomas

Thanks @mike-j-thomas!

I tweaked the copy in your extra step and removed the button.

I think "passing" is easier to understand and, even though this is for a POC/demo, we might as well design this as if we could use it today (button doesn't work for now).

@zwass here's the updated PNG:

unhealthy-device-1200x1614@2x

noahtalerman avatar Feb 28 '24 23:02 noahtalerman

PoC: https://github.com/fleetdm/fleet/pull/17304/files

zwass avatar Mar 01 '24 19:03 zwass

Hey @zwass and @dherder, heads up, we didn't get to designs for this one in the last design sprint.

Bringing it back to feature fest.

Zach, do you have any updates on adding multi-factor auth (MFA) to the POC? If we have that working, would be great to record another video so we can post it and show folks we're making progress.

noahtalerman avatar Mar 28 '24 18:03 noahtalerman

I made progress on that but it's not complete yet. Hopefully next week it will be complete, but I may have to divert my attention to make slides for the BSides workshop.

zwass avatar Mar 29 '24 16:03 zwass

Okay here's the PoC including MFA: https://www.loom.com/share/aea68e80b3154c3daebf3362a5547faf?sid=e8a613d5-a2ff-4124-877d-c873934b1cd0

Code is in the draft PR (#17304)

zwass avatar Apr 02 '24 21:04 zwass

Thanks @zwass!

I filed a g-demand request here to get that video posted so that we can show the community/prospects our progress.

FYI @Drew-P-drawers

noahtalerman avatar Apr 08 '24 21:04 noahtalerman

Mike: For device health, by default, end users must have agent installed someday can use calendar data to differentiate vacation.

Imagine the computer showed their real name and the computer's status "Out of office" Maybe: because not sure all orgs mark vacation days consistently they don't

noahtalerman avatar Apr 12 '24 18:04 noahtalerman

@nonpunctual, @dherder, and I discussed the possibility of putting a very minimal amount of work for this into production which would allow customers to build viable workarounds to identify the devices. This would essentially entail merging the changes in the desktop.go file into Fleet Desktop: https://github.com/fleetdm/fleet/pull/17304/files#diff-3f41fa9ae040208ca903cd5556278bdde20b910633cb33141917e131e837c40f. There should be some additional QA work performed around it as well.

I'd estimate a couple days of work to get it productionized and tested.

This would then allow users to build/deploy their own equivalent of the rest of the functionality once they can properly identify the device an authentication request is coming from.

zwass avatar Jun 03 '24 23:06 zwass

attn: @pintomi1989

nonpunctual avatar Jun 03 '24 23:06 nonpunctual

@zayhanlon let's see how we can slot this into the roadmap instead of bringing it through feature fest.

noahtalerman avatar Jun 20 '24 20:06 noahtalerman

We should get a T shirt size on this issue to help w/ planning.

noahtalerman avatar Jun 20 '24 20:06 noahtalerman