diff --git a/server/fleet/microsoft_mdm.go b/server/fleet/microsoft_mdm.go index 1ad124cf42..0e771084d9 100644 --- a/server/fleet/microsoft_mdm.go +++ b/server/fleet/microsoft_mdm.go @@ -147,9 +147,16 @@ func (req *SoapRequest) IsValidDiscoveryMsg() error { return errors.New("invalid discover message: XMLNS") } - // Ensure that only valid versions are supported - if req.Body.Discover.Request.RequestVersion != syncml.EnrollmentVersionV4 && - req.Body.Discover.Request.RequestVersion != syncml.EnrollmentVersionV5 { + // Check if the request version is one of the defined enrollment versions + versionFound := false + for _, v := range syncml.SupportedEnrollmentVersions { + if req.Body.Discover.Request.RequestVersion == v { + versionFound = true + break + } + } + + if !versionFound { return errors.New("invalid discover message: Request.RequestVersion") } diff --git a/server/mdm/microsoft/syncml/syncml.go b/server/mdm/microsoft/syncml/syncml.go index 4643c1f357..fe0211fb50 100644 --- a/server/mdm/microsoft/syncml/syncml.go +++ b/server/mdm/microsoft/syncml/syncml.go @@ -173,14 +173,14 @@ const ( FleetOSUpdateTargetLocURI = "/Vendor/MSFT/Policy/Config/Update" ) +// Supported MS-MDE2 enrollment versions +var SupportedEnrollmentVersions = []string{"4.0", "5.0", "6.0"} + // MS-MDE2 Message constants const ( - // Minimum supported version + // Default MS-MDE2 enrollment protocol version EnrollmentVersionV4 = "4.0" - // Maximum supported version - EnrollmentVersionV5 = "5.0" - // xsi:nil indicates value is not present DefaultStateXSI = "true"