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 管理,这就是问题发生的地方。
我得到的错误是资源'xyz'不存在或其查询的引用之一-属性对象不存在.
到目前为止我所做的是:
- 在 Azure AD 门户上,我添加了一个 MDM
OnPremise
应用程序,设置其使用条款 URL,发现 URL,生成一个秘密。还将 MDM 用户范围配置为 Some
并选择了我的用户所属的 group
。
- 在 Required persision 上,我验证了 "Application Permissions" 下的 "Read and write devices" 已被选中。
- 用户进行身份验证(使用 Azure AD 凭据),接受(MDM 的)使用条款,一切正常。这是在设置 => 帐户 => 访问工作或学校 => + 连接下的设备上完成的。
- 在注册过程中,我解析了
Bearer Token
并提取了设备ID(例如xyz),这与Azure AD门户上的相同一次设备管理成功。
- 为了报告合规状态,我做了一个像这样的补丁
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 => System => About.
或者在注册期间出现在请求安全令牌请求的元素 ContextItem 属性 DeviceID 上的那个。
我在上面 patch
中使用的 bearer token
是在已注册的 MDM 应用程序(使用其凭据,如 appid、秘密等)向 Azure AD 进行自我身份验证时从 Microsoft Graph 中检索的。
你能帮我找到这个错误的根源,或者给我一些提示来解决这个问题。非常感谢。
提前致谢。
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}'
我已通过对 Azure AD 用户进行身份验证,成功将设备(Windows 10 Pro 版本 1803)注册到我们自己的 MDM。接下来我必须告诉 Azure AD 该设备由我们的 MDM 管理,这就是问题发生的地方。
我得到的错误是资源'xyz'不存在或其查询的引用之一-属性对象不存在.
到目前为止我所做的是:
- 在 Azure AD 门户上,我添加了一个 MDM
OnPremise
应用程序,设置其使用条款 URL,发现 URL,生成一个秘密。还将 MDM 用户范围配置为Some
并选择了我的用户所属的group
。 - 在 Required persision 上,我验证了 "Application Permissions" 下的 "Read and write devices" 已被选中。
- 用户进行身份验证(使用 Azure AD 凭据),接受(MDM 的)使用条款,一切正常。这是在设置 => 帐户 => 访问工作或学校 => + 连接下的设备上完成的。
- 在注册过程中,我解析了
Bearer Token
并提取了设备ID(例如xyz),这与Azure AD门户上的相同一次设备管理成功。 - 为了报告合规状态,我做了一个像这样的补丁
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 => System => About.
或者在注册期间出现在请求安全令牌请求的元素 ContextItem 属性 DeviceID 上的那个。
我在上面
patch
中使用的bearer token
是在已注册的 MDM 应用程序(使用其凭据,如 appid、秘密等)向 Azure AD 进行自我身份验证时从 Microsoft Graph 中检索的。
你能帮我找到这个错误的根源,或者给我一些提示来解决这个问题。非常感谢。
提前致谢。
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}'