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

Provide populated account creation screen during DEP unboxing #10744

Closed
2 tasks done
lukeheath opened this issue Mar 24, 2023 · 36 comments
Closed
2 tasks done

Provide populated account creation screen during DEP unboxing #10744

lukeheath opened this issue Mar 24, 2023 · 36 comments
Assignees
Labels
customer-eponym #g-mdm MDM product group :product Product Design department (shows up on 🦢 Drafting board) story A user story defining an entire feature
Milestone

Comments

@lukeheath
Copy link
Member

lukeheath commented Mar 24, 2023

UPDATE: We recommend that only Fleet users who are prepared to programmatically release devices from await_device_configuration use this feature.

This is because this feature is only available if await_device_configuration is set to true in the DEP profile.

Currently, if await_device_configuration is set to true, Fleet doesn't automatically release devices. This feature is coming soon and is covered in this issue: #9147

(noahtalerman 2023-05-10)

Goal

As an IT admin, I want the local account creation pane in the macOS SetupAssistant to present the end user with their username in our identity provider (IdP) so that they create an account with a username that matches the username in our IdP.

Tasks

1

  • During local account creation step in set up flow, the username is set to the end user's username from the IdP
  • To pre-populate the username, when we get the SAML response from the device, send an AccountConfiguration like we did in Okta integration: Demo Okta integration: Demo #10210 using the email we get from the SAML response. Similarly to that issue too, we probably need to use the DB table mdm_idp_accounts to keep a reference of the host being authenticated.

2

@lukeheath lukeheath added :product Product Design department (shows up on 🦢 Drafting board) #g-mdm MDM product group ~backend Backend-related issue. labels Mar 24, 2023
@lukeheath
Copy link
Member Author

Hey team! Please add your planning poker estimate with Zenhub @gillespi314 @roperzh

@georgekarrv georgekarrv added :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. :product Product Design department (shows up on 🦢 Drafting board) story A user story defining an entire feature and removed :product Product Design department (shows up on 🦢 Drafting board) :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. labels Apr 10, 2023
@noahtalerman noahtalerman added Epic and removed ~backend Backend-related issue. Epic labels Apr 13, 2023
@georgekarrv georgekarrv added :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. :product Product Design department (shows up on 🦢 Drafting board) and removed :product Product Design department (shows up on 🦢 Drafting board) :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. labels May 1, 2023
@georgekarrv
Copy link
Member

For clarification the users full name should also be populated from the okta information as well. The username should be the Account Name (what becomes the home directory) as well as both Full name and Account name must be disabled so the user cannot edit either.

@georgekarrv georgekarrv added :release Ready to write code. Scheduled in a release. See "Making changes" in handbook. and removed :product Product Design department (shows up on 🦢 Drafting board) labels May 3, 2023
@roperzh roperzh self-assigned this May 8, 2023
@roperzh
Copy link
Contributor

roperzh commented May 8, 2023

@noahtalerman we need to define which SSO attributes use for the full name and the username, for this I think it would be nice to check with customers, especially considering that the username is also the name of the home directory in the machine.

I have a PR for this work #11557 that implements username as the email, but I don't really like that solution since it contains a @ and the email might contain other characters like ..

@roperzh
Copy link
Contributor

roperzh commented May 8, 2023

@noahtalerman separately, could you confirm that this feature is enabled by default if the user has SSO enabled? my understanding is that at least for know we won't have a specific "knob" to tweak this behavior.

@noahtalerman
Copy link
Member

cc @georgekarrv

@noahtalerman
Copy link
Member

I don't really like that solution since it contains a @ and the email might contain other characters like .

@roperzh hmmm, yeah I agree. Is there a different SSO attribute what would the local username better? For example, I imagine Okta has something like a username attribute. I could be wrong..

confirm that this feature is enabled by default if the user has SSO enabled? my understanding is that at least for know we won't have a specific "knob" to tweak this behavior.

Yes, for now this will be the default behavior (not configurable).

@roperzh
Copy link
Contributor

roperzh commented May 8, 2023

@noahtalerman thanks!

@roperzh hmmm, yeah I agree. Is there a different SSO attribute what would the local username better? For example, I imagine Okta has something like a username attribute. I could be wrong.

There are many for example here are two pages listing some common attributes/claims:

And also you can specify any name you like, for example we ask users to set FLEET_JIT_USER_ROLE_TEAM_1 to define a team for JIT provisioning.

