Skip to content

Deploy & renew SCEP certificates - backend #22123

Closed

Description

@sharon-fdm

Implementation plan:

  • Configuration - username/password/urls
    • Credentials should be encrypted at rest in DB
    • Verify admin server when set
      • Catch the issue when NDES runs out of challenges (5 by default) -- we can parse the HTML to figure it out
    • Verify SCEP server -- issue CACerts
    • We should only verify the configuration when it changes, and not every time.
    • Obfuscated on retrieval.
    • Use best practice for clearing the setting.
    • Preprocess inputs
    • Update the errors to match Figma.
    • Delete password when clearing setting
  • Challenge variable (only SCEP). Start with $FV_SCEP_CHALLENGE, $FV_SCEP_PROXY_URL, and email.
    • Get challenge from NDES server
    • If challenge cannot be retrieved, put an error into the profile verify flow.
    • (NOOP -- this simply updates DB to be picked up by cron) Allow variable insertion when profile is resent -- it can be simply resent, or resent after error.
    • Get NDES password once per run
    • Tests
    • Add error message for FLEET_VAR_ for DDM and Windows
    • Add validation of unknown variables on profile upload
    • Manually test IDP email
  • Proxy -- pass through CACaps, CACerts, PKIOperation
    • Parse/retrieve profile from url path -- make sure it is present (for security)
    • [ ] Save cert expiration, and link it to SCEP profile. New table!!! This is done in nano_cert_auth_associations for MDM certs.
    • Catch error that OTP is wrong? (Need to test if we get any info for this.) If we can catch it, then push out a new profile with updated challenge. Otherwise keep track of the age of the challenge (new field? or when this profile was enqueued?). Push out a new profile when device requests a cert using an outdated challenge.
    • Tests
    • Log errors (differentiate Fleet vs SCEP server errors)
    • Clean up the new certificates table (cron job)
  • Global activity feed
    • Tests
  • Manual tests
    • 2 hosts with 10 profiles each
    • Setting up NDES without private key set up

Activity

  1. added
    :productProduct Design department (shows up on 🦢📨🎉 Product design intake & outtake board)
    on Sep 16, 2024
  2. added
    ~sub-taskA technical sub-task that is part of a story. (Not QA'd. Not estimated.)
    P2Urgent: Supported workflow not functioning as intended, newly drafted feature with urgent Fleet need
    and removed
    :productProduct Design department (shows up on 🦢📨🎉 Product design intake & outtake board)
    on Sep 16, 2024
  3. fleet-release commented on Oct 14, 2024

    @fleet-release
    Contributor

    Renewal of certificates,
    Secures device fleets in clouds,
    Data rests encrypted.

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

Metadata

Metadata

Assignees

Labels

#g-endpoint-opsEndpoint ops product groupP2Urgent: Supported workflow not functioning as intended, newly drafted feature with urgent Fleet need~sub-taskA technical sub-task that is part of a story. (Not QA'd. Not estimated.)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions