【Azure Developer】如何用Microsoft Graph API管理AAD Application里面的Permissions
问题描述
如何用Microsoft Graph API给应用添加Microsoft Graph Application Permission
解决方法
一:首先获取Microsoft Graph Application Permission对应的唯一标识GUID
- 00000003-0000-0000-c000-000000000000是Microsoft Graph API对应的AppId。
- 以Directory.Read.All权限为例,在appRoles中查找权限Directory.Read.All的这项,其中id则是Directory.Read.All的唯一标识。
二:调用Microsoft Graph Update Application接口更新requiredResourceAccess参数
{ "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e1fe6dd8-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "Scope" },{ "id": "7ab1d382-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "Role" } ] } ] } |
注:给应用添加Microsoft Graph Delegated Permission,需要在第一步中查找oauth2PermissionScopes中对应的权限Directory.Read.All并且找到对应的id,把第二步中的标黄的type的值修改为Scope,并且把id的值替换掉。
三:如果在第一步获取的权限需要管理员同意,则需要管理员在门户中授予同意,可以通过第一步中获取的权限中的type来区分,如果type是Admin则代表需要管理员同意。
参考内容
- 给应用添加APIs My organization uses的权限,在第一步执行查询唯一标识时需要根据该应用id来查询,参考如下,查找的结果中oauth2PermissionScopes里的权限对应Scope( Delegated Permission),appRoles里的权限对应Role(Application Permission)
https://microsoftgraph.chinacloudapi.cn/v1.0/servicePrincipals?$search="appId:yourclientid"
Update Application:https://docs.microsoft.com/zh-cn/graph/api/application-update?view=graph-rest-1.0&tabs=http
List servicePrincipals:https://docs.microsoft.com/zh-cn/graph/api/serviceprincipal-list?view=graph-rest-1.0&tabs=http
requiredResourceAccess:https://docs.microsoft.com/zh-cn/graph/api/resources/requiredresourceaccess?view=graph-rest-1.0
- 对于Azure Service Management API和Microsoft Graph API的App Id都是可以从List servicePrincipals中查找到的,建议从接口中查找,以免发生变更时影响使用。比如:
https://microsoftgraph.chinacloudapi.cn/v1.0/servicePrincipals?$search="displayName:Microsoft Graph"&$count=true
https://microsoftgraph.chinacloudapi.cn/v1.0/servicePrincipals?$search="displayName:Azure Service Management"&$count=true
- user_impersonation的id首先通过上述接口获取到的结果中找到Azure Service Management,也可以在这里找到它对应的user_impersonation的id。
List servicePrincipals:https://docs.microsoft.com/zh-cn/graph/api/serviceprincipal-list?view=graph-rest-1.0&tabs=http
【Azure Developer】如何用Microsoft Graph API管理AAD Application里面的Permissions的更多相关文章
- 【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例
问题描述 查看官方文档" Get a user " , 产生了一个操作示例的想法,在中国区Azure环境中,演示如何获取AAD User信息. 问题解答 使用Microsoft G ...
- 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法
问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...
- 【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)
Microsoft Graph 是 Microsoft 365 中通往数据和智能的网关. 它提供统一的可编程模型,可用于访问 Microsoft 365.Windows 10 和企业移动性 + 安全性 ...
- 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”
问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...
- AAD Service Principal获取azure user list (Microsoft Graph API)
本段代码是个通用性很强的sample code,不仅能够操作AAD本身,也能通过Azure Service Principal的授权来访问和控制Azure的订阅资源.(Azure某种程度上能看成是两个 ...
- Microsoft Graph API -----起题 Graph API
最近因为工作需要,接触学习使用了Microsoft Graph API.在看完Microsoft的Graph官方文档之后,也做了一些简单的案例,在Stack Overflow上做过一些回答.整体来说, ...
- 【Azure Developer】使用 Microsoft Authentication Libraries (MSAL) 如何来获取Token呢 (通过用户名和密码方式获取Access Token)
问题描述 在上一篇博文<[Azure Developer]使用 adal4j(Azure Active Directory authentication library for Java)如何来 ...
- 【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID
问题描述 在Azure开发中,我们时常面临获取Authorization问题,需要使用代码获取到Access Token后,在调用对应的API,如servicePrincipals接口. 如果是直接调 ...
- 【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
问题描述 通过PowerShell 连接到Microsoft Graph 中国区Azure,一直出现AADSTS700016错误, 消息显示 the specific application was ...
- 新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD Application Key
新版Azure Automation Account 浅析(三) --- 用Runbook管理AAD应用的Key 前篇讲过有一个面向公众的Runbook库,社区和微软一直往其中加入新的Runbook, ...
随机推荐
- 定位解析一个因脚本劫持导致webpack动态加载异常的问题
问题描述 项目现场的前端项目在点击顶部的导航栏切换不同的模块时,会有小概率出现模块加载报错的情况: 我们的前端项目里是有基于react-loadable做的懒加载的,上图的12.be789340.ch ...
- js中的宏任务和微任务详细讲解
微任务有哪些 Promise await和async 宏任务有哪些 setTimeout setInterval DOM事件 AJAX请求 看下面的代码 <script> console. ...
- elementui-自定表头和在input中遇见的问题
第一个问题:无法关闭 弹出框 <el-table :data="tableData" style="width: 100%"> <el-tab ...
- js加减乘除运算出现精度丢失
做乘法运算出现精度丢失 let aa= 2106.49 console.log( aa*10000 ) //21064899.999999996 console.log( Math.round(aa* ...
- scss常用语法
在线编译 https://wow.techbrood.com/fiddle/11143 群组选择器的嵌套[编译前] .container { h1, h2, h3 {margin-bottom: .8 ...
- Govulncheck v1.0.0 发布了!
原文在这里 原文作者:Julie Qiu, for the Go security team 发布于 13 July 2023 我们很高兴地宣布,govulncheck v1.0.0 已经发布,同时还 ...
- vim 从嫌弃到依赖(3)——vim 普通模式
在上一篇中,我们提到vim的几种模式,并且给出了一些基本的操作命令,包括移动光标,删除.替换操作.并且给出了几个重要的公式,理解这个公式对于理解vim和提高使用vim的效率来说至关重要.所以在这篇文章 ...
- 菜鸟教程-所有软件教学都有【python、java、c、c++、html、sql、css、jquery、bootstrap、vue、c#、go】
软件教学[python.java.c.c++.html.sql.css.jquery.bootstrap.vue.c#.go] 首页 https://www.runoob.com/ 资料很全 1.p ...
- SpringSecurity使用步骤
一.导入jar包(使用maven构建项目导入其坐标) <dependency> <groupId>org.springframework.security</groupI ...
- FOG Project的 FOS 编译
FOG Project系统是一个免费的开源计算机网络克隆和管理解决方案系统,与传统的Ghost有很大的不同,如果您是计算机维护管理人员,当有大量机器需要同时部署上线的时候FOG Project是一个可 ...