Azure AD/Microsoft Graph访问权限升降级实现方案问询
Azure AD/Microsoft Graph 权限升降级实现方案
当然可以实现Azure AD/Microsoft Graph权限的升降级操作,我来给你详细拆解具体的实现方式和步骤:
一、权限升级流程
当用户已经通过仅登录权限(比如User.Read)完成Web应用注册后,要升级获取OneDrive访问权限(比如Files.ReadWrite),可以通过增量授权来实现:
- 调整你的授权请求URL,在原有的scope参数中新增需要的权限范围。比如原来的scope是
openid profile User.Read,现在更新为openid profile User.Read Files.ReadWrite。 - 引导用户重新进入授权流程,用户同意新增的权限后,你的应用就能获取包含新权限的访问令牌,之后调用Microsoft Graph时就可以访问OneDrive资源了。
二、权限降级(撤销授权)与重新授权
你提到找不到撤销授权的途径,其实有两种可行的方式:
方式1:用户手动撤销授权
用户可以登录自己的微软账户,进入「安全」板块,找到「应用和服务」下的「已授权的应用」,定位到你的Web应用后直接撤销授权。撤销完成后,用户再次访问你的应用时,你可以只请求仅登录权限,就能完成权限降级。
方式2:通过Microsoft Graph API主动撤销
你可以通过API主动撤销用户对应用的权限授予,步骤如下:
- 先调用
GET /users/{user-id}/oauth2PermissionGrants接口,获取该用户名下所有的权限授予记录,找到对应你应用的grant-id。 - 调用
DELETE /users/{user-id}/oauth2PermissionGrants/{grant-id}接口,删除对应的权限授予记录。 - 撤销完成后,引导用户重新授权,此时仅请求登录相关权限(比如
openid profile User.Read),就能实现权限降级回仅登录状态。
三、关键注意事项
- 增量授权前,确保你的应用已在Azure AD注册门户中添加了需要新增的权限(比如
Files.ReadWrite),如果是需要管理员同意的权限,还要先完成管理员同意流程。 - 使用API主动撤销授权时,你的应用需要拥有
DelegatedPermissionGrant.ReadWrite.All或Directory.AccessAsUser.All权限,并且调用时要使用有效的用户或应用身份令牌。 - 权限变更后,记得刷新应用获取的访问令牌,确保新的权限设置生效。
内容的提问来源于stack exchange,提问作者user9465677
相关产品推荐
相关产品推荐

