使用 cURL 进行 API 驱动的入站预配快速入门
简介
cURL 是 API 开发人员常用的免费开源命令行工具,默认在 Windows 10/11 上提供。 本教程介绍如何使用 cURL 快速测试 API 驱动的入站预配。
先决条件
- 已配置 API 驱动的入站预配应用。
- 已配置服务主体,并且服务主体有权访问入站预配 API。 记下服务主题应用的
ClientId
和ClientSecret
,以便在本教程中使用。
将用户数据上传到入站预配 API
- 检索有权访问入站预配 API 的服务主体的 client_id 和 client_secret。
- 使用 OAuth client_credentials 授予流获取访问令牌。 将变量
[yourClientId]
、[yourClientSecret]
和[yourTenantId]
替换为适用于设置的值,然后运行以下 cURL 命令。 复制生成的访问令牌值curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=[yourClientId]&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=[yourClientSecret]&grant_type=client_credentials" "https://login.microsoftonline.com/[yourTenantId]/oauth2/v2.0/token"
- 复制使用 SCIM 企业用户架构的批量请求,并将内容保存在名为
scim-bulk-upload-users.json
的文件中。 - 将变量
[InboundProvisioningAPIEndpoint]
替换为与预配应用关联的预配 API 终结点。 使用上一步中的[AccessToken]
值并运行以下 curl 命令,将批量请求上传到预配 API 终结点。curl -v "[InboundProvisioningAPIEndpoint]" -d @scim-bulk-upload-users.json -H "Authorization: Bearer [AccessToken]" -H "Content-Type: application/scim+json"
- 成功上传后,你将收到 HTTP 202 已接受响应代码。
- 预配服务会立即开始处理批量请求有效负载,你可以通过访问入站预配应用的预配日志来查看预配详细信息。
确认批量请求有效负载的处理情况
至少以应用程序管理员的身份登录到 Microsoft Entra 管理中心。
浏览到“Microsoft Entra ID”->“应用程序”->“企业应用程序”。
在所有应用程序下,使用搜索筛选器文本框查找并打开 API 驱动的预配应用程序。
打开“预配”边栏选项卡。 登陆页面会显示上次运行的状态。
单击“查看预配日志”打开预配日志边栏选项卡。 或者,可以单击菜单选项“监视”->“预配日志”。
单击预配日志中的任何记录以查看更多处理详细信息。
预配日志详细信息屏幕显示为特定用户执行的所有步骤。
- 在“从 API 导入”步骤下,查看从批量请求中提取的用户数据的详细信息。
- “匹配用户”步骤显示基于匹配标识符的任何用户匹配的详细信息。 如果有用户匹配,则预配服务将执行更新操作。 如果没有用户匹配,则预配服务将执行创建操作。
- “确定用户是否在范围内”步骤显示范围筛选器评估的详细信息。 默认情况下,将处理所有用户。 如果已设置范围筛选器(例如,仅处理属于销售部门的用户),则此步骤将显示范围筛选器的评估详细信息。
- “预配用户”步骤会调用最终处理步骤和应用于用户帐户的更改。
- 使用“修改的属性”选项卡可以查看属性更新。
附录
查看此部分,了解有关 SCIM 企业用户架构批量请求的信息。
使用 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
}