使用 Graph Explorer 进行 API 驱动的入站预配快速入门

本教程介绍如何使用 Microsoft Graph Explorer 快速测试 API 驱动的入站预配

先决条件

注意

此预配 API 主要在应用程序或服务内使用。 租户管理员可以配置服务主体或托管标识,以授予执行上传的权限。 此 API 没有单独的用户可分配的 Microsoft Entra 内置目录角色。 在获得了 SynchronizationData-User.Upload 权限和管理员同意的应用程序之外,只有具有全局管理员角色的管理员用户才能调用 API。 本教程介绍如何在测试设置中使用全局管理员角色测试 API。

将用户数据上传到入站预配 API

  1. 打开新的浏览器选项卡或浏览器窗口。

  2. 启动 URL https://aka.ms/ge 以访问 Microsoft Graph Explorer。

  3. 单击用户配置文件图标以登录。

    显示用户配置文件图标的图像。

  4. 使用具有全局管理员角色的用户帐户完成登录过程。

  5. 成功登录后,租户信息会显示租户名称。

    租户名称的屏幕截图。

    现在可以调用 API 了。

  6. 在 API 请求面板中,将 HTTP 请求类型设置为 POST

  7. 复制并粘贴从预配应用概述页检索到的预配 API 终结点。

  8. 在“请求头”面板下,添加新的键值对 Content-Type = application/scim+json请求头面板的屏幕截图。

  9. 在“请求正文”面板下,复制粘贴使用 SCIM 企业用户架构的批量请求

  10. 单击“运行查询”按钮,将请求发送到预配 API 终结点。

  11. 如果请求成功发送,你将从 API 终结点获取 Accepted 202 响应。

  12. 打开“响应头”面板并复制位置属性的 URL 值。 这指向预配日志 API 终结点,可以查询该终结点以检查批量请求中存在的用户的预配状态。

验证批量请求有效负载的处理

请求正文

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701984",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "89607",
                     "displayName": "John Smith"
                 }
            }
        }
    },
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701985",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "701984",
                     "displayName": "Barbara Jensen"
                 }
            }
        }
    }
],
    "failOnErrors": null
}
可以从 Microsoft Entra 管理中心或使用 Graph Explorer 验证处理。

从 Microsoft Entra 管理中心验证处理

  1. 至少使用应用程序管理员登录凭据登录到 Microsoft Entra 管理中心

  2. 浏览到“Microsoft Entra ID”->“应用程序”->“企业应用程序”。

  3. 在所有应用程序下,使用搜索筛选器文本框查找并打开 API 驱动的预配应用程序。

  4. 打开“预配”边栏选项卡。 登陆页面会显示上次运行的状态。

  5. 单击“查看预配日志”打开预配日志边栏选项卡。 或者,可以单击菜单选项“监视”->“预配日志”。

    菜单中预配日志的屏幕截图。

  6. 单击预配日志中的任何记录以查看其他处理详细信息。

  7. 预配日志详细信息屏幕显示为特定用户执行的所有步骤。

    • 在“从 API 导入”步骤下,查看从批量请求中提取的用户数据的详细信息。
    • “匹配用户”步骤显示基于匹配标识符的任何用户匹配的详细信息。 如果有用户匹配,则预配服务将执行更新操作。 如果没有用户匹配,则预配服务将执行创建操作。
    • “确定用户是否在范围内”步骤显示范围筛选器评估的详细信息。 默认情况下,将处理所有用户。 如果已设置范围筛选器(例如,仅处理属于销售部门的用户),则此步骤将显示范围筛选器的评估详细信息。
    • “预配用户”步骤会调用最终处理步骤和应用于用户帐户的更改。
    • 使用“修改的属性”选项卡可以查看属性更新。

在 Graph Explorer 中使用预配日志 API 验证处理

可以使用作为预配 API 调用中的位置响应头的一部分返回的预配日志 API URL 来检查处理。

  1. 在 Graph Explorer 中,“请求 URL”文本框会复制粘贴预配 API 终结点返回的位置 URL,你也可以使用该格式对其进行构造:https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid eq '<jobId>',其中的 jobId 可在预配应用概述页中检索。
  2. 使用方法 GET 并单击“运行查询”来检索预配日志。 默认情况下,返回的响应包含所有日志记录。
  3. 可以将更多筛选器设置为仅在特定时间范围后检索数据,或检索具有特定状态值的数据。 https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid eq '<jobId> and statusInfo/status eq 'failure' and activityDateTime ge 2022-10-10T09:47:34Z 还可以按源系统中使用的 externalId 值来检查用户的状态,该值用作源定位点/联接属性。 https://graph.microsoft.com/beta/auditLogs/provisioning/?$filter=jobid eq '<jobId>' and sourceIdentity/id eq '701984'

附录

使用 SCIM 企业用户架构的批量请求

下面显示的批量请求使用 SCIM 标准核心用户和企业用户架构。

请求正文

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701984",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "89607",
                     "displayName": "John Smith"
                 }
            }
        }
    },
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701985",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "701984",
                     "displayName": "Barbara Jensen"
                 }
            }
        }
    }
],
    "failOnErrors": null
}

后续步骤