MDM(非 Intune)无法向当前托管的设备报告符合性状态(向 Azure AD)



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

我所做的patch与文档 https://learn.microsoft.com/en-us/windows/client-management/mdm/azure-active-directory-integration-with-mdm#report-device-compliance-to-azure-ad 相同

我得到的错误是资源"xyz"不存在,或者它查询的引用属性对象之一不存在

到目前为止,我所做的是:

  1. 在 Azure AD 门户上,我添加了一个 MDMOnPremise应用,设置其使用条款 URL、发现 URL,生成机密。还将 MDM 用户范围配置为Some,并选择了我的用户所属的group
  2. 在"必需的迫害"上,我验证了"应用程序权限"下的"读取和写入设备"已选中。
  3. 用户进行身份验证(使用 Azure AD crendentials),接受(MDM)使用条款,瞧,一切都很好。这是在设备上的"设置"=>"帐户"=>"访问工作或学校=> + 连接"下完成的。
  4. 在注册期间,我会分析Bearer Token并提取设备 ID(例如xyz),该 ID 与成功管理设备后 Azure AD 门户上的设备 ID 相同。
  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,例如

  • Windows 10 在 Settigns 上显示的那个 =>系统 => 关于。

  • 或者在注册期间请求安全令牌请求上的元素 ContextItem 属性 DeviceID 上存在的那个。

    我在上述patch上使用的bearer token是在注册的 MDM 应用(使用其凭据,如 appid、机密等)向 Azure AD 自行进行身份验证时从 Microsoft graph 中检索的。

谁,请帮我找到此错误的来源,或者给我一些提示来解决这个问题。我会非常感激它。

提前谢谢。

Azure AD 中设备对象的deviceId经常与对象的objectId属性混淆。(后者在 Azure AD 图中称为objectId,在Microsoft图中称为id。在这两种情况下,deviceId都是不同的属性。

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

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

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

如果还没有设备对象的objectId值,但deviceId,则可以使用 Azure AD 图或Microsoft图执行相应的查找。使用 Azure AD Graph:

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}'

最新更新