如何查询包含连字符的用户Azure AD属性?

时间:2019-10-21 11:41:03

标签: azure azure-active-directory microsoft-graph

名称包含连字符的用户具有Azure AD属性。例如,msDS-cloudExtensionAttribute1msDS-principalName。但是,如果我尝试在$select$filter中从Microsoft Graph查询这些内容,则会收到错误消息:

https://graph.microsoft.com/v1.0/users/?$select=id,msDS-principalName

{
    "error": {
        "code": "BadRequest",
        "message": "Parsing Select and Expand failed.",
        "innerError": {
            "request-id": "...",
            "date": "..."
        }
    }
}

https://graph.microsoft.com/v1.0/users/?$filter=msDS-principalName eq 'abc'

{
    "error": {
        "code": "BadRequest",
        "message": "Invalid filter clause",
        "innerError": {
            "request-id": "...",
            "date": "..."
        }
    }
}

我找不到有关转义连字符或以其他方式成功查询此类属性的任何文档。

不起作用的东西:

  1. 转义为%2D
  2. 使用反斜杠转义
  3. 省略连字符

1 个答案:

答案 0 :(得分:1)

msDS-cloudExtensionAttribute1是本地AD中的一个属性,如果要在Azure AD中获得具有此属性的用户,则需要使用Azure AD Connect来同步 将msDS-cloudExtensionAttribute1的属性extension_3e2cd06ca3494546888b069a891b4bb6_msDS_cloudExtensionAttribute1设置为Azure AD。在Azure AD中,连字符在扩展名属性名称中无效,它应与正则表达式[a-zA-Z_][0-9a-zA-Z_]*相匹配。

enter image description here

enter image description here

有关同步的更多详细信息,请参阅此link。同步后,您可以使用Microsoft Graph获取具有扩展名属性的用户,如下所示。

GET https://graph.microsoft.com/v1.0/users/<object-id>?$select=extension_3e2cd06ca3494546888b069a891b4bb6_msDS_cloudExtensionAttribute1

enter image description here

GET https://graph.microsoft.com/v1.0/users?$select=extension_3e2cd06ca3494546888b069a891b4bb6_msDS_cloudExtensionAttribute1