MDM(非 Intune)无法报告当前正在管理的设备的合规性状态(向 Azure AD)

MDM (not Intune) cannot report compliance status (to Azure AD) of a device currenctly being managed

我已通过对 Azure AD 用户进行身份验证,成功将设备(Windows 10 Pro 版本 1803)注册到我们自己的 MDM。接下来我必须告诉 Azure AD 该设备由我们的 MDM 管理,这就是问题发生的地方。

我做的patch和文档里的一样https://docs.microsoft.com/en-us/windows/client-management/mdm/azure-active-directory-integration-with-mdm#report-device-compliance-to-azure-ad

我得到的错误是资源'xyz'不存在或其查询的引用之一-属性对象不存在.

到目前为止我所做的是:

  1. 在 Azure AD 门户上,我添加了一个 MDM OnPremise 应用程序,设置其使用条款 URL,发现 URL,生成一个秘密。还将 MDM 用户范围配置为 Some 并选择了我的用户所属的 group
  2. 在 Required persision 上,我验证了 "Application Permissions" 下的 "Read and write devices" 已被选中。
  3. 用户进行身份验证(使用 Azure AD 凭据),接受(MDM 的)使用条款,一切正常。这是在设置 => 帐户 => 访问工作或学校 => + 连接下的设备上完成的。
  4. 在注册过程中,我解析了Bearer Token并提取了设备ID(例如xyz),这与Azure AD门户上的相同一次设备管理成功。
  5. 为了报告合规状态,我做了一个像这样的补丁

PATCH https://graph.windows.net/mytenant.onmicrosoft.com/devices/xyz?api-version=1.0 HTTP/1.1 Authorization: Bearer eyJ0eXAiO……… Accept: application/json Content-Type: application/json { "isManaged":true, "isCompliant":true }

但是我遇到了上述错误。

我也测试了不同的设备 ID,例如

你能帮我找到这个错误的根源,或者给我一些提示来解决这个问题。非常感谢。

提前致谢。

Azure AD 中 Device 对象的 deviceId 经常与对象的 objectId 属性相混淆。 (后者在 Azure AD Graph 中称为 objectId,在 Microsoft Graph 中称为 id。在这两种情况下,deviceId 不同的 属性.)

在使用 Azure AD Graph 的单个设备对象的 GET 请求中:

GET https://graph.windows.net/{tenant-id}/devices/{object-id}

{object-id}标识的字段不是设备对象的deviceId属性,它是objectId属性。

如果您还没有 Device 对象的 objectId 值,但您 deviceId,您可以使用 Azure AD Graph或 Microsoft Graph 进行适当的查找。使用 Azure AD 图表:

GET https://graph.windows.net/{tenant-id}/devices?$filter=deviceId eq '{device-id}'

对于 Microsoft Graph,您将使用:

GET https://graph.microsoft.com/v1.0/devices?$filter=deviceId eq '{device-id}'