【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 User:Create 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 extensionProperty:Create 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 Create:JSON 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
【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)的更多相关文章
- AAD Service Principal获取azure user list (Microsoft Graph API)
本段代码是个通用性很强的sample code,不仅能够操作AAD本身,也能通过Azure Service Principal的授权来访问和控制Azure的订阅资源.(Azure某种程度上能看成是两个 ...
- 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法
问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...
- Microsoft Graph API -----起题 Graph API
最近因为工作需要,接触学习使用了Microsoft Graph API.在看完Microsoft的Graph官方文档之后,也做了一些简单的案例,在Stack Overflow上做过一些回答.整体来说, ...
- 【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID
问题描述 在Azure开发中,我们时常面临获取Authorization问题,需要使用代码获取到Access Token后,在调用对应的API,如servicePrincipals接口. 如果是直接调 ...
- 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”
问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...
- Microsoft Dynamics CRM 2011 批量添加域用户 然后添加CRM用户
一.先了解下 DSADD user命令详解 常见的批量创建用户的方法有四种: 一. 帐户模板的方式 二. CSVDE和LDIFDE 三. 脚本的方式 四. DSADD 但是很少有详细的资料使用DSAD ...
- 【转】dsadd user批量创建AD用户命令详解
常见的批量创建用户的方法有四种: 一. 帐户模板的方式 二. CSVDE和LDIFDE 三. 脚本的方式 四. DSADD 但是很少有详细的资料使用DSADD的方式来批量创建帐户,那么我就把我近期使用 ...
- Azure DevOps Server: 使用Rest Api获取拉取请求Pull Request中的变更文件清单
需求: Azure DevOps Server 的拉取请求模块,为开发团队提供了强大而且灵活的代码评审功能.拉取请求中变更文件清单,对质量管理人员,是一个宝贵的材料.质量保障人员可以从代码清单中分析不 ...
- AD中批量创建域用户
EXCEL表中的各列说明情况: A列:姓 B列:名 C列:姓名 D列:账号 E列:密码 此表格另存为person .csv 的格式到AD的C盘目录下,用记事本打开如下图所示: 打开CMD,右键以管理员 ...
随机推荐
- jQuery学习笔记(1) 初识jQuery
目录 目录 引用 注意 HelloWorldHelloWorld! jQueryjQuery对象和DOMDOM对象的相互转换 冲突的解决 引用 本地文件引用: <script src=" ...
- JPEG解码——(6)IDCT逆离散余弦变换
本篇是该系列的第六篇,承接上篇IZigZag变换,介绍接下来的一个步骤--逆离散余弦变换,即逆零偏置前的一个步骤. 该步骤比较偏理论,其业务是对IZigZag变换后的数据,再进一步的处理,使其恢复DC ...
- .NET团队送给.NET开发人员的云原生学习资源
企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性.要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方法.这意味着不仅要更改应用程序的构 ...
- 【linux】系统编程-4-共享内存
目录 前言 6. 共享内存 6.1 概念 6.2 操作函数 6.2.1 shmget() 6.2.2 shmat() 6.2.3 shmdt() 6.2.4 shmctl() 6.3 例子 参考: 前 ...
- Trie、并查集、堆、Hash表学习过程以及遇到的问题
Trie.并查集.堆.Hash表: Trie 快速存储和查找字符串集合 字符类型统一,将单词在最后一个字母结束的位置上打上标记 练习题:Trie字符串统计 import java.util.*; pu ...
- [^ ] 跟 [! ] 差在哪?-- Shell十三问<第十四问>
[^ ] 跟 [! ] 差在哪?-- Shell十三问<第十四问> 这道题目说穿了, 就是要探讨 Wildcard(通配符)与 Regular Expression(正则表达式)的差别的. ...
- Python数据分析入门(十七):绘制条形图
条形图的绘制方式跟折线图非常的类似,只不过是换成了plt.bar方法.plt.bar方法有以下常用参数: x:一个数组或者列表,代表需要绘制的条形图的x轴的坐标点. height:一个数组或者列表,代 ...
- Java基础 - List的两个子类的特点
List两个子类的特点 List的两个子类的特点 因为两个类都实现了List接口,所以里面的方法都差不多,那这两个类都有什么特点呢? ArrayList: 底层数据结构是数组,查询快,增删慢. Lin ...
- 后端Spring Boot+前端Android交互+MySQL增删查改
2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...
- .ts 视频文件 .m3u8视频文件合并 转换为mp4
1. 先把 .m3u8.zip 格式文件解压到文件夹D:\a. 2. 将文件夹内的 .ts文件名处理好. 一般均为按顺序排列. (殊情况需要根据.m3u8文件记录处理.) 举例,根据实际情况处理. ( ...