【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)

简介: 【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)

Microsoft Graph 是 Microsoft 365 中通往数据和智能的网关。 它提供统一的可编程模型,可用于访问 Microsoft 365、Windows 10 和企业移动性 + 安全性中的海量数据。 利用 Microsoft Graph 中的大量数据针对与数百万名用户交互的组织和客户构建应用。

Microsoft Graph 公开了 REST API,包含了Azure上的所有资源操作。关于它目前能操作的资源可以参考官方说明:https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0

 

注:在中国区Microsoft Graph的终结点(Endpoint): https://microsoftgraph.chinacloudapi.cn/v1.0

 

问题描述

使用Microsoft Graph API 如何批量创建用户,用户属性中需要含有非AAD默认的Parameter(如Store_code, Store_name等)

解决办法

根据Graph API的文档说明,可以使用以下几个API组合完成以上需求:

  • Create UserCreate a new user. The request body contains the user to create. At a minimum, you must specify the required properties for the user. You can optionally specify any other writable properties.
  • Create extensionPropertyCreate a new extensionProperty definition. You can use this operation to add a custom property value to the targeted object type defined in the extensionProperty, using standard creation and update requests to the target object.
  • Batch CreateJSON batching allows you to optimize your application by combining multiple requests into a single JSON object.

 

测试示例

1) 为当前AAD添加扩展属性

POST https://microsoftgraph.chinacloudapi.cn/v1.0/applications/<objectID>/extensionProperties 
Body Content:
{
    "name": "store_code",
    "dataType": "String",
    "targetObjects": [
        "User"
    ]
}

调用成功后,返回的Responce如下:

Response body:
{
    "@odata.context": "https://microsoftgraph.chinacloudapi.cn/v1.0/$metadata#applications('31d886ad-b40b-4599-a708-3bf45948396b')/extensionProperties/$entity",
    "id": "7d79ae82-6955-4e7f-b6a8-095c749a2cb8",
    "deletedDateTime": null,
    "appDisplayName": "test",
    "dataType": "String",
    "isSyncedFromOnPremises": false,
    "name": "extension_c21xxxc9_store_code", "targetObjects": [ "User" ] }

 

2)调用创建User API

POST https://microsoftgraph.chinacloudapi.cn/v1.0/users 
Body Content
{
  "accountEnabled": true,
  "displayName": "test",
  "mailNickname": "User",
  "userPrincipalName": "test@MicrosoftInternal.partner.onmschina.cn",
  "mobilePhone":"12345678909",
  "surname":"MB",
  "givenName":"1LTY2",
  "jobTitle":"test",
  "country":"china",
  "postalCode":"178",
  "department":"CN",
  "officeLocation":"ccc","passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "xWwvJ]6NMw+bWH-d"
  },
"extension_c21xxxc9_store_code":"11111"
"extension_c21xxxc9_store_name":"Test Store" }

 

3)批量创建用户

POST https://microsoftgraph.chinacloudapi.cn/v1.0/$batch

Body Content:

{
    "requests": [
        {
            "id": "1",
            "method": "POST",
            "url": "/users",
            "body": {
                "accountEnabled": true,
                "displayName": "test",
                "mailNickname": "User",
                "userPrincipalName": "test@MicrosoftInternal.partner.onmschina.cn",
                "mobilePhone": "12345678909",
                "surname": "MB",
                "givenName": "1LTY2",
                "jobTitle": "test",
                "country": "china",
                "postalCode": "178",
                "department": "CN",
                "officeLocation": "ccc",
                "passwordProfile": {
                    "forceChangePasswordNextSignIn": true,
                    "password": "xWwvJ]6NMw+bWH-d"
                },
                "extension_c21xxxc9_store_code": "11111",
                "extension_c21xxxc9_store_name": "Test Store"
            },
            "headers": {
                "Content-Type": "application/json"
            }
        },
        {
            "id": "2",
            "method": "POST",
            "url": "/users",
            "body": {
                "accountEnabled": true,
                "displayName": "test",
                "mailNickname": "User 2",
                "userPrincipalName": "test1@MicrosoftInternal.partner.onmschina.cn",
                "mobilePhone": "12345678909",
                "surname": "MB",
                "givenName": "1LTY2",
                "jobTitle": "test",
                "country": "china",
                "postalCode": "178",
                "department": "CN",
                "officeLocation": "ccc",
                "passwordProfile": {
                    "forceChangePasswordNextSignIn": true,
                    "password": "xWwvJ]6NMw+bWH-d"
                },
                "extension_c21xxxc9_store_code": "22222",
                "extension_c21xxxc9_store_name": "Test Store 2"
            },
            "headers": {
                "Content-Type": "application/json"
            }
        }
    ]
}

 

参考资料

Microsoft Graph 概述:https://docs.microsoft.com/zh-cn/graph/overview?view=graph-rest-1.0

Create User:https://docs.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=http

Create extensionProperty:https://docs.microsoft.com/en-us/graph/api/application-post-extensionproperty?view=graph-rest-1.0&tabs=http

Combine multiple requests in one HTTP call using JSON batching: https://docs.microsoft.com/en-us/graph/json-batching?context=graph%2Fapi%2F1.0&view=graph-rest-1.0

相关文章
|
1月前
|
安全 数据挖掘 API
解锁数据宝藏:Microsoft Graph API的统一数据革命
解锁数据宝藏:Microsoft Graph API的统一数据革命
30 0
|
3月前
|
数据采集 API 开发工具
淘系商品详情数据解析(属性youhui券sku详情图等)API接口开发系列
在电商领域,特别是像淘宝(淘系)这样的平台,商品详情数据对于商家、开发者以及数据分析师来说至关重要。这些数据包括但不限于商品属性、优惠券信息、SKU(Stock Keeping Unit)详情、商品图片、售后保障等。然而,直接访问淘宝的内部API接口通常需要特定的权限和认证,这通常只对淘宝的合作伙伴或内部开发者开放。 不过,对于需要这些数据的第三方开发者或商家,有几种方式可以间接获取或解析淘系商品详情数据: ——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
3月前
|
安全 API 网络安全
【Azure API 管理】APIM不能连接到 App Service (APIM cannot connect to APP service)
【Azure API 管理】APIM不能连接到 App Service (APIM cannot connect to APP service)
|
3月前
|
API 开发工具 网络架构
【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码
【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码
|
3月前
|
存储 Kubernetes API
【APIM】Azure API Management Self-Host Gateway是否可以把请求的日志发送到Application Insights呢?让它和使用Azure上托管的 Gateway一样呢?
【APIM】Azure API Management Self-Host Gateway是否可以把请求的日志发送到Application Insights呢?让它和使用Azure上托管的 Gateway一样呢?
|
3月前
|
API 网络架构 C++
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
|
3月前
|
API 网络架构
【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
【Azure Developer】使用 Microsoft Graph API查看用户状态和登录记录
|
10天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
22天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
23天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
下一篇
无影云桌面