zoukankan      html  css  js  c++  java
  • 【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

    当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

  • 相关阅读:
    oracle的over函数应用(转载)
    Oracle decode()函数应用
    EL表达式显示数据取整问题
    null值与空值比较
    case when语句的应用
    堆排序
    希尔排序
    插入排序
    异或运算
    选择排序
  • 原文地址:https://www.cnblogs.com/lulight/p/14359536.html
Copyright © 2011-2022 走看看