我已通过对 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"不存在,或者它查询的引用属性对象之一不存在。
到目前为止,我所做的是:
- 在 Azure AD 门户上,我添加了一个 MDM
OnPremise
应用,设置其使用条款 URL、发现 URL,生成机密。还将 MDM 用户范围配置为Some
,并选择了我的用户所属的group
。 - 在"必需的迫害"上,我验证了"应用程序权限"下的"读取和写入设备"已选中。
- 用户进行身份验证(使用 Azure AD crendentials),接受(MDM)使用条款,瞧,一切都很好。这是在设备上的"设置"=>"帐户"=>"访问工作或学校=> + 连接"下完成的。
- 在注册期间,我会分析
Bearer Token
并提取设备 ID(例如xyz),该 ID 与成功管理设备后 Azure AD 门户上的设备 ID 相同。 - 要报告合规性状态,我做了这样的补丁
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}'