From the IT admin's perspective, for example, here's how I set an attribute in Okta:

image

If possible it might be a good idea to get user input, otherwise I suggest to pick one and move forward with that.

An obvious candidate is the username field, but we're already using that to get the email of the user.

@georgekarrv
Copy link
Member

For now we decided to go with regex everything in the email before the '@' as the name to use for account name.

@noahtalerman
Copy link
Member

cc @roperzh ^^

@noahtalerman
Copy link
Member

Hey @roperzh @georgekarrv after our "AwaitDeviceConfiguration" call, I thought of another option:

Only support this feature if await_device_configuration is set in DEP profile. Support gating enrollment behind auth/SSO feature if await_device_configuration is not set in DEP profile.

This way, we don't create the problem we talked about on the call: folks who want the gate enrollment behind auth/SSO can't because they don't know how (or don't want to) to set await_device_configuration and programmatically release the host.

What do you think? How difficult would this be?

@roperzh
Copy link
Contributor

roperzh commented May 19, 2023

I'm seeing this error when attempting to configure await_device_configured

Error: applying fleet config: POST /api/latest/fleet/mdm/apple/enrollment_profile received status 422 Validation Failed: Couldn’t edit macos_setup_assistant. The automatic enrollment profile can’t include await_device_configured.

@xpkoala PR #11789 has been merged with a fix for this, could you please try again? thanks and apologies!

@lukeheath lukeheath added this to the 4.32.0 milestone May 25, 2023
@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 May 25, 2023
@zhumo zhumo closed this as completed Jun 5, 2023
@fleet-release
Copy link
Contributor

Awaiting DEP screen,
Filled with IdP usernames,
Ease for IT admins.

@noahtalerman
Copy link
Member

noahtalerman commented Sep 28, 2023

UPDATE: Docs are in an open PR here: #14217

Re-opening this and bringing it back to confirm and celebrate column because we don't have docs.

@ireedy
Copy link
Contributor

ireedy commented Oct 5, 2023

C&C: @noahtalerman to talk to Mike about docs.

@noahtalerman
Copy link
Member

C&C: @noahtalerman to work with JD to get the doc content into an article. Mike and I decided to put a freeze on committed learning docs. We still want to be able to point the user somewhere to learn.

@noahtalerman
Copy link
Member

C&C: @noahtalerman need to pull this into a PR so JD can make it into an article.

1 similar comment
@noahtalerman
Copy link
Member

C&C: @noahtalerman need to pull this into a PR so JD can make it into an article.

@noahtalerman
Copy link
Member

C&C: @noahtalerman need to pull this into a PR so JD can make it into an article.

@noahtalerman
Copy link
Member

noahtalerman commented Dec 7, 2023

C&C: Let's turn this PR into a guide.

@spokanemac can you please help me pull the PR linked above into a guide that can go on fleetdm.com/guides?

@jd

Whoops! Sorry @jd

@noahtalerman
Copy link
Member

@spokanemac ping! When you get the chance, can you please help me pull this PR into a guide?

Happy to jump on a call if it's helpful.

@spokanemac
Copy link
Contributor

@spokanemac ping! When you get the chance, can you please help me pull this PR into a guide?

@noahtalerman Back in the office. I'll get this in the queue.

@noahtalerman
Copy link
Member

@spokanemac nice! Please ping me when it's ready for review.

@noahtalerman
Copy link
Member

C&C: Leaving this one open until we have an article published.

cc @noahtalerman and @spokanemac

@noahtalerman
Copy link
Member

C&C:

@spokanemac I think we can abandon the article.

To document this quickly, I'm going to pull this PR into the contributor docs: #14217

I learned from Rachael that we can use contributor docs if we think docs/feature is more experimental and we don't know how it's going to fit into the current docs in less words.

cc @noahtalerman

@rachaelshaw
Copy link
Member

C&C: needs contributor doc update @noahtalerman

@noahtalerman
Copy link
Member

@rachaelshaw decided not to document this one for now. The steps will change after we ship #9147

The plan is to document the instructions after we ship #9147

@fleet-release
Copy link
Contributor

Setup in the clouds,
IdP mirrored below,
Fleet streamlines the flow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
customer-eponym #g-mdm MDM product group :product Product Design department (shows up on 🦢 Drafting board) story A user story defining an entire feature
Projects
None yet
Development

No branches or pull requests