Skip to content
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

Pre-fill and lock local account creation screen during out-of-the-box macOS setup #9147

Closed
6 of 12 tasks
roperzh opened this issue Jan 2, 2023 · 24 comments
Closed
6 of 12 tasks
Assignees
Labels
~csa Issue was created by or deemed important by the Customer Solutions Architect. customer-easterwood customer-eponym customer-starchik customer-ufa #g-mdm MDM product group P2 Prioritize as urgent :product Product Design department (shows up on 🦢 Drafting board) prospect-nordenskiold story A user story defining an entire feature
Milestone

Comments

@roperzh
Copy link
Contributor

roperzh commented Jan 2, 2023

Goal

User story
As an IT admin,
I want to pre-fill and lock the full name and account name w/ values from my IdP during out-of-the-box macOS setup
so that my end user's login to their Mac w/ their IdP username.

Context

Changes

Product

  • UI changes: Figma link
  • CLI changes: Figma link
  • REST API changes: API design: Pre-fill and lock local account creation screen during out-of-the-box macOS setup #17118
  • Permissions changes:
    • Admins, maintainers (team and global) and GitOps users can upload automatic enrollment profile
    • Admins, maintainers (team and global) and GitOps users can enable the advanced option to release the device manually from await_device_configured
  • Other changes:
    • Set await_device_configured to true in the DEP profile for existing users (migration)
    • Update the order of commands that Fleet sends during enrollment:
      1. Command to install fleetd
      2. Command to install bootstrap package
      3. Command to install profiles
      4. Command to set up account (it's AccountConfiguration)
      5. Command to release host from Await Configured (DeviceConfigured)
    • If enable_release_device_manually set to true, Fleet won't send DeviceConfigured command. (user must send it manually)
  • Redirection URL: PR link
  • Outdated documentation changes: Cleanup and reduce of macOS setup page and document default behaviour when end-user authentication enabled.
  • Changes to paid features or tiers: Fleet Premium only

Engineering

  • Database schema migrations: TODO
  • Load testing: TODO

Context

This is possible today however Fleet requires that the IT admin does the following:

  • Configure end user authentication
  • Set await_device_configured to true in their automatic enrollment (DEP) profile
  • Build an automation to release the device from Await Configuration. We want Fleet to do this for the IT admin, by default.

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.
@roperzh roperzh added the #g-mdm MDM product group label Jan 2, 2023
@github-project-automation github-project-automation bot moved this to 🥚 Prioritized in ⚗️ ‎‎Roadmap Jan 2, 2023
@lukeheath lukeheath added :product Product Design department (shows up on 🦢 Drafting board) and removed :product Product Design department (shows up on 🦢 Drafting board) labels Jan 12, 2023
@dherder dherder added ~feature fest Will be reviewed at next Feature Fest customer-starchik prospect-nordenskiold labels Jan 24, 2024
@noahtalerman noahtalerman added :product Product Design department (shows up on 🦢 Drafting board) story A user story defining an entire feature and removed ~feature fest Will be reviewed at next Feature Fest labels Jan 29, 2024
@noahtalerman noahtalerman self-assigned this Jan 29, 2024
@noahtalerman
Copy link
Member

Hey @roperzh heads up, I moved the original issue description here:

Problem

DEP enrollment can be configured with await_device_configured, from the docs:

await_device_configured If true, the device will not continue in Setup Assistant until the MDM server sends a command that states the device is configured (see Release Device from Await Configuration).

Some IT admins use this to configure the device (install profiles, apps, etc) before it can continue with the setup during unboxing.

Potential Solutions

TBD: We need to design a flow for this use case

@noahtalerman noahtalerman changed the title Handle DEP profiles with await_device_configured Pre-fill local account creation screen during out-of-the-box macOS setup Feb 19, 2024
@noahtalerman noahtalerman changed the title Pre-fill local account creation screen during out-of-the-box macOS setup Pre-fill and lock local account creation screen during out-of-the-box macOS setup Feb 19, 2024
@dherder dherder added the ~feature fest Will be reviewed at next Feature Fest label Feb 21, 2024
@noahtalerman noahtalerman removed the ~feature fest Will be reviewed at next Feature Fest label Feb 21, 2024
@noahtalerman
Copy link
Member

Hey @marko-lisica I recorded a Loom video w/ my feedback here (internal).

Also, I left some feedback as TODOs in the design review doc (internal): https://docs.google.com/document/d/1AduqZ9yuMQ8uvC5Z6GJFJtE0pbdqdX9zHIau_VCOqGI/edit

@mna
Copy link
Member

mna commented Mar 25, 2024

@noahtalerman @marko-lisica We tested the feature (with @ghernandez345 and help from Roberto on how to reset the device between DEP-enrollment tests), in general it should release the device relatively quickly (in about a minute) as it waits for all profiles to be deployed, and in the worse case it "gives up" waiting for all profiles/commands to be done after about 15 minutes, but the manual release (fleetctl mdm run-command with a DeviceConfigured payload) can always be sent to release it faster.

@noahtalerman
Copy link
Member

@mna thanks for the update!

Testing DEP is a pain in the butt.

in the worse case it "gives up" waiting for all profiles/commands to be done after about 15 minutes

This is the case when the host goes offline while it's waiting for all profiles/commands?

Or does this happen in other scenarios? (poor connection/slow internet)

Asking because, if it's the offline case, I think sending the DeviceConfigured won't work (host won't receive the command).

@mna
Copy link
Member

mna commented Mar 25, 2024

@noahtalerman

This is the case when the host goes offline while it's waiting for all profiles/commands?

Yes, or any other reason why it didn't yet process all DEP enrollment commands and initial custom profiles, e.g. if battery is low and the device sends a "NotNow" response to commands, or network issues/slowness as you mention, etc.

if it's the offline case, I think sending the DeviceConfigured won't work

You're correct, but it doesn't really "send" the DeviceConfigured command, it enqueues it to be sent, so that whenever the device starts processing commands again, it will receive it.

ghernandez345 added a commit that referenced this issue Mar 26, 2024
relates to #9147

add the setup assistant page to the UI. This includes:

- new setup assistant page
- uploaded profile and release device manually form
- preview for setup assistant flow

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
@noahtalerman
Copy link
Member

it enqueues it to be sent, so that whenever the device starts processing commands again, it will receive it.

@mna ah, I see. So if the device sends a bunch of "NotNow" responses and the user is stuck for awhile, the IT admin can queue up the DeviceConfigured command.

This command will run sooner than retries for the commands that responded "NotNow" so the user will get unstuck.

Is that right?

Sounds like we can optimize this later by adding some sort of countdown (let's say 5 minutes) before Fleet just sends the DeviceConfigured command.

If so, I think the current way it works is acceptable.

@mna
Copy link
Member

mna commented Mar 27, 2024

This command will run sooner than retries for the commands that responded "NotNow" so the user will get unstuck.

@noahtalerman That's my understanding, yes. "NotNow" commands are skipped during "NotNow" responses.

mna added a commit that referenced this issue Mar 27, 2024
@georgekarrv georgekarrv added :demo and removed :demo labels Mar 28, 2024
@lukeheath lukeheath added :product Product Design department (shows up on 🦢 Drafting board) and removed :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. labels Apr 4, 2024
noahtalerman pushed a commit that referenced this issue Apr 4, 2024
@noahtalerman
Copy link
Member

API changes are merged.

TODO @noahtalerman remove duplicate example automatic enrollment (DEP) profile: https://github.com/fleetdm/fleet/blob/main/tools/mdm/apple/dep_sample_profile.json

Let's point users to the one we dogfood: https://github.com/fleetdm/fleet/blob/main/it-and-security/lib/automatic-enrollment.dep.json

@noahtalerman
Copy link
Member

noahtalerman commented Apr 8, 2024

UPDATE: PR is merged

PR to remove the duplicate DEP profile is here: #18114

@noahtalerman
Copy link
Member

Outdated documentation changes: Cleanup and reduce of macOS setup page and document default behaviour when end-user authentication enabled.

PR is here: #18127

@nonpunctual nonpunctual added the ~csa Issue was created by or deemed important by the Customer Solutions Architect. label Apr 9, 2024
@noahtalerman
Copy link
Member

Hey @Patagonia121 heads up, this customer request was shipped! 🎉

Docs are in progress. PR is here: #18127

@noahtalerman
Copy link
Member

Docs PR is merged! #18127

@fleet-release
Copy link
Contributor

Mac setup streamlined,
Like a cloud city's rhythm,
Admins find peace of mind.

@noahtalerman
Copy link
Member

Re-opening this story because we're missing some API docs. More info here: #16728 (comment)

@rachaelshaw when you get the chance, can you please update the docs. Thanks!

@noahtalerman noahtalerman reopened this May 16, 2024
@noahtalerman
Copy link
Member

noahtalerman commented May 23, 2024

UPDATE: Doc PR is here: #19225

TODO:

@noahtalerman

rachaelshaw added a commit that referenced this issue May 23, 2024
…out-of-the-box macOS setup (#19225)

Docs changes for "Pre-fill and lock local account creation screen during
out-of-the-box macOS setup" story (#9147)

See comment here for more context:
#9147 (comment)

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
@rachaelshaw
Copy link
Member

Docs are merged ✅

@fleet-release
Copy link
Contributor

Mac set-up now eased,
like dandelions in breeze,
Fleet fills in with ease.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
~csa Issue was created by or deemed important by the Customer Solutions Architect. customer-easterwood customer-eponym customer-starchik customer-ufa #g-mdm MDM product group P2 Prioritize as urgent :product Product Design department (shows up on 🦢 Drafting board) prospect-nordenskiold story A user story defining an entire feature
Projects
None yet
Development

No branches or pull requests