Skip to content

Deploy SCEP certificates from Network Device Enrollment Service (NDES) #21955

Closed
5 of 5 issues completed
Closed

Description

@noahtalerman

Goal

User story
As an IT admin,
I want Fleet to install a unique SCEP certificate from NDES on all my macOS hosts as part of my Wi-Fi/Ethernet profile
so that I can grant end users access to my organization’s network.

✅ "Grant Wi-Fi access" (Fleet Premium)

Context

Notes from call w/ prospect-numa are here (internal).

Original request: #13420

Changes

Product

Engineering

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

Demo

QA

Risk assessment

  • Requires load testing: No, because we don't expect a SCEP profile to be deployed to all hosts. We expect a SCEP profile to be deployed gradually as part of enrolling new devices.
  • Risk level: High
  • Risk description: Largely new functionality for Fleet (SCEP proxy) interacting with a complex 3rd party Windows Server NDES service.

Manual testing steps

  1. Set up NDES server (dev tested using Windows Server 2022, so maybe do Windows Server 2019 for QA)
  1. Configure NDES
  • Test failure scenarios, like password cache full (defaults to 5 passwords)
  1. Create a profile using new fleet variables, and upload manually/GitOps. Example profile
  • $FLEET_VAR_NDES_SCEP_CHALLENGE
  • $FLEET_VAR_HOST_END_USER_EMAIL_IDP
  • $FLEET_VAR_NDES_SCEP_PROXY_URL
  • Try bad $FLEET_VAR values, such as $FLEET_VAR_BOZO
  • Try deploying profile without NDES, or without an IDP email
  • Note: dev testing was done by manually adding a mdm_idp_accounts source email to host_emails table in DB
  • Try using these Fleet variables in Windows or DDM profiles -- should not work.
  1. NDES passwords expire after 60 minutes (this expectation is hard-coded in Fleet). Deploy SCEP profile to an offline host. After 1 hour, when host comes up, Fleet should re-send the profile with updated one time password.
  2. Make sure global activity feed shows up when NDES config is added/edited/deleted.
  3. Test with multiple devices. Dev testing was done with 2 devices and 10 SCEP profiles each. You will need to increase the password cache in NDES.

Testing notes

  • try to use examples/directions from the feature guide as much as possible
  • configs can be changed via UI, API, fleetctl apply, and fleetctl gitops -- focus the testing on UI and gitops
  • macOS only
  • restarting NDES server will cause password cache to clear

Confirmation

  1. Engineer (@getvictor): Added comment to user story confirming successful completion of QA.
  2. QA (@_____): Added comment to user story confirming successful completion of QA.

Activity

  1. added
    storyA user story defining an entire feature
    :productProduct Design department (shows up on 🦢📨🎉 Product design intake & outtake board)
    on Sep 10, 2024
  2. changed the title [-]Install & renew unique certificate from NDES as part of Wi-Fi/Ethernet macOS configuration profile[/-] [+]Deploy & renew certificates from NDES[/+] on Sep 10, 2024
  3. changed the title [-]Deploy & renew certificates from NDES[/-] [+]Deploy & renew certificates from Network Device Enrollment Service (NDES)[/+] on Sep 10, 2024
  4. changed the title [-]Deploy & renew certificates from Network Device Enrollment Service (NDES)[/-] [+]Deploy & renew SCEP certificates from Network Device Enrollment Service (NDES)[/+] on Sep 10, 2024
  5. noahtalerman commented on Sep 10, 2024

    @noahtalerman
    MemberAuthor

    Latest requirements:

    • Connect to NDES is the certificate authority (CA)
      • Fleet might need NDES (SCEP server) URL, instance name, URL for SCEP challenge, and SCEP admin username/pwd (more here)
      • Fleet might needs a certificate signing request so that Fleet can make requests to NDES on behalf of a host
    • Fleet delivers a SCEP payload that is unique per host. Variables in profile determine name and other unique items
      • Host responds to Fleet w/ certificate request, Fleet reaches out to NDES, NDES sends certificate to host
        • If this were non-proxy, the host would reach out to NDES itself
    • Fleet redelivers SCEP payload to renew certificate before it expires
    • Revoke? When end user leaves the organization, Fleet revokes the SCEP certificate (TBD)
    • Enrollment? When a new host enrolls to Fleet, Fleet delivers a SCEP payload
  6. noahtalerman commented on Sep 10, 2024

    @noahtalerman
    MemberAuthor

    Proxy v. non-proxy. Looks like DigiCert can be configured as non-proxy (more here).

  7. self-assigned this
    on Sep 11, 2024
  8. added
    #g-apple-at-workProduct group focused on Apple devices
    P2Urgent: Supported workflow not functioning as intended, newly drafted feature with urgent Fleet need
    ~feature festWill be reviewed at next Feature Fest
    on Sep 11, 2024
  9. noahtalerman commented on Sep 12, 2024

    @noahtalerman
    MemberAuthor

    Hey @dherder, heads up, this didn't make the 3 week drafting timeline. I left it on the drafting board b/c we're going to continue working on it.

    @lukeheath I think we want to bring this one through expedited drafting so that we can start working on it in the next engineering sprint.

  10. added
    EpicDO NOT USE. Auto-created by ZenHub, cannot be disabled.
    and removed
    EpicDO NOT USE. Auto-created by ZenHub, cannot be disabled.
    on Sep 12, 2024
  11. 51 remaining items

  12. noahtalerman commented on Nov 13, 2024

    @noahtalerman
    MemberAuthor

    Hey @zayhanlon heads up this user story shipped in 4.59.

    Leaving the user story open until we update the permissions docs. (TODO for @noahtalerman)

  13. noahtalerman commented on Nov 15, 2024

    @noahtalerman
    MemberAuthor

    Permissions docs are updated: #23764

  14. fleet-release commented on Nov 15, 2024

    @fleet-release
    Contributor

    Fleet certificates shine,
    Network access aligns,
    Ease for IT, divine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

#g-apple-at-workProduct group focused on Apple devices#g-endpoint-opsEndpoint ops product group:productProduct Design department (shows up on 🦢📨🎉 Product design intake & outtake board)P2Urgent: Supported workflow not functioning as intended, newly drafted feature with urgent Fleet needcustomer-interkosmoscustomer-numacustomer-pingalicustomer-pingouinstoryA user story defining an entire feature~experimentalThis feature is experimental, breaking changes may be made.~pushedUser story was pushed to next release.

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